Skip to content

Schedule recurring maintenance

A recurring window repeats daily, or weekly on chosen days, instead of running once. Recurrences have no end date, so for something that happens only a few times (such as a quarterly DB rotation), create one-time windows instead.

  1. Go to Respond → Notifications, click Maintenance windows, then + Add maintenance window.

  2. Give it a Name, then the Tags or Services (or both) whose monitors it should silence.

  3. Set Schedule type to Recurring and pick the Time zone.

  4. Under Recurrence pattern, choose Daily, or Weekly (specific days) and tick the Days. Set the Start time and End time.

  5. Click Create window.

To change or remove a window later, use Edit window or Delete window on its row.

Through the API, with an API key exported as SITEQWALITY_API_KEY:

Terminal window
curl -X POST https://api.siteqwality.com/maintenance_windows \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Nightly batch ETL",
"tags": ["service:etl"],
"schedule_type": "recurring",
"timezone": "America/Los_Angeles",
"recurrence": {
"type": "daily",
"start_time": "02:00",
"end_time": "03:00"
}
}'

start_time and end_time are 24-hour HH:MM strings interpreted in the window’s timezone. If end_time is earlier than start_time, the window crosses midnight: start_time: "23:00", end_time: "01:00" runs from 11pm to 1am. One window covers it.

Terminal window
curl -X POST https://api.siteqwality.com/maintenance_windows \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sunday maintenance",
"tags": ["env:prod"],
"schedule_type": "recurring",
"timezone": "UTC",
"recurrence": {
"type": "weekly",
"days": ["sunday"],
"start_time": "02:00",
"end_time": "04:00"
}
}'

days is an array of day names, matched case-insensitively. Full English names (monday .. sunday) and three-letter abbreviations (mon .. sun) both work; anything else is rejected at creation. List several to cover each, such as "days": ["saturday", "sunday"] for both weekend days.

Set timezone explicitly. It defaults to UTC, so “02:00” means 02:00 UTC unless you choose your team’s zone. Values are IANA timezone names: America/Los_Angeles, America/New_York, Europe/London, Asia/Tokyo, etc.

Sending a PUT to the window’s id (from GET /maintenance_windows) with a partial body updates only those fields:

Terminal window
curl -X PUT https://api.siteqwality.com/maintenance_windows/$WINDOW_ID \
-H "Authorization: Bearer $SITEQWALITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recurrence": {
"type": "weekly",
"days": ["saturday", "sunday"],
"start_time": "01:00",
"end_time": "05:00"
}
}'

Windows have no disabled flag. To stop a window from firing, delete it with Delete window in the dashboard or through the API:

Terminal window
curl -X DELETE https://api.siteqwality.com/maintenance_windows/$WINDOW_ID \
-H "Authorization: Bearer $SITEQWALITY_API_KEY"