PagerDuty Schedules API

A Schedule determines the time periods that users are On-Call.

OpenAPI Specification

pagerduty-schedules-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  description: 'This document describes the PagerDuty REST APIs.


    For guides and examples please visit our [Documentation.](https://developer.pagerduty.com/docs/get-started/getting-started/)


    Our REST APIs are defined in OpenAPI v3.x. You can view the schema at [github.com/PagerDuty/api-schema](https://github.com/PagerDuty/api-schema).


    Note that properties in some schemas have fields not shown by default such as `readOnly`, `format`, and `default`. Hover your cursor over the right column that looks like `optional+1` to see the full list of fields.

    '
  contact:
    name: PagerDuty Support
    url: http://www.pagerduty.com/support
    email: support@pagerduty.com
  title: PagerDuty Abilities Schedules API
  version: 2.0.0
servers:
- url: https://api.pagerduty.com
  description: PagerDuty V2 API.
security:
- api_key: []
tags:
- name: Schedules
  description: 'A Schedule determines the time periods that users are On-Call.

    '
paths:
  /schedules:
    description: List and create on-call schedules.
    get:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.read
      operationId: listSchedules
      description: 'List the on-call schedules.


        A Schedule determines the time periods that users are On-Call.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.read`

        '
      summary: PagerDuty List schedules
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/offset_limit'
      - $ref: '#/components/parameters/offset_offset'
      - $ref: '#/components/parameters/offset_total'
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/include_schedules'
      - $ref: '#/components/parameters/schedule_list_time_zone'
      responses:
        '200':
          description: A paginated array of schedule objects.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Pagination'
                - type: object
                  properties:
                    schedules:
                      type: array
                      items:
                        $ref: '#/components/schemas/Schedule'
                  required:
                  - schedules
              examples:
                Basic Example:
                  value:
                    schedules:
                    - id: PI7DH85
                      type: schedule
                      summary: Daily Engineering Rotation
                      self: https://api.pagerduty.com/schedules/PI7DH85
                      html_url: https://subdomain.pagerduty.com/schedules/PI7DH85
                      name: Daily Engineering Rotation
                      time_zone: America/New_York
                      description: Rotation schedule for engineering
                      escalation_policies:
                      - id: PT20YPA
                        type: escalation_policy_reference
                        summary: Another Escalation Policy
                        self: https://api.pagerduty.com/escalation_policies/PT20YPA
                        html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA
                      users:
                      - id: PEYSGVF
                        type: user_reference
                        summary: PagerDuty Admin
                        self: https://api.pagerduty.com/users/PEYSGVF
                        html_url: https://subdomain.pagerduty.com/users/PEYSGVF
                    limit: 100
                    offset: 0
                    more: false
                    total: null
                With Schedule Layers:
                  summary: With Schedule Layers Included
                  value:
                    schedules:
                    - id: PI7DH85
                      type: schedule
                      summary: Daily Engineering Rotation
                      self: https://api.pagerduty.com/schedules/PI7DH85
                      html_url: https://subdomain.pagerduty.com/schedules/PI7DH85
                      name: Daily Engineering Rotation
                      time_zone: America/New_York
                      description: Rotation schedule for engineering
                      escalation_policies:
                      - id: PT20YPA
                        type: escalation_policy_reference
                        summary: Another Escalation Policy
                        self: https://api.pagerduty.com/escalation_policies/PT20YPA
                        html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA
                      users:
                      - id: PEYSGVF
                        type: user_reference
                        summary: PagerDuty Admin
                        self: https://api.pagerduty.com/users/PEYSGVF
                        html_url: https://subdomain.pagerduty.com/users/PEYSGVF
                      schedule_layers:
                      - name: Night Shift
                        start: '2015-11-06T20:00:00-05:00'
                        end: '2016-11-06T20:00:00-05:00'
                        rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                        rotation_turn_length_seconds: 86400
                        users:
                        - user:
                            id: PEYSGVF
                            type: user_reference
                            summary: PagerDuty Admin
                            self: https://api.pagerduty.com/users/PEYSGVF
                            html_url: https://subdomain.pagerduty.com/users/PEYSGVF
                        restrictions:
                        - type: daily_restriction
                          start_time_of_day: 08:00:00
                          duration_seconds: 32400
                    limit: 100
                    offset: 0
                    more: false
                    total: null
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.write
      operationId: createSchedule
      description: 'Create a new on-call schedule.


        A Schedule determines the time periods that users are On-Call.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.write`

        '
      summary: PagerDuty Create a schedule
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/schedule_overflow'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                schedule:
                  $ref: '#/components/schemas/Schedule'
              required:
              - schedule
            examples:
              request:
                summary: Request Example
                value:
                  schedule:
                    name: Daily Engineering Rotation
                    type: schedule
                    time_zone: America/New_York
                    description: Rotation schedule for engineering
                    schedule_layers:
                    - name: Night Shift
                      start: '2015-11-06T20:00:00-05:00'
                      rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                      rotation_turn_length_seconds: 86400
                      users:
                      - user:
                          id: PXPGF42
                          type: user_reference
                      restrictions:
                      - type: daily_restriction
                        start_time_of_day: 08:00:00
                        duration_seconds: 32400
        description: The schedule to be created.
      responses:
        '201':
          description: The schedule object created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schedule:
                    $ref: '#/components/schemas/Schedule'
                required:
                - schedule
              examples:
                response:
                  summary: Response Example
                  value:
                    schedule:
                      id: PI7DH85
                      type: schedule
                      summary: Daily Engineering Rotation
                      self: https://api.pagerduty.com/schedules/PI7DH85
                      html_url: https://subdomain.pagerduty.com/schedules/PI7DH85
                      name: Daily Engineering Rotation
                      time_zone: America/New_York
                      description: Rotation schedule for engineering
                      escalation_policies:
                      - id: PT20YPA
                        type: escalation_policy_reference
                        summary: Another Escalation Policy
                        self: https://api.pagerduty.com/escalation_policies/PT20YPA
                        html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA
                      users:
                      - id: PEYSGVF
                        type: user_reference
                        summary: PagerDuty Admin
                        self: https://api.pagerduty.com/users/PEYSGVF
                        html_url: https://subdomain.pagerduty.com/users/PEYSGVF
                      teams: []
                      schedule_layers:
                      - name: Layer 1
                        rendered_schedule_entries: []
                        id: PG68P1M
                        start: '2015-11-06T20:00:00-05:00'
                        rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                        rotation_turn_length_seconds: 86400
                        users:
                        - user:
                            id: PEYSGVF
                            type: user_reference
                            summary: PagerDuty Admin
                            self: https://api.pagerduty.com/users/PEYSGVF
                            html_url: https://subdomain.pagerduty.com/users/PEYSGVF
                        restrictions:
                        - type: daily_restriction
                          start_time_of_day: 08:00:00
                          duration_seconds: 32400
                      overrides_subschedule:
                        name: Overrides
                        rendered_schedule_entries: []
                      final_schedule:
                        name: Final Schedule
                        rendered_schedule_entries: []
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /schedules/{id}:
    description: Manage an on-call schedule.
    get:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.read
      operationId: getSchedule
      description: 'Show detailed information about a schedule, including entries for each layer.

        Scoped OAuth requires: `schedules.read`

        '
      summary: PagerDuty Get a schedule
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/schedule_time_zone'
      - $ref: '#/components/parameters/schedule_since'
      - $ref: '#/components/parameters/schedule_until'
      - $ref: '#/components/parameters/schedule_overflow'
      - $ref: '#/components/parameters/id'
      responses:
        '200':
          description: The schedule object.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schedule:
                    $ref: '#/components/schemas/Schedule'
                required:
                - schedule
              examples:
                response:
                  summary: Response Example
                  value:
                    schedule:
                      id: PI7DH85
                      type: schedule
                      summary: Daily Engineering Rotation
                      self: https://api.pagerduty.com/schedules/PI7DH85
                      html_url: https://subdomain.pagerduty.com/schedules/PI7DH85
                      name: Daily Engineering Rotation
                      time_zone: America/New_York
                      description: Rotation schedule for engineering
                      escalation_policies:
                      - id: PT20YPA
                        type: escalation_policy_reference
                        summary: Another Escalation Policy
                        self: https://api.pagerduty.com/escalation_policies/PT20YPA
                        html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA
                      users:
                      - id: PXPGF42
                        type: user_reference
                        summary: Regina Phalange
                        self: https://api.pagerduty.com/users/PXPGF42
                        html_url: https://subdomain.pagerduty.com/users/PXPGF42
                      teams:
                      - id: PQ9K7I8
                        type: team_reference
                        summary: Engineering
                        self: https://api.pagerduty.com/teams/PQ9K7I8
                        html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8
                      schedule_layers:
                      - name: Layer 1
                        rendered_schedule_entries:
                        - start: '2015-11-09T08:00:00-05:00'
                          end: '2015-11-09T17:00:00-05:00'
                          user:
                            id: PXPGF42
                            type: user_reference
                            summary: Regina Phalange
                            self: https://api.pagerduty.com/users/PXPGF42
                            html_url: https://subdomain.pagerduty.com/users/PXPGF42
                        rendered_coverage_percentage: 37.5
                        id: PG68P1M
                        start: '2015-11-06T21:00:00-05:00'
                        rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                        rotation_turn_length_seconds: 86400
                        users:
                        - user:
                            id: PXPGF42
                            type: user_reference
                            summary: Regina Phalange
                            self: https://api.pagerduty.com/users/PXPGF42
                            html_url: https://subdomain.pagerduty.com/users/PXPGF42
                        restrictions:
                        - type: daily_restriction
                          start_time_of_day: 08:00:00
                          duration_seconds: 32400
                      overrides_subschedule:
                        name: Overrides
                        rendered_schedule_entries: []
                        rendered_coverage_percentage: 0
                      final_schedule:
                        name: Final Schedule
                        rendered_schedule_entries:
                        - start: '2015-11-10T08:00:00-05:00'
                          end: '2015-11-10T17:00:00-05:00'
                          user:
                            id: PXPGF42
                            type: user_reference
                            summary: Regina Phalange
                            self: https://api.pagerduty.com/users/PXPGF42
                            html_url: https://subdomain.pagerduty.com/users/PXPGF42
                        rendered_coverage_percentage: 37.5
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    delete:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.write
      operationId: deleteSchedule
      description: 'Delete an on-call schedule.


        A Schedule determines the time periods that users are On-Call.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.write`

        '
      summary: PagerDuty Delete a schedule
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/id'
      responses:
        '204':
          description: The schedule was deleted successfully.
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    put:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.write
      operationId: updateSchedule
      description: 'Update an existing on-call schedule.


        A Schedule determines the time periods that users are On-Call.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.write`

        '
      summary: PagerDuty Update a schedule
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/schedule_overflow'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                schedule:
                  $ref: '#/components/schemas/Schedule'
              required:
              - schedule
            examples:
              request:
                summary: Request Example
                value:
                  schedule:
                    name: Daily Engineering Rotation
                    type: schedule
                    time_zone: America/New_York
                    description: Rotation schedule for engineering
                    schedule_layers:
                    - name: Night Shift
                      start: '2015-11-06T20:00:00-05:00'
                      end: '2016-11-06T20:00:00-05:00'
                      rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                      rotation_turn_length_seconds: 86400
                      users:
                      - user:
                          id: PXPGF42
                          type: user_reference
                      restrictions:
                      - type: daily_restriction
                        start_time_of_day: 08:00:00
                        duration_seconds: 32400
        description: The schedule to be updated.
      responses:
        '200':
          description: The updated schedule.
          content:
            application/json:
              schema:
                type: object
                properties:
                  schedule:
                    $ref: '#/components/schemas/Schedule'
                required:
                - schedule
              examples:
                response:
                  summary: Response Example
                  value:
                    schedule:
                      id: PI7DH85
                      type: schedule
                      summary: Daily Engineering Rotation
                      self: https://api.pagerduty.com/schedules/PI7DH85
                      html_url: https://subdomain.pagerduty.com/schedules/PI7DH85
                      name: Daily Engineering Rotation
                      time_zone: America/New_York
                      description: Rotation schedule for engineering
                      escalation_policies:
                      - id: PT20YPA
                        type: escalation_policy_reference
                        summary: Another Escalation Policy
                        self: https://api.pagerduty.com/escalation_policies/PT20YPA
                        html_url: https://subdomain.pagerduty.com/escalation_policies/PT20YPA
                      users:
                      - id: PXPGF42
                        type: user_reference
                        summary: Regina Phalange
                        self: https://api.pagerduty.com/users/PXPGF42
                        html_url: https://subdomain.pagerduty.com/users/PXPGF42
                      teams:
                      - id: PQ9K7I8
                        type: team_reference
                        summary: Engineering
                        self: https://api.pagerduty.com/teams/PQ9K7I8
                        html_url: https://subdomain.pagerduty.com/teams/PQ9K7I8
                      schedule_layers:
                      - name: Layer 1
                        rendered_schedule_entries: []
                        id: PG68P1M
                        start: '2015-11-06T20:00:00-05:00'
                        rotation_virtual_start: '2015-11-06T20:00:00-05:00'
                        rotation_turn_length_seconds: 86400
                        users:
                        - user:
                            id: PXPGF42
                            type: user_reference
                            summary: Regina Phalange
                            self: https://api.pagerduty.com/users/PXPGF42
                            html_url: https://subdomain.pagerduty.com/users/PXPGF42
                        restrictions:
                        - type: daily_restriction
                          start_time_of_day: 08:00:00
                          duration_seconds: 32400
                      overrides_subschedule:
                        name: Overrides
                        rendered_schedule_entries: []
                      final_schedule:
                        name: Final Schedule
                        rendered_schedule_entries: []
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /schedules/{id}/audit/records:
    description: List audit records of changes made to the schedule.
    get:
      x-pd-requires-scope: audit_records.read
      tags:
      - Schedules
      operationId: listSchedulesAuditRecords
      summary: PagerDuty List audit records for a schedule
      description: 'The returned records are sorted by the `execution_time` from newest to oldest.


        See [`Cursor-based pagination`](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for instructions on how to paginate through the result set.


        For more information see the [Audit API Document](https://developer.pagerduty.com/docs/rest-api-v2/audit-records-api/).


        Scoped OAuth requires: `audit_records.read`

        '
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/cursor_limit'
      - $ref: '#/components/parameters/cursor_cursor'
      - $ref: '#/components/parameters/audit_since'
      - $ref: '#/components/parameters/audit_until'
      responses:
        '200':
          description: Records matching the query criteria.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuditRecordResponseSchema'
              examples:
                response:
                  $ref: '#/components/examples/AuditRecordScheduleResponse'
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /schedules/{id}/overrides:
    description: List and create schedule overrides.
    get:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.read
      operationId: listScheduleOverrides
      description: 'List overrides for a given time range.


        A Schedule determines the time periods that users are On-Call.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.read`

        '
      summary: PagerDuty List overrides
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/since_schedules'
      - $ref: '#/components/parameters/until_schedules'
      - $ref: '#/components/parameters/editable_schedules'
      - $ref: '#/components/parameters/overflow_schedules'
      responses:
        '201':
          description: The collection of override objects returned by the query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  overrides:
                    type: array
                    items:
                      $ref: '#/components/schemas/Override'
                required:
                - overrides
              examples:
                response:
                  summary: Response Example
                  value:
                    overrides:
                    - id: PQ47DCP
                      start: '2012-07-01T00:00:00-04:00'
                      end: '2012-07-02T00:00:00-04:00'
                      user:
                        id: PEYSGVF
                        type: user_reference
                        summary: Aurelio Rice
                        self: https://api.pagerduty.com/users/PEYSGVF
                        html_url: https://subdomain.pagerduty.com/users/PEYSGVF
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
    post:
      tags:
      - Schedules
      x-pd-requires-scope: schedules.write
      operationId: createScheduleOverride
      description: 'Create one or more overrides, each for a specific user covering a specified time range. If you create an override on top of an existing override, the last created override will have priority.


        A Schedule determines the time periods that users are On-Call.


        Note: An older implementation of this endpoint only supported creating a single ocverride per request. That functionality is still supported, but deprecated and may be removed in the future.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#schedules)


        Scoped OAuth requires: `schedules.write`

        '
      summary: PagerDuty Create one or more overrides
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/id'
      requestBody:
        content:
          application/json:
            schema:
              description: ''
              type: object
              properties:
                overrides:
                  type: array
                  items:
                    $ref: '#/components/schemas/Override'
            examples:
              request:
                summary: Request Example
                value:
                  overrides:
                  - start: '2012-07-01T00:00:00-04:00'
                    end: '2012-07-02T00:00:00-04:00'
                    user:
                      id: PEYSGVA
                      type: user_reference
                    time_zone: UTC
                  - start: '2012-07-03T00:00:00-04:00'
                    end: '2012-07-04T00:00:00-04:00'
                    user:
                      id: PEYSGVF
                      type: user_reference
                    time_zone: UTC
        description: The overrides to be created
        required: true
      responses:
        '201':
          description: A list of overrides requested and a status code indicating whether they were created or rejected
          content:
            application/json:
              schema:
                type: array
                description: ''
                minItems: 1
                uniqueItems: true
                items:
                  type: object
                  properties:
                    status:
                      type: number
                      description: HTTP Status Code reflecting the result of creating this specific override, e.g. 201 for success, 400 for invalid parameters.
                    errors:
                      type: array
                      description: If present, an array of strings representing human-readable explanations for errors found.
                      items:
                        type: string
                    override:
                      $ref: '#/components/schemas/Override'
                  required:
                  - override
              examples:
                response:
                  summary: Response Example
                  value:
                  - status: 201
                    override:
                      start: '2021-03-09T05:00:00Z'
                      end: '2021-03-09T17:00:00Z'
                      user:
                        id: P37CSDJ
                        type: user_reference
                        summary: Scott
                        self: https://api.pd-staging.com/users/P37CSDJ
                        html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ
                      id: Q3X6MJ1LUKD6QW
                  - status: 201
                    override:
                      start: '2021-03-10T05:00:00Z'
                      end: '2021-03-10T17:00:00Z'
                      user:
                        id: P37CSDJ
                        type: user_reference
                        summary: Scott
                        self: https://api.pd-staging.com/users/P37CSDJ
                        html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ
                      id: Q37A85CJZP1DTT
                  - status: 400
                    errors:
                    - Override must end after its start
                    override:
                      start: '2021-03-11T05:00:00Z'
                      end: '2021-03-11T05:00:00Z'
                      user:
                        id: P37CSDJ
                        type: user_reference
                        summary: Scott
                        self: https://api.pd-staging.com/users/P37CSDJ
                        html_url: https://pdt-braythwayt.pd-staging.com/users/P37CSDJ
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFo

# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/pagerduty/refs/heads/main/openapi/pagerduty-schedules-api-openapi.yml