Skip to main content
Maintenance windows let you schedule planned downtime so monitors don’t trigger incidents or fire alerts during expected outages. Use them for deployments, infrastructure upgrades, database migrations, or any period where failures are expected.
Define this in code. Manage maintenance windows as part of your monitoring-as-code workflow: YAML format · Terraform · CI/CD patterns

How maintenance windows work

When a maintenance window is active:
  1. Alert suppression — No notifications are sent for the covered monitors (when suppressAlerts is enabled)
  2. Incident tagging — Any incidents created during the window get severity MAINTENANCE
  3. Monitoring continues — Checks still run, and results are still recorded for historical data
Maintenance windows do not pause monitoring — they suppress the noise from expected failures while preserving your check result history.

Creating a maintenance window

devhelm maintenance-windows create \
  --monitor-id <monitor-id> \
  --starts-at "2026-04-15T02:00:00Z" \
  --ends-at "2026-04-15T04:00:00Z" \
  --reason "Database migration"

Request fields

FieldTypeRequiredDescription
monitorIdUUIDNoMonitor to cover; omit for organization-wide
startsAtdatetimeYesScheduled start in ISO 8601 format
endsAtdatetimeYesScheduled end in ISO 8601 format
reasonstringNoHuman-readable description
repeatRulestringNoiCal RRULE for recurring windows (max 100 chars)
suppressAlertsbooleanNoWhether to suppress alerts (default: true)
Omit monitorId to create an organization-wide maintenance window that covers all monitors.

Recurring maintenance

Use the repeatRule field with an iCal RRULE to schedule recurring windows:
{
  "startsAt": "2026-04-15T02:00:00Z",
  "endsAt": "2026-04-15T04:00:00Z",
  "repeatRule": "FREQ=WEEKLY;BYDAY=TU",
  "reason": "Weekly maintenance window"
}
Common patterns:
RRULESchedule
FREQ=WEEKLY;BYDAY=TUEvery Tuesday
FREQ=MONTHLY;BYMONTHDAY=1First day of each month
FREQ=WEEKLY;BYDAY=SA;INTERVAL=2Every other Saturday

Listing maintenance windows

devhelm maintenance-windows list
devhelm maintenance-windows list --filter active
devhelm maintenance-windows list --monitor-id <monitor-id>
Filter values:
FilterReturns
activeCurrently running maintenance windows
upcomingScheduled future windows

Updating a maintenance window

devhelm maintenance-windows update <window-id> \
  --ends-at "2026-04-15T05:00:00Z" \
  --reason "Extended — migration taking longer"

Deleting a maintenance window

devhelm maintenance-windows delete <window-id>

Maintenance windows and alerting

Maintenance windows interact with the alert suppression system:
  • When suppressAlerts is true, all notification policies are bypassed for the covered monitors
  • When suppressAlerts is false, incidents are still tagged as MAINTENANCE severity but notifications still fire
  • Maintenance window suppression takes priority over notification policy rules

Next steps

Alert suppression

Other ways to suppress alerts — resource groups and more.

Incident policies

Configure trigger rules and recovery behavior.

Incidents guide

End-to-end guide for managing incidents.