Schedules require authentication. See API Key for how to create a key and API Scopes for the required permissions.
List schedules
GET /api/schedules
Returns every task that has an associated schedule, along with the schedule configuration and next run time.
Response:
Returns
401 when the caller is not authenticated.
Create or update a schedule
POST /api/schedules/:taskId
Attaches a new schedule to a task, or replaces an existing one. The task itself is not modified.
Body:
Returns
400 when the schedule is invalid and 404 when the task does not exist.
Delete a schedule
DELETE /api/schedules/:taskId
Removes the schedule from a task. The task and its history are kept; it simply stops running on a schedule.
Response:
404 when the task does not exist.
Get schedule status
GET /api/schedules/:taskId/status
Returns the current schedule configuration for a specific task, including the computed cron expression, human-readable description, and whether the schedule is valid.
Response:
Returns
404 when the task does not exist.
Preview or validate a schedule
POST /api/schedules/:taskId/describe
Validates a schedule configuration without saving it. Use this to preview the computed cron expression, description, and next run time before applying the schedule.
Body:
Returns
401 when the caller is not authenticated.
Get overall scheduler status
GET /api/schedules/status/all
Returns the global scheduler state, such as whether scheduling is enabled and summary statistics. The exact shape is runtime-dependent.
Response:
401 when the caller is not authenticated.
Schedule body fields
These fields are accepted in the request body forPOST /api/schedules/:taskId and POST /api/schedules/:taskId/describe.
You do not need to include every field. When
cron is provided, it takes precedence over the preset fields. When frequency is used, the relevant time fields (for example, hour and minute for daily) are required.Error responses
REST API Reference
Browse all endpoints, authentication methods, and request examples.