> Documentation index for AI agents: https://docs.pagerduty.com/llms.txt

# List schedules

`GET https://api.pagerduty.com/v3/schedules`

<!-- theme: info -->

> **Important note:** Shift-based schedules use the V3 API and are not compatible with V2 automations. **To create automations for Shift-Based Schedules, you need to:**
>
> 1. **Update your automations** to use the V3 API for all new shift-based schedules
> 2. **Keep the V2 endpoint** for your existing schedules
>
> An upgrade tool for existing schedules is coming soon; your legacy schedules will keep working in the meantime. [Learn more](https://support.pagerduty.com/main/docs/shift-based-schedules-api-upgrade-examples).

Retrieve a paginated list of schedule references. Returns lightweight
objects without embedded rotations or events.

Each result is filtered by the caller's read permission; schedules the
caller cannot read are silently excluded.

## Authorization

- **api_key** (apiKey) — `Authorization` header. The API Key with format `Token token=<API_KEY>`

## Query parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `limit` | integer |  | Maximum number of schedules to return. Default: `25`. Minimum: 1. Maximum: 100. |
| `offset` | integer |  | Default: `0`. Minimum: 0. |
| `query` | string |  | Filters the result, showing only the records whose name matches the query. |
| `total` | boolean |  | By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated. See our [Pagination Docs](https://docs.pagerduty.com/developer/pagination) for more information. Default: `false`. |
| `team_ids[]` | array of string |  | An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter. Items must be unique. |
| `user_id` | string |  | Return only schedules that include this user. |

## Response 200

Schedules retrieved successfully

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `schedules` | array of object | yes |  |
| `schedules[].id` | string | yes |  |
| `schedules[].type` | string | yes | One of: `schedule_v3_reference`. |
| `schedules[].summary` | string | yes | Schedule name. |
| `schedules[].self` | string (uri) |  |  |
| `schedules[].html_url` | string (uri) |  |  |
| `limit` | integer |  |  |
| `offset` | integer |  |  |
| `more` | boolean |  | Whether additional results exist beyond this page. |

Example: Example response

```json
{
  "schedules": [
    {
      "id": "PS1A2B3C",
      "type": "schedule_v3_reference",
      "summary": "Engineering On-Call",
      "self": "https://api.pagerduty.com/v3/schedules/PS1A2B3C",
      "html_url": "https://subdomain.pagerduty.com/schedules/PS1A2B3C"
    }
  ],
  "limit": 100,
  "offset": 0,
  "more": false
}
```

## Response 400

Bad Request — The request contains invalid parameters or data

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object | yes |  |
| `error.message` | string | yes |  |
| `error.code` | integer | yes |  |
| `error.errors` | object |  | Map of field path to list of validation messages for that field. Field paths use dot notation prefixed by the resource type (e.g. `event.effective_since`, `rotation.events`). |

Example: default

```json
{
  "error": {
    "message": "Invalid Request",
    "code": 2001,
    "errors": {
      "event.effective_since": [
        "Date cannot be more than 12 months in the future"
      ]
    }
  }
}
```

## Response 401

Caller did not supply credentials or did not provide the correct credentials.
If you are using an API key, it may be invalid or your Authorization header may be malformed.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 403

Caller is not authorized to view the requested resource.
While your authentication is valid, the authenticated user or token does not have permission to perform this action.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Response 500

Internal Server Error the PagerDuty server experienced an error.

### `application/json`

| Field | Type | Required | Description |
|---|---|---|---|
| `error` | object |  |  |
| `error.code` | integer |  | Read-only. |
| `error.message` | string |  | Error message string. Read-only. |
| `error.errors` | array of string |  | Read-only. |

## Developer Agreement

Your access to and use of the PagerDuty Developer Services is governed by the [PagerDuty Developer Agreement](https://docs.pagerduty.com/developer/pagerduty-developer-agreement).
