Schedules
A schedule is the top-level definition in Wakeplane. It combines a cadence, a target, and policies.
YAML Manifest Shape
Section titled “YAML Manifest Shape”Schedules can be created from a YAML file using wakeplane schedule create -f <file> or via POST /v1/schedules with a JSON body.
name: nightly-syncenabled: truetimezone: America/Los_Angeles
schedule: kind: cron expr: "0 2 * * *"
target: kind: workflow workflow_id: sync.customers input: source: crm
policy: overlap: forbid misfire: run_once_if_late timeout_seconds: 900 max_concurrency: 1
retry: max_attempts: 5 strategy: exponential initial_delay_seconds: 30 max_delay_seconds: 900Schedule Kinds
Section titled “Schedule Kinds”Uses a standard 5-field cron expression. The next occurrence is computed using the schedule’s timezone.
interval
Section titled “interval”Fires every every_seconds. The interval is anchored to the previous next_run_at, not to wall clock time.
Fires once at a specific RFC3339 time.
Timezone Behavior
Section titled “Timezone Behavior”Every schedule has a timezone field.
- Cron expressions are evaluated in the schedule’s timezone.
- The
once.attimestamp must be supplied as an RFC3339 timestamp. - Interval schedules use UTC internally; timezone affects only display.
- All
next_run_atvalues stored in the database are UTC.
Pause And Resume
Section titled “Pause And Resume”wakeplane schedule pause <id>wakeplane schedule resume <id>Pause sets enabled=false and records paused_at. Resume sets enabled=true, clears paused_at, and recomputes next_run_at.
Trigger-Now
Section titled “Trigger-Now”wakeplane schedule trigger <id>This creates a manual run immediately and does not change the normal cadence.
Full Replacement Vs Partial Update
Section titled “Full Replacement Vs Partial Update”PUT /v1/schedules/{id}for full replacementPATCH /v1/schedules/{id}for partial updates
Target Kinds
Section titled “Target Kinds”| Kind | Required fields | Optional fields |
|---|---|---|
http | url, method | headers, body |
shell | command | args |
workflow | workflow_id | input |
Default Policy Values
Section titled “Default Policy Values”When policy or retry fields are omitted:
{ "policy": { "overlap": "forbid", "misfire": "run_once_if_late", "timeout_seconds": 300, "max_concurrency": 1 }, "retry": { "max_attempts": 0, "strategy": "exponential", "initial_delay_seconds": 30, "max_delay_seconds": 900 }}See Policies for full semantics.