Schedules
A schedule defines when work is due, what should run, and how to handle edge cases.
Schedule types
Section titled “Schedule types”Standard cron expression with required timezone.
{ "type": "cron", "spec": "0 9 * * *", "timezone": "America/New_York"}Five-field cron syntax. The timezone is persisted — it is not inferred from the server.
Interval
Section titled “Interval”Fixed duration between runs, anchored from the schedule creation time.
{ "type": "interval", "spec": "30m", "timezone": "UTC"}Duration format follows Go’s time.Duration syntax: 15s, 5m, 2h, 24h.
Single scheduled execution at a specific time.
{ "type": "once", "spec": "2026-04-01T09:00:00Z", "timezone": "UTC"}Once schedules transition to paused after their occurrence fires.
Timezone
Section titled “Timezone”Timezone is required and persisted. It is not optional metadata.
All next-run calculations use the stored timezone. Schedules are timezone-aware across daemon restarts.
Schedule lifecycle
Section titled “Schedule lifecycle”| State | Meaning |
|---|---|
active | Planner materializes due occurrences |
paused | Planner skips. Existing runs continue. |
deleted | Soft-deleted. Historical runs are preserved. |
Pause and resume
Section titled “Pause and resume”wakeplane schedule pause --name daily-reportwakeplane schedule resume --name daily-reportSee also
Section titled “See also”- Policies — misfire, overlap, and retry behavior
- CLI Reference
- API Contract