Steps
1
Open the new-maintenance form
In the console, open Incidents and select Schedule maintenance.
The form opens with Type set to Maintenance, drops the severity
field, and adds a Window section with Starts and Ends.
2
Set the window
Pick the start and end times in your local timezone. The cron
auto-transitions the maintenance through:
scheduled→in_progresswhennow() >= scheduled_start_at.in_progress→completedwhennow() >= scheduled_end_at.
maintenance.starting_soon webhook fires one hour before
scheduled_start_at (idempotent; once per maintenance row).3
Pick affected services
The public page renders a banner for the maintenance starting within
24 hours and a sticky banner while in progress. The banner lists
affected services so customers know which surfaces are impacted.
4
Publish
Select Publish and notify subscribers to make the maintenance public. The page
banner appears within 24 hours of the scheduled start. The window
is also listed in the page’s calendar feed and, once it is less than
60 days away, in the
Upcoming maintenance section.
Subscribers receive
maintenance.scheduled when you publish and
maintenance.starting_soon one hour out.Save as draft keeps the maintenance private: it does not appear
on the status page, notifies nobody, and the cron does not start or
complete it. Publish it later from the maintenance row under
Incidents > Open (drafts are listed there), and maintenance.scheduled fires at that point.
Maintenances created through POST /api/v1/maintenances publish
immediately.Cancel a scheduled maintenance
Open the maintenance from Incidents > Scheduled and select Cancel maintenance.canceled_at is set, the banner is removed, and
the maintenance.canceled webhook fires.
Manual overrideThe lifecycle transitions can be triggered manually via the API
(
POST /api/v1/maintenances/{id}/start and /complete) when the
cron schedule does not match the actual change-window timing.
