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

# Retrieve Schedule

> Get a schedule by its ID.



## OpenAPI

````yaml v3-openapi GET /api/v1/schedules/{schedule_id}
openapi: 3.1.0
info:
  title: Trigger.dev v3 REST API
  description: >-
    The REST API lets you trigger and manage runs on Trigger.dev. You can
    trigger a run, get the status of a run, and get the results of a run. 
  version: 2024-04
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.trigger.dev
    description: Trigger.dev API
security: []
paths:
  /api/v1/schedules/{schedule_id}:
    get:
      tags:
        - schedules
      summary: Retrieve Schedule
      description: Get a schedule by its ID.
      operationId: get_schedule_v1
      parameters:
        - in: path
          name: schedule_id
          required: true
          schema:
            type: string
          description: The ID of the schedule.
          example: sched_1234
      responses:
        '200':
          description: Successful request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduleObject'
        '401':
          description: Unauthorized request
        '404':
          description: Resource not found
      security:
        - secretKey: []
      x-codeSamples:
        - lang: typescript
          source: |-
            import { schedules } from "@trigger.dev/sdk";

            const schedule = await schedules.retrieve(scheduleId);
components:
  schemas:
    ScheduleObject:
      type: object
      properties:
        id:
          type: string
          example: sched_1234
          description: The unique ID of the schedule, prefixed with 'sched_'
        task:
          type: string
          example: my-scheduled-task
          description: The id of the scheduled task that will be triggered by this schedule
        type:
          type: string
          example: IMPERATIVE
          description: >-
            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:
          type: boolean
          example: true
          description: Whether the schedule is active or not
        deduplicationKey:
          type: string
          description: The deduplication key used to prevent creating duplicate schedules
          example: dedup_key_1234
        externalId:
          type: string
          description: >-
            The external ID of the schedule. Can be anything that is useful to
            you (e.g., user ID, org ID, etc.)
          example: user_1234
        generator:
          type: object
          properties:
            type:
              type: string
              enum:
                - CRON
            expression:
              type: string
              description: The cron expression used to generate the schedule
              example: 0 0 * * *
            description:
              type: string
              description: The description of the generator in plain english
              example: Every day at midnight
        timezone:
          type: string
          example: America/New_York
          description: >-
            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:
          type: string
          format: date-time
          description: The next time the schedule will run
          example: '2024-04-01T00:00:00Z'
        appliedSchedulePolicy:
          type: object
          description: >-
            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.
          properties:
            minimumWindowSeconds:
              type: number
              example: 3600
              description: >-
                The minimum window, in seconds, applied on top of the configured
                window.
            reason:
              type: string
              enum:
                - free_schedule
              description: Why the minimum window is applied.
        environments:
          type: array
          items:
            $ref: '#/components/schemas/ScheduleEnvironment'
    ScheduleEnvironment:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
        userName:
          type: string
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: >
        Use a named environment API key. It starts with `tr_dev_sk_`,
        `tr_prod_sk_`, `tr_stg_sk_`, etc.


        Create a named API key in the API Keys section of your Trigger.dev
        project dashboard. Choose the narrowest access preset that supports your
        integration.


        Our TypeScript SDK will default to using the value of the
        `TRIGGER_SECRET_KEY` environment variable if it is set. If you are using
        the SDK in a different environment, you can set the key using the
        `configure` function.


        ```typescript

        import { configure } from "@trigger.dev/sdk";


        configure({ accessToken: "tr_dev_sk_1234" });

        ```

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.