> ## Documentation Index
> Fetch the complete documentation index at: https://checklyhq.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update a maintenance window

> 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`.



## OpenAPI

````yaml put /v1/maintenance-windows/{id}
openapi: 3.0.0
info:
  title: Checkly Public API
  version: v1
  description: >-
    These are the docs for the newly released Checkly Public API. If you have
    any questions, please do not hesitate to get in touch with us.
servers:
  - url: https://api.checklyhq.com
security:
  - Bearer: []
tags: []
paths:
  /v1/maintenance-windows/{id}:
    put:
      tags:
        - Maintenance windows
      summary: Update a maintenance window
      description: >-
        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`.
      operationId: putV1MaintenancewindowsId
      parameters:
        - name: x-checkly-account
          in: header
          schema:
            type: string
            description: >-
              Your Checkly account ID, you can find it at
              https://app.checklyhq.com/settings/account/general
            x-format:
              guid: true
          description: >-
            Your Checkly account ID, you can find it at
            https://app.checklyhq.com/settings/account/general
        - name: id
          in: path
          schema:
            type: integer
            x-constraint:
              sign: positive
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceWindowUpdate'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceWindow'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
components:
  schemas:
    MaintenanceWindowUpdate:
      type: object
      properties:
        name:
          type: string
          description: The maintenance window name.
          example: Maintenance Window
          maxLength: 200
        tags:
          $ref: '#/components/schemas/MaintenanceWindowTagList'
        startsAt:
          type: string
          format: date
          description: The start date of the maintenance window.
          example: '2022-08-24'
        endsAt:
          type: string
          format: date
          description: The end date of the maintenance window.
          example: '2022-08-25'
        repeatInterval:
          type: number
          description: >-
            The repeat interval of the maintenance window from the first
            occurance.
          example: null
          default: null
          nullable: true
          minimum: 1
        repeatEndsAt:
          type: string
          format: date
          description: The end date where the maintenance window should stop repeating.
          example: null
          nullable: true
        pauseAllChecks:
          type: boolean
          description: Whether to pause all checks in the account (overrides tag scope).
          default: false
        silenceAlertsTags:
          $ref: '#/components/schemas/Model240'
        silenceAllAlerts:
          type: boolean
          description: >-
            Whether to silence alerts for all checks (overrides
            silenceAlertsTags scope).
          default: false
        description:
          type: string
          description: >-
            A description of the maintenance window. When the window is visible
            on status pages, this description is shown there too.
          default: null
          nullable: true
          maxLength: 2000
        statusPageVisibility:
          $ref: '#/components/schemas/Model245'
        repeatUnit:
          $ref: '#/components/schemas/repeatUnit'
    MaintenanceWindow:
      type: object
      properties:
        id:
          type: number
          description: The id of the maintenance window.
          example: 1
        name:
          type: string
        tags:
          $ref: '#/components/schemas/MaintenanceWindowTagList'
        startsAt:
          type: string
          format: date
        endsAt:
          type: string
          format: date
        repeatInterval:
          type: number
          nullable: true
        repeatUnit:
          $ref: '#/components/schemas/repeatUnit'
        repeatEndsAt:
          type: string
          format: date
          nullable: true
        description:
          type: string
          nullable: true
        statusPageVisibility:
          $ref: '#/components/schemas/MaintenanceWindowStatusPageVisibilityResponse'
        pauseAllChecks:
          type: boolean
        silenceAlertsTags:
          $ref: '#/components/schemas/silenceAlertsTags'
        silenceAllAlerts:
          type: boolean
        created_at:
          type: string
          format: date
          description: The creation date of the maintenance window.
        updated_at:
          type: string
          format: date
          description: The last date that the maintenance window was updated.
          nullable: true
      required:
        - id
        - name
        - startsAt
        - endsAt
        - created_at
        - updated_at
    UnauthorizedError:
      type: object
      properties:
        statusCode:
          type: number
          enum:
            - 401
        error:
          $ref: '#/components/schemas/error'
        message:
          type: string
          example: Bad Token
        attributes:
          $ref: '#/components/schemas/attributes'
      required:
        - statusCode
        - error
    ForbiddenError:
      type: object
      properties:
        statusCode:
          type: number
          enum:
            - 403
        error:
          $ref: '#/components/schemas/Model1'
        message:
          type: string
          example: Forbidden
      required:
        - statusCode
        - error
    NotFoundError:
      type: object
      properties:
        statusCode:
          type: number
          enum:
            - 404
        error:
          $ref: '#/components/schemas/Model3'
        message:
          type: string
          example: Not Found
      required:
        - statusCode
        - error
    TooManyRequestsError:
      type: object
      properties:
        statusCode:
          type: number
          enum:
            - 429
        error:
          $ref: '#/components/schemas/Model2'
        message:
          type: string
          example: Too Many Requests
        attributes:
          $ref: '#/components/schemas/attributes'
      required:
        - statusCode
        - error
    MaintenanceWindowTagList:
      type: array
      description: The names of the checks and groups maintenance window should apply to.
      example:
        - production
      items:
        type: string
    Model240:
      type: array
      description: >-
        Tags defining which checks have alerts silenced (when silenceAllAlerts
        is false).
      items:
        type: string
    Model245:
      type: object
      description: Status page visibility and subscriber-facing maintenance settings.
      default: {}
      properties:
        enabled:
          type: boolean
          description: >-
            Whether this maintenance window appears on linked status pages. This
            is the master gate for every other status-page visibility field.
          default: false
        severity:
          $ref: '#/components/schemas/Model241'
        affectAllServices:
          type: boolean
          description: >-
            Whether all services on the linked status pages are affected.
            Mutually exclusive with a non-empty `serviceIds` array. Only takes
            effect when `enabled: true`.
          default: false
        notifyOnStart:
          type: boolean
          description: >-
            Whether to email subscribers when maintenance starts. Only takes
            effect when `enabled: true`.
          default: false
        notifyOnEnd:
          type: boolean
          description: >-
            Whether to email subscribers when maintenance ends. Only takes
            effect when `enabled: true`.
          default: false
        suppressAutoIncidents:
          type: boolean
          description: >-
            Whether to suppress auto-created incidents for linked services
            during maintenance. Only takes effect when `enabled: true`.
          default: false
        reminderMinutesBefore:
          $ref: '#/components/schemas/Model242'
        autoStart:
          type: boolean
          description: >-
            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.
          default: true
        autoEnd:
          type: boolean
          description: >-
            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.
          default: true
        statusPageIds:
          $ref: '#/components/schemas/Model243'
        serviceIds:
          $ref: '#/components/schemas/Model244'
    repeatUnit:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
      nullable: true
    MaintenanceWindowStatusPageVisibilityResponse:
      type: object
      properties:
        enabled:
          type: boolean
        severity:
          $ref: '#/components/schemas/Model234'
        affectAllServices:
          type: boolean
        suppressAutoIncidents:
          type: boolean
        notifyOnStart:
          type: boolean
        notifyOnEnd:
          type: boolean
        reminderMinutesBefore:
          $ref: '#/components/schemas/reminderMinutesBefore'
        autoStart:
          type: boolean
        autoEnd:
          type: boolean
        statusPageIds:
          $ref: '#/components/schemas/statusPageIds'
        serviceIds:
          $ref: '#/components/schemas/serviceIds'
    silenceAlertsTags:
      type: array
      items:
        type: string
    error:
      type: string
      enum:
        - Unauthorized
    attributes:
      type: object
    Model1:
      type: string
      enum:
        - Forbidden
    Model3:
      type: string
      enum:
        - Not Found
    Model2:
      type: string
      enum:
        - Too Many Requests
    Model241:
      type: string
      description: >-
        The severity level displayed on the status page. Only takes effect when
        `enabled: true`.
      enum:
        - MINOR
        - MEDIUM
        - MAJOR
        - CRITICAL
      nullable: true
    Model242:
      type: array
      description: >-
        Minutes before maintenance to send reminder notifications. Only takes
        effect when `enabled: true`.
      maxItems: 3
      items:
        type: integer
        minimum: 60
        maximum: 10080
    Model243:
      type: array
      description: >-
        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`.
      items:
        type: string
        x-format:
          guid: true
    Model244:
      type: array
      description: >-
        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`.
      items:
        type: string
        x-format:
          guid: true
    Model234:
      type: string
      enum:
        - MINOR
        - MEDIUM
        - MAJOR
        - CRITICAL
      nullable: true
    reminderMinutesBefore:
      type: array
      items:
        type: integer
    statusPageIds:
      type: array
      items:
        type: string
        x-format:
          guid: true
    serviceIds:
      type: array
      items:
        type: string
        x-format:
          guid: true
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: Bearer
      description: >-
        The Checkly Public API uses API keys to authenticate requests. You can
        get the API Key
        [here](https://app.checklyhq.com/settings/user/api-keys). Your API key
        is like a password:  keep it secure!

        Authentication to the API is performed using the Bearer auth method in
        the Authorization header and using the account ID.

        For example, set **Authorization** header while using cURL: `curl -H
        "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"` 

````