---
title: "Update a maintenance window"
method: PUT
path: "/v1/maintenance-windows/{id}"
tags: ["Maintenance windows"]
---

# Update a maintenance window

`PUT /v1/maintenance-windows/{id}`

Partially updates a maintenance window. Only fields included in the request body are modified; omitted fields are left unchanged. Status-page-only fields live under `statusPageVisibility` and only take effect when `statusPageVisibility.enabled: true`.

## Path parameters

- `id` integer, required

## Headers

- `x-checkly-account` string — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Request body

- MaintenanceWindowUpdate
  - `name` string — The maintenance window name.
  - `tags` string[] — The names of the checks and groups maintenance window should apply to.
  - `startsAt` string, date — The start date of the maintenance window.
  - `endsAt` string, date — The end date of the maintenance window.
  - `repeatInterval` integer, nullable — The repeat interval of the maintenance window from the first occurrence.
  - `repeatEndsAt` string, date, nullable — An inclusive calendar date in the configured timezone (UTC when unset) on which occurrences may start. Prefer YYYY-MM-DD. For backward compatibility, other accepted date-time values are normalized to the UTC calendar date of the parsed instant. The final occurrence runs for its full configured duration.
  - `timezone` string, nullable — Named IANA time zone used for recurring maintenance scheduling. UTC offset identifiers such as "+05:00" are not accepted. On create, omission or null uses UTC. On update, omission preserves the existing value; null or UTC resets scheduling to UTC. Changing only this field keeps startsAt and endsAt as the same absolute instants; include recalculated anchors to preserve the existing local date and time.
  - `pauseAllChecks` boolean — Whether to pause all checks in the account (overrides tag scope).
  - `silenceAlertsTags` string[] — Tags defining which checks have alerts silenced (when silenceAllAlerts is false).
  - `silenceAllAlerts` boolean — Whether to silence alerts for all checks (overrides silenceAlertsTags scope).
  - `description` string, nullable — A description of the maintenance window. When the window is visible on status pages, this description is shown there too.
  - `statusPageVisibility` Model283 — Status page visibility and subscriber-facing maintenance settings.
    - `enabled` boolean — Whether this maintenance window appears on linked status pages. This is the master gate for every other status-page visibility field.
    - `severity` 'MINOR' | 'MEDIUM' | 'MAJOR' | 'CRITICAL', nullable — The severity level displayed on the status page. Only takes effect when `enabled: true`.
    - `affectAllServices` boolean — Whether all services on the linked status pages are affected. Mutually exclusive with a non-empty `serviceIds` array. Only takes effect when `enabled: true`.
    - `notifyOnStart` boolean — Whether to email subscribers when maintenance starts. Only takes effect when `enabled: true`.
    - `notifyOnEnd` boolean — Whether to email subscribers when maintenance ends. Only takes effect when `enabled: true`.
    - `suppressAutoIncidents` boolean — Whether to suppress auto-created incidents for linked services during maintenance. Only takes effect when `enabled: true`.
    - `reminderMinutesBefore` integer[] — Minutes before maintenance to send reminder notifications. Only takes effect when `enabled: true`.
    - `autoStart` boolean — Automatically start the maintenance at the scheduled time. Only honored when `enabled: true`; on hidden windows the system always auto-starts regardless of this value.
    - `autoEnd` boolean — Automatically complete the maintenance at the scheduled end time. Only honored when `enabled: true`; on hidden windows the system always auto-ends regardless of this value.
    - `showAffectedServices` boolean — Whether the public status page shows which services this maintenance window affects. When false, the window is still shown as a general event but without its affected services, and its maintenance period is not excluded from service uptime: downtime during the window counts as regular downtime. Only takes effect when `enabled: true`.
    - `statusPageIds` string[] — Status page IDs to link this maintenance window to. Requires `serviceIds` or `affectAllServices: true`. On PUT, send `[]` together with `serviceIds: []` to fully unlink. Only takes effect when `enabled: true`.
    - `serviceIds` string[] — Status page service IDs affected by this maintenance window. Each service must belong to one of the linked status pages. Only takes effect when `enabled: true`.
  - `repeatUnit` 'DAY' | 'WEEK' | 'MONTH', nullable

## Response `200`

Successful

- MaintenanceWindow
  - `id` number, required — The id of the maintenance window.
  - `name` string, required
  - `tags` string[] — The names of the checks and groups maintenance window should apply to.
  - `startsAt` string, date, required
  - `endsAt` string, date, required
  - `repeatInterval` number, nullable
  - `repeatUnit` 'DAY' | 'WEEK' | 'MONTH', nullable
  - `repeatEndsAt` string, date, nullable
  - `timezone` string, nullable
  - `description` string, nullable
  - `statusPageVisibility` MaintenanceWindowStatusPageVisibilityResponse
    - `enabled` boolean
    - `severity` 'MINOR' | 'MEDIUM' | 'MAJOR' | 'CRITICAL', nullable
    - `affectAllServices` boolean
    - `suppressAutoIncidents` boolean
    - `notifyOnStart` boolean
    - `notifyOnEnd` boolean
    - `reminderMinutesBefore` integer[]
    - `autoStart` boolean
    - `autoEnd` boolean
    - `showAffectedServices` boolean
    - `statusPageIds` string[]
    - `serviceIds` string[]
  - `pauseAllChecks` boolean
  - `silenceAlertsTags` string[]
  - `silenceAllAlerts` boolean
  - `created_at` string, date, required — The creation date of the maintenance window.
  - `updated_at` string, date, nullable, required — The last date that the maintenance window was updated.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Too Many Requests

---

[API](https://skmtc.net/checklyhq/apis/checkly-public-api.md) · [All operations](https://skmtc.net/checklyhq/apis/checkly-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checklyhq/checkly-public-api/versions/9e903da4f3da/schema)
