Skip to content

3.5Maintenance windows

A maintenance window is a time range you book ahead, such as a deploy or a database upgrade. During a window, monitors keep running and results still show. Alerts are held, and those checks do not count against uptime (how much of the time your service was up).

Schedule a window#

  1. Select alerting in the top navigation, then maintenance.
  2. Select new window. The new maintenance window dialog opens.
  3. Enter a name, for example database upgrade.
  4. Set starts and ends in your local time. They start at now and one hour from now.
  5. Under monitors, keep all monitors checked, or clear it and pick the monitors the window covers.
  6. Select schedule. The button stays disabled until the name, start and end are filled and at least one monitor is covered.

The list shows each window with its name, its start and end, and the monitors it covers. A window that is running now has an in progress tag. With no windows, the list reads no windows scheduled.

During a window, each covered monitor's page shows a banner: In a maintenance window until <date time>: not paging, and checks do not count against uptime.

What a window does#

  • Checks keep running. Results are kept and shown.
  • Checks in the window do not count toward uptime. This includes uptime on your status page.
  • Incidents are still recorded, but the alert is held. If the monitor is still down when the window ends, the alert is sent at the next failed check.
  • If an outage starts and ends inside the window, no "resolved" notice is sent either.
  • Reminders that come due in the window are dropped.
  • No acknowledgement notice is sent during a window.
  • If your status page is published, windows that cover a monitor on it appear there with their name and times (12.4).

Rules#

  • A window can last at most 7 days.
  • A window can start at most 90 days ahead.
  • A window can start in the past, so you can open one that starts now. Checks that ran before you created it still count.
  • Your team can have at most 100 windows that have not ended.
  • Changes reach alerting within 30 seconds.
  • You cannot edit a window. Delete it and create a new one.
  • Windows do not repeat. Create one for each maintenance.

If a value is not accepted, the dialog shows the reason. Common messages:

MessageWhat to do
invalid input: ends_at must be after starts_atSet the end after the start.
invalid input: the window has already endedChoose an end time in the future.
invalid input: a window can be at most 7 days longShorten the window, or split it into several.
invalid input: a window can start at most 90 days aheadChoose a closer start date.
invalid input: name must not contain control charactersRemove control characters, such as tabs or line breaks, from the name.
team maintenance window limit reached: ...Delete windows you no longer need.

End or cancel a window#

  1. In the list, select delete for a future window, or end for a window in progress.
  2. Confirm with cancel it or end now. Select keep to leave the window as it is.

Maintenance windows with the API#

Create a window with CreateMaintenanceWindow. Times are RFC 3339, in UTC. Leave out monitorIds, or send [], to cover every monitor in your team:

CreateMaintenanceWindow body
json
{"name": "database upgrade",
 "startsAt": "2026-11-01T02:00:00Z",
 "endsAt": "2026-11-01T04:00:00Z",
 "monitorIds": ["<monitor-id>"]}
  • ListMaintenanceWindows with {} returns windows, soonest first. Windows set by obsrvly have an empty createdBy.
  • DeleteMaintenanceWindow with {"id": "<window-id>"} cancels a future window or ends one early.
  • Over the limit of 100, the API returns resource_exhausted (HTTP 429).
  • Deleting a window set by obsrvly returns permission_denied.

Last updated