Scheduling
Workflows can run on a recurring schedule. Add a schedule object to the workflow definition.
Configuration
{
"name": "daily_reconciliation",
"definition": {
"schedule": {
"every": "1d",
"at": "02:00",
"timezone": "America/New_York"
},
"actions": [ ]
}
}
Schedule Fields
| Field | Type | Required | Description |
|---|---|---|---|
every |
string | Yes | Interval: 30m, 1h, 6h, 1d, 7d |
at |
string | No | Time of day in 24h format ("02:00", "14:30"). Only applies when every is 1d or longer |
timezone |
string | No | IANA timezone ("America/New_York", "Europe/London", "Asia/Tokyo"). Defaults to UTC |
Examples
Daily at 2:00 AM Eastern:
{
"schedule": {
"every": "1d",
"at": "02:00",
"timezone": "America/New_York"
}
}
Every 6 hours:
{
"schedule": {
"every": "6h"
}
}
Every 30 minutes:
{
"schedule": {
"every": "30m"
}
}
Weekly (every 7 days) at midnight UTC:
{
"schedule": {
"every": "7d",
"at": "00:00"
}
}
How Scheduled Runs Work
Scheduled workflows execute with an empty @input unless a default input payload is configured. The @now context variable reflects the timestamp at execution time.
Each scheduled occurrence creates a standard workflow run with its own run_id, context, and audit trail. It follows the same execution path as a manually triggered run.
Scheduled occurrences are independent. Design side-effecting steps to be idempotent when a schedule can fire again before earlier work has finished.
Scheduling and conditions. You can combine schedule with a top-level condition to create conditional scheduled workflows. A daily run, for example, can proceed only when new records are available. The schedule starts the workflow, and the condition gates execution.