Skip to main content
The schedules API lets you create, inspect, and manage scheduled mission runs. Schedules support both recurring triggers (cron expressions) and one-shot triggers (ISO timestamps).

Authentication

Authorization
string
required
Bearer token using your project API key. Authorization: Bearer sk_live_...

List schedules

GET /schedules
Returns all scheduled missions in the project.
curl https://{project}.polpo.cloud/v1/schedules \
  -H "Authorization: Bearer sk_live_abc123"
Response
[
  {
    "scheduleId": "sch_abc123",
    "missionId": "msn_daily_standup",
    "expression": "0 9 * * 1-5",
    "recurring": true,
    "enabled": true,
    "lastRunAt": "2026-03-14T09:00:00Z",
    "nextRunAt": "2026-03-17T09:00:00Z",
    "createdAt": "2026-01-10T12:00:00Z"
  },
  {
    "scheduleId": "sch_def456",
    "missionId": "msn_quarterly_audit",
    "expression": "2026-04-01T09:00:00Z",
    "recurring": false,
    "enabled": true,
    "lastRunAt": null,
    "nextRunAt": "2026-04-01T09:00:00Z",
    "createdAt": "2026-03-01T08:00:00Z"
  }
]

Create a schedule

POST /schedules
Create a new schedule for a mission.
missionId
string
required
The ID of the mission to schedule.
expression
string
required
A cron expression (5-field) for recurring schedules, or an ISO 8601 timestamp for one-shot schedules.
recurring
boolean
required
Set to true for cron-based recurring schedules, false for one-shot.
enabled
boolean
Whether the schedule is active. Defaults to true.
deadlineOffsetMs
number
Optional deadline in milliseconds from the trigger time. If the mission has not completed within this window, it is marked as timed out. Omit for no deadline.

Example: recurring schedule (cron)

curl -X POST https://{project}.polpo.cloud/v1/schedules \
  -H "Authorization: Bearer sk_live_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "missionId": "msn_daily_standup",
    "expression": "0 9 * * 1-5",
    "recurring": true,
    "enabled": true,
    "deadlineOffsetMs": 3600000
  }'
Response 201 Created
{
  "scheduleId": "sch_ghi789",
  "missionId": "msn_daily_standup",
  "expression": "0 9 * * 1-5",
  "recurring": true,
  "enabled": true,
  "deadlineOffsetMs": 3600000,
  "lastRunAt": null,
  "nextRunAt": "2026-03-17T09:00:00Z",
  "createdAt": "2026-03-16T15:00:00Z"
}

Example: one-shot schedule (ISO timestamp)

curl -X POST https://{project}.polpo.cloud/v1/schedules \
  -H "Authorization: Bearer sk_live_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "missionId": "msn_quarterly_audit",
    "expression": "2026-04-01T09:00:00Z",
    "recurring": false,
    "enabled": true
  }'
Response 201 Created
{
  "scheduleId": "sch_jkl012",
  "missionId": "msn_quarterly_audit",
  "expression": "2026-04-01T09:00:00Z",
  "recurring": false,
  "enabled": true,
  "lastRunAt": null,
  "nextRunAt": "2026-04-01T09:00:00Z",
  "createdAt": "2026-03-16T15:00:00Z"
}
One-shot schedules fire once at the specified timestamp and are automatically disabled after execution. Recurring schedules continue firing until deleted or disabled.

Get schedule details

GET /schedules/{scheduleId}
Retrieve full details for a schedule, including its last and next run times.
scheduleId
string
required
The schedule ID (e.g. sch_abc123).
curl https://{project}.polpo.cloud/v1/schedules/sch_abc123 \
  -H "Authorization: Bearer sk_live_abc123"
Response
{
  "scheduleId": "sch_abc123",
  "missionId": "msn_daily_standup",
  "expression": "0 9 * * 1-5",
  "recurring": true,
  "enabled": true,
  "deadlineOffsetMs": 3600000,
  "lastRunAt": "2026-03-14T09:00:00Z",
  "nextRunAt": "2026-03-17T09:00:00Z",
  "executionCount": 47,
  "createdAt": "2026-01-10T12:00:00Z"
}

Delete a schedule

DELETE /schedules/{scheduleId}
Remove a schedule. The associated mission is not deleted.
scheduleId
string
required
The schedule ID to delete.
curl -X DELETE https://{project}.polpo.cloud/v1/schedules/sch_abc123 \
  -H "Authorization: Bearer sk_live_abc123"
Response 204 No Content
Deleting a schedule does not cancel any in-progress mission run that was already triggered. It only prevents future triggers.

Cron expression reference

Recurring schedules use standard 5-field cron expressions:
 +------------ minute (0-59)
 | +---------- hour (0-23)
 | | +-------- day of month (1-31)
 | | | +------ month (1-12)
 | | | | +---- day of week (0-6, Sun=0)
 | | | | |
 * * * * *
ExpressionDescription
0 9 * * 1-5Weekdays at 9:00 AM
0 0 * * *Midnight daily
0 */6 * * *Every 6 hours
30 14 1 * *2:30 PM on the 1st of each month
0 9 * * 1Every Monday at 9:00 AM
*/30 * * * *Every 30 minutes
SyntaxExampleMeaning
Numbers30 9 * * *9:30 AM daily
Ranges0 9-17 * * *Every hour, 9 AM to 5 PM
Steps*/10 * * * *Every 10 minutes
Lists0 9 * * 1,3,59 AM on Mon, Wed, Fri
Wildcards* * * * *Every minute
The following cron features are not supported:
  • @yearly, @monthly, @weekly, @daily, @hourly shorthand aliases
  • Seconds field (6-field cron)
  • L (last day), W (nearest weekday), # (nth weekday) modifiers