Skip to main content
Scheduled maintenance lets you proactively communicate planned downtime to your users. Unlike incidents (which are unexpected), maintenance is planned and communicated in advance.

Why Schedule Maintenance?

  • Set expectations: Users know downtime is planned, not a surprise outage
  • Reduce support tickets: Proactive communication prevents confusion
  • Build trust: Transparency about maintenance shows reliability
  • Automatic status updates: Status page automatically reflects maintenance state

Maintenance States

StateDescriptionStatus Page Display
scheduledMaintenance is planned for the futureShows upcoming maintenance banner
in_progressMaintenance has startedServices show “Under Maintenance”
completedMaintenance finished successfullyNormal status restored
cancelledMaintenance was cancelledRemoved from schedule

Creating Maintenance Windows

  1. Go to Dashboard → Maintenance → Schedule Maintenance
  2. Fill in the details:
    • Title: “Database Migration” or “Infrastructure Upgrade”
    • Description: What you’re doing and expected impact
    • Start Time: When maintenance begins
    • End Time: Expected completion time
    • Affected Services: Which services will be impacted
  3. Choose notification settings:
    • Notify subscribers when scheduled
    • Notify when maintenance starts
    • Notify when maintenance completes
  4. Click Schedule Maintenance

Managing Maintenance

Starting Maintenance Early

If you’re ready to begin before the scheduled time:
kodo maintenance start maint_abc123

Extending Maintenance

If maintenance is taking longer than expected:
kodo maintenance update maint_abc123 --end "2024-02-01T05:00:00Z"
This notifies subscribers of the updated timeline.

Completing Maintenance

When maintenance is finished:
kodo maintenance complete maint_abc123 --message "Migration completed successfully"

Cancelling Maintenance

If plans change:
kodo maintenance cancel maint_abc123 --reason "Rescheduling due to critical bug fix needed"
Subscribers are notified of the cancellation.

Subscriber Notifications

Kodo sends notifications at key points:
  1. When scheduled: “Scheduled maintenance: Database Migration on Feb 1, 2:00 AM UTC”
  2. Reminder (optional): “Reminder: Maintenance begins in 1 hour”
  3. When started: “Maintenance in progress: Database Migration”
  4. When completed: “Maintenance completed: Database Migration”
  5. If cancelled: “Maintenance cancelled: Database Migration”

Best Practices

Use your analytics to identify the lowest-traffic window for your users’ timezones.
“2-4 hours” is better than “several hours”. Be realistic—it’s better to finish early than extend.
Tell users exactly what they can and cannot do during maintenance: “API read operations will work, writes will return 503.”
Always mark maintenance as complete—don’t leave users wondering if it’s still ongoing.
For maintenance over 1 hour, post periodic updates: “50% complete, on track to finish by 4 AM.”

Recurring Maintenance

For regular maintenance windows (weekly backups, monthly updates):
# Create recurring maintenance template
kodo maintenance create \
  --title "Weekly Database Backup" \
  --recurrence "weekly" \
  --day "sunday" \
  --start-time "03:00" \
  --duration "1h" \
  --services database

Integration with Monitors

During scheduled maintenance:
  • Uptime monitors are automatically paused for affected services
  • This prevents false alerts during planned downtime
  • Monitors automatically resume when maintenance completes
You can disable this behavior per-maintenance if needed:
kodo maintenance create ... --keep-monitors-active