---
title: "Update a maintenance window."
method: PATCH
path: "/api/maintenance_window/{id}"
tags: ["maintenance-window"]
---

# Update a maintenance window.

`PATCH /api/maintenance_window/{id}`

**Spaces method and path for this operation:**

<div><span class="operation-verb patch">patch</span>&nbsp;<span class="operation-path">/s/{space_id}/api/maintenance_window/{id}</span></div>

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

[Required authorization] Route required privileges: write-maintenance-window.

## Path parameters

- `id` string, required

## Headers

- `kbn-xsrf` string, required

## Request body

- KibanaHTTPAPIsUpdateMaintenanceWindow
  - `enabled` boolean — Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.
  - `schedule` object
    - `custom` KibanaHTTPAPIsMaintenanceWindowScheduleRequest, required
      - `duration` string, required — The duration of the schedule. It allows values in `<integer><unit>` format. `<unit>` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.
      - `recurring` KibanaHTTPAPIsMaintenanceWindowScheduleRecurringRequest
        - `end` string — The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.
        - `every` string — The interval and frequency of a recurring schedule. It allows values in `<integer><unit>` format. `<unit>` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.
        - `occurrences` number — The total number of recurrences of the schedule.
        - `onMonth` number[] — The specific months for a recurring schedule. Valid values are 1-12.
        - `onMonthDay` number[] — The specific days of the month for a recurring schedule. Valid values are 1-31.
        - `onWeekDay` string[] — The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.
      - `start` string, required — The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.
      - `timezone` string — The timezone of the schedule. The default timezone is UTC.
  - `scope` KibanaHTTPAPIsMaintenanceWindowScope
    - `alerting` object, required
      - `query` object, required
        - `kql` string, required — A filter written in Kibana Query Language (KQL). Only alerts matching this query will be suppressed by the maintenance window.
  - `title` string — The name of the maintenance window. While this name does not have to be unique, a distinctive name can help you identify a specific maintenance window.

## Response `200`

Indicates a successful call.

- KibanaHTTPAPIsMaintenanceWindowResponse
  - `created_at` string, required — The date and time when the maintenance window was created.
  - `created_by` string, nullable — The identifier for the user that created the maintenance window.
  - `enabled` boolean, required — Whether the current maintenance window is enabled. Disabled maintenance windows do not suppress notifications.
  - `id` string, required — The identifier for the maintenance window.
  - `schedule` object, required
    - `custom` KibanaHTTPAPIsMaintenanceWindowScheduleResponse, required
      - `duration` string, required — The duration of the schedule. It allows values in `<integer><unit>` format. `<unit>` is one of `d`, `h`, `m`, or `s` for hours, minutes, seconds. For example: `1d`, `5h`, `30m`, `5000s`.
      - `recurring` KibanaHTTPAPIsMaintenanceWindowScheduleRecurringResponse
        - `end` string — The end date of a recurring schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-04-01T00:00:00.000Z`.
        - `every` string — The interval and frequency of a recurring schedule. It allows values in `<integer><unit>` format. `<unit>` is one of `d`, `w`, `M`, or `y` for days, weeks, months, years. For example: `15d`, `2w`, `3m`, `1y`.
        - `occurrences` number — The total number of recurrences of the schedule.
        - `onMonth` number[] — The specific months for a recurring schedule. Valid values are 1-12.
        - `onMonthDay` number[] — The specific days of the month for a recurring schedule. Valid values are 1-31.
        - `onWeekDay` string[] — The specific days of the week (`[MO,TU,WE,TH,FR,SA,SU]`) or nth day of month (`[+1MO, -3FR, +2WE, -4SA, -5SU]`) for a recurring schedule.
      - `start` string, required — The start date and time of the schedule, provided in ISO 8601 format and set to the UTC timezone. For example: `2025-03-12T12:00:00.000Z`.
      - `timezone` string — The timezone of the schedule. The default timezone is UTC.
  - `scope` KibanaHTTPAPIsMaintenanceWindowScope
    - `alerting` object, required
      - `query` object, required
        - `kql` string, required — A filter written in Kibana Query Language (KQL). Only alerts matching this query will be suppressed by the maintenance window.
  - `status` 'running' | 'upcoming' | 'finished' | 'archived' | 'disabled', required — The current status of the maintenance window.
  - `title` string, required — The name of the maintenance window.
  - `updated_at` string, required — The date and time when the maintenance window was last updated.
  - `updated_by` string, nullable — The identifier for the user that last updated this maintenance window.

## Other responses

- `400` — Indicates an invalid schema or parameters.
- `403` — Indicates that this call is forbidden.
- `404` — Indicates a maintenance window with the given ID does not exist.
- `409` — Indicates that the maintenance window has already been updated by another user.

---

[API](https://skmtc.net/elastic/apis/kibana-apis.md) · [All operations](https://skmtc.net/elastic/apis/kibana-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elastic/kibana-apis/versions/531c9e2a7d23/schema)
