---
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` Model65 — 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.
  - `projectBindings` ProjectBindingsV1 — The Checkly CLI projects that manage this resource. `owner` is null and `references` empty when the resource is not managed by code.
    - `owner` ProjectBindingOwnerV1, nullable, required — The project that owns this resource — the one whose deploy can delete it. Null when no project owns it, including when other projects merely reference it. In the rare case that several projects hold an ownership record for one resource, this reports the preferred one and the rest are omitted.
      - `project` BindingProjectV1, required — The project this binding is to.
        - `id` string, required — The ID of the project.
        - `logicalId` string, required — The logical ID of the project, as declared in code.
        - `name` string, required — The name of the project.
      - `binding` ProjectBindingDetailsV1, required — The resource's side of this binding.
        - `logicalId` string, required — The resource's logical ID within this project, as declared in code.
        - `pending` boolean, required — True when the binding is reserved by an import plan that has not been deployed yet.
    - `references` ProjectBindingV1[], required — Projects that use this resource without owning it; their deploys leave it alone. Empty when there are none.
      - `project` BindingProjectV1, required — The project this binding is to.
        - `id` string, required — The ID of the project.
        - `logicalId` string, required — The logical ID of the project, as declared in code.
        - `name` string, required — The name of the project.
      - `binding` ProjectBindingDetailsV1, required — The resource's side of this binding.
        - `logicalId` string, required — The resource's logical ID within this project, as declared in code.
        - `pending` boolean, required — True when the binding is reserved by an import plan that has not been deployed yet.

## 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/revisions/87d29dc7b4fe/schema)
