> ## Documentation Index
> Fetch the complete documentation index at: https://checkly-422f444a-mintlify-f27640bd.mintlify.site/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
            x-format:
              guid: true
            description: >-
              Your Checkly account ID, you can find it at
              https://app.checklyhq.com/settings/account/general
          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: integer
          description: >-
            The repeat interval of the maintenance window from the first
            occurrence.
          example: null
          default: null
          nullable: true
          minimum: 1
          maximum: 365
        repeatEndsAt:
          type: string
          format: date
          description: >-
            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.
          example: null
          nullable: true
        timezone:
          type: string
          description: >-
            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.
          example: America/New_York
          nullable: true
        pauseAllChecks:
          type: boolean
          description: Whether to pause all checks in the account (overrides tag scope).
          default: false
        silenceAlertsTags:
          $ref: '#/components/schemas/Model56'
        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/Model61'
        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
        timezone:
          type: string
          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
        projectBindings:
          $ref: '#/components/schemas/ProjectBindingsV1'
      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/Model4'
        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
    Model56:
      type: array
      description: >-
        Tags defining which checks have alerts silenced (when silenceAllAlerts
        is false).
      items:
        type: string
    Model61:
      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/Model57'
        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/Model58'
        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
        showAffectedServices:
          type: boolean
          description: >-
            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`.
          default: true
        statusPageIds:
          $ref: '#/components/schemas/Model59'
        serviceIds:
          $ref: '#/components/schemas/Model60'
    repeatUnit:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
      nullable: true
    MaintenanceWindowStatusPageVisibilityResponse:
      type: object
      properties:
        enabled:
          type: boolean
        severity:
          $ref: '#/components/schemas/Model50'
        affectAllServices:
          type: boolean
        suppressAutoIncidents:
          type: boolean
        notifyOnStart:
          type: boolean
        notifyOnEnd:
          type: boolean
        reminderMinutesBefore:
          $ref: '#/components/schemas/reminderMinutesBefore'
        autoStart:
          type: boolean
        autoEnd:
          type: boolean
        showAffectedServices:
          type: boolean
        statusPageIds:
          $ref: '#/components/schemas/statusPageIds'
        serviceIds:
          $ref: '#/components/schemas/serviceIds'
    silenceAlertsTags:
      type: array
      items:
        type: string
    ProjectBindingsV1:
      type: object
      description: >-
        The Checkly CLI projects that manage this resource. `owner` is null and
        `references` empty when the resource is not managed by code.
      properties:
        owner:
          $ref: '#/components/schemas/ProjectBindingOwnerV1'
        references:
          $ref: '#/components/schemas/ProjectBindingReferencesV1'
      required:
        - owner
        - references
    error:
      type: string
      enum:
        - Unauthorized
    attributes:
      type: object
    Model1:
      type: string
      enum:
        - Forbidden
    Model4:
      type: string
      enum:
        - Not Found
    Model2:
      type: string
      enum:
        - Too Many Requests
    Model57:
      type: string
      description: >-
        The severity level displayed on the status page. Only takes effect when
        `enabled: true`.
      enum:
        - MINOR
        - MEDIUM
        - MAJOR
        - CRITICAL
      nullable: true
    Model58:
      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
    Model59:
      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
    Model60:
      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
    Model50:
      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
    ProjectBindingOwnerV1:
      type: object
      description: >-
        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.
      nullable: true
      properties:
        project:
          $ref: '#/components/schemas/BindingProjectV1'
        binding:
          $ref: '#/components/schemas/ProjectBindingDetailsV1'
      required:
        - project
        - binding
    ProjectBindingReferencesV1:
      type: array
      description: >-
        Projects that use this resource without owning it; their deploys leave
        it alone. Empty when there are none.
      items:
        $ref: '#/components/schemas/ProjectBindingV1'
    BindingProjectV1:
      type: object
      description: The project this binding is to.
      properties:
        id:
          type: string
          description: The ID of the project.
        logicalId:
          type: string
          description: The logical ID of the project, as declared in code.
        name:
          type: string
          description: The name of the project.
      required:
        - id
        - logicalId
        - name
    ProjectBindingDetailsV1:
      type: object
      description: The resource's side of this binding.
      properties:
        logicalId:
          type: string
          description: The resource's logical ID within this project, as declared in code.
          example: homepage-check
        pending:
          type: boolean
          description: >-
            True when the binding is reserved by an import plan that has not
            been deployed yet.
      required:
        - logicalId
        - pending
    ProjectBindingV1:
      type: object
      properties:
        project:
          $ref: '#/components/schemas/BindingProjectV1'
        binding:
          $ref: '#/components/schemas/ProjectBindingDetailsV1'
      required:
        - project
        - binding
  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]"` 

````