---
title: "Activate Schedule"
method: POST
path: "/api/v1/schedules/{schedule_id}/activate"
tags: ["schedules"]
---

# Activate Schedule

`POST /api/v1/schedules/{schedule_id}/activate`

## Request

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

Activate a schedule by its ID. This will only work on `IMPERATIVE` schedules that were created in the dashboard or using the imperative SDK functions like `schedules.create()`.

## Path parameters

- `schedule_id` string, required

## Response `200`

Schedule updated successfully

- 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

## Other responses

- `401`: Unauthorized request
- `404`: Resource not found

## Changes

- **2026-09-08** `b12efe7f3f89`: 1 info
  - added the optional property `appliedSchedulePolicy` to the response with the `200` status
- **2024-07-18** `ecd4711858cd`: 1 info
  - added the optional property `type` to the response with the `200` status
- **2024-06-14** `173760151a91`: 1 info
  - added the optional property `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/:schedule_id/activate/post.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)
