---
title: "List all schedules"
method: GET
path: "/api/v1/schedules"
tags: ["schedules"]
---

# List all schedules

`GET /api/v1/schedules`

## Request

- Base URL: `https://api.trigger.dev`
- URL: `https://api.trigger.dev/api/v1/schedules`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/triggerdotdev/apis/trigger-dev-v3-rest-api/docs/api/v1/schedules/get.ts> (a function with typed inputs; its response is checked against the schema)

List all schedules. You can also paginate the results.

## Query parameters

- `page` integer
- `perPage` integer

## Response `200`

Successful request

- ListSchedulesResult
  - `data` ScheduleObject[]
    - `id` string: The unique ID of the schedule, prefixed with 'sched_'
    - `task` string: The id of the scheduled task that will be triggered by this schedule
    - `type` string: The type of schedule, `DECLARATIVE` or `IMPERATIVE`. Declarative schedules are declared in your code by setting the `cron` property on a `schedules.task`. Imperative schedules are created in the dashboard or by using the imperative SDK functions like `schedules.create()`.
    - `active` boolean: Whether the schedule is active or not
    - `deduplicationKey` string: The deduplication key used to prevent creating duplicate schedules
    - `externalId` string: The external ID of the schedule. Can be anything that is useful to you (e.g., user ID, org ID, etc.)
    - `generator` object
      - `type` 'CRON'
      - `expression` string: The cron expression used to generate the schedule
      - `description` string: The description of the generator in plain english
    - `timezone` string: Defaults to UTC. In IANA format, if set then it will trigger at the CRON frequency in that timezone and respect daylight savings time.
    - `nextRun` string, date-time: The next time the schedule will run
    - `appliedSchedulePolicy` object: Present only when a non-overridable plan policy applies a minimum window to this schedule (for example, a free-plan schedule's minimum run interval). The configured `window` is returned separately and unchanged.
      - `minimumWindowSeconds` number: The minimum window, in seconds, applied on top of the configured window.
      - `reason` 'free_schedule': Why the minimum window is applied.
    - `environments` ScheduleEnvironment[]
      - `id` string
      - `type` string
      - `userName` string
  - `pagination` object
    - `currentPage` integer
    - `totalPages` integer
    - `count` integer

## Other responses

- `401`: Unauthorized request

## Changes

- **2026-09-08** `b12efe7f3f89`: 1 info
  - added the optional property `data/items/appliedSchedulePolicy` to the response with the `200` status
- **2024-07-18** `ecd4711858cd`: 1 info
  - added the optional property `data/items/type` to the response with the `200` status
- **2024-06-14** `173760151a91`: 1 info
  - added the optional property `data/items/timezone` to the response with the `200` status
- **2024-05-31** `3c0abddc2b32`: 2 info
  - the endpoint scheme security `secretKey` was added to the API
  - the endpoint scheme security `apiKey` was removed from the API

[Operation history](https://skmtc.dev/triggerdotdev/apis/trigger-dev-v3-rest-api/changes/api/v1/schedules/get.md)

---

[API](https://skmtc.dev/triggerdotdev/apis/trigger-dev-v3-rest-api.md) - [All operations](https://skmtc.dev/triggerdotdev/apis/trigger-dev-v3-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/triggerdotdev/apis/trigger-dev-v3-rest-api/revisions/441161111493?raw)
