Maintenance windows

Schedule planned downtime so alerts stay quiet while history stays honest.

A maintenance window says "this monitor is expected to misbehave between time A and time B." During the window, checks keep running and every failure is still recorded — but no incident opens and no notification fires.

Scheduling a window

Each window is attached to exactly one monitor and has:

FieldNotes
monitorIdThe monitor under maintenance
titleRequired, max 200 characters — e.g. "Database upgrade"
descriptionOptional detail, shown on the status page
startsAtISO 8601 timestamp
endsAtISO 8601 timestamp; must be after startsAt

Windows are one-shot. For recurring maintenance, schedule the next window when you plan the work (the API and MCP server both make this scriptable).

What happens during a window

  • Checks run on schedule as usual, and heartbeats are recorded with their real results — the uptime history doesn't pretend the deploy didn't happen.
  • If a check comes back down, incident creation is suppressed while startsAt <= now <= endsAt. No incident means no notifications on any channel.
  • When the window ends, normal behavior resumes: a still-failing monitor opens an incident on its next failed check.

Because suppression happens at incident creation rather than by pausing checks, a window is strictly better than pausing the monitor for planned work: you keep a complete record of how the deploy actually went.

On the status page

If the monitor is published on a status page, the page lists current and upcoming windows (anything that hasn't ended yet) with their title, description, and times. Visitors see "Database upgrade, 02:00–04:00" instead of an unexplained red bar.

Edit on GitHub·Found an issue? Open a PR.