Create Scheduler projects and manage their schedules from the API. A project can hold several schedules: add, update, pause, or delete each, and trigger runs on demand.
/organizations/:orgId/projectsCreate a Scheduler project. It starts with one default schedule (hourly, UTC); manage schedules with the endpoints below.
{
"name": "nightly-report",
"type": "cron"
}{
"project": {
"id": "p1234567-abcd-...",
"name": "nightly-report",
"description": null,
"region": "us-east-1",
"type": "cron",
"createdAt": "2026-07-11T...",
"updatedAt": "2026-07-11T..."
}
}/organizations/:orgId/projects/:projectId/schedulesList the schedules on this project.
{
"schedules": [
{
"id": 42,
"expression": "0 * * * *",
"timezone": "UTC",
"enabled": true,
"createdAt": "2026-07-11T...",
"updatedAt": "2026-07-11T..."
}
]
}/organizations/:orgId/projects/:projectId/schedulesAdd a schedule. "expression" is a standard 5-field schedule expression; "timezone" (IANA) and "enabled" are optional. A project can hold up to 5 schedules. Adding one beyond that returns 409.
{
"expression": "0 9 * * MON-FRI",
"timezone": "America/New_York",
"enabled": true
}{
"schedule": {
"id": 43,
"expression": "0 9 * * MON-FRI",
"timezone": "America/New_York",
"enabled": true,
"createdAt": "2026-07-11T...",
"updatedAt": "2026-07-11T..."
}
}/organizations/:orgId/projects/:projectId/schedules/:scheduleIdUpdate one schedule. Send any subset of "expression", "timezone", and "enabled". Set "enabled" to false to pause, true to resume.
{
"expression": "30 6 * * *",
"timezone": "America/New_York",
"enabled": false
}{
"schedule": {
"id": 43,
"expression": "30 6 * * *",
"timezone": "America/New_York",
"enabled": false,
"updatedAt": "2026-07-11T..."
}
}/organizations/:orgId/projects/:projectId/schedules/:scheduleIdDelete one schedule. A project must keep at least one; deleting the last one returns 400.
/organizations/:orgId/projects/:projectId/runTrigger a run immediately, outside the schedule. The invocation is asynchronous, so check Logs for output.
{
"invoked": true
}