Schedule Triggers
Trigger workflows on a time-based schedule using cron or intervals
Schedule Triggers
Schedule triggers start workflows at specified times using cron expressions or interval-based scheduling. Powered by Trigger.dev's scheduling infrastructure.
Configuration
Schedule triggers support two modes: cron expressions and intervals.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be "schedule" |
cron | string | No* | Cron expression (e.g., "0 9 * * 1-5") |
interval | object | No* | Interval configuration |
interval.value | number | Yes | Interval value (1-525600) |
interval.unit | string | Yes | minutes, hours, days, or weeks |
timezone | string | No | IANA timezone (default: "UTC") |
enabled | boolean | No | Enable/disable schedule (default: true) |
You must specify either cron or interval, but not both.
Cron Syntax
Cron expressions follow standard 5-field format:
Special Characters
| Character | Description | Example |
|---|---|---|
* | Any value | * * * * * (every minute) |
, | List separator | 0,30 * * * * (at 0 and 30 minutes) |
- | Range | 0 9-17 * * * (9am to 5pm) |
/ | Step values | */15 * * * * (every 15 minutes) |
Common Schedules
| Schedule | Cron Expression | Description |
|---|---|---|
| Every minute | * * * * * | Runs every minute |
| Every 15 minutes | */15 * * * * | At 0, 15, 30, 45 past the hour |
| Every hour | 0 * * * * | At the start of every hour |
| Daily at 9am | 0 9 * * * | Every day at 9:00 AM |
| Weekdays at 9am | 0 9 * * 1-5 | Monday-Friday at 9:00 AM |
| Weekly on Monday | 0 9 * * 1 | Mondays at 9:00 AM |
| Monthly on 1st | 0 9 1 * * | First of month at 9:00 AM |
| Quarterly | 0 9 1 1,4,7,10 * | First of Jan, Apr, Jul, Oct |
Workflow Examples
Daily Invoice Sync (9am EST):
Weekly Report (Fridays at 5pm):
Interval-Based Scheduling
For simpler recurring schedules, use intervals:
Interval Units
| Unit | Max Value | Example |
|---|---|---|
minutes | 525600 (1 year) | Every 30 minutes |
hours | 8760 (1 year) | Every 4 hours |
days | 365 | Every day |
weeks | 52 | Every week |
Interval Examples
Every 30 minutes:
Every 6 hours:
Weekly:
Timezone Handling
Always specify a timezone for consistent execution times:
Common Timezones
| Region | Timezone |
|---|---|
| US Eastern | America/New_York |
| US Central | America/Chicago |
| US Mountain | America/Denver |
| US Pacific | America/Los_Angeles |
| UK | Europe/London |
| Central Europe | Europe/Berlin |
| India | Asia/Kolkata |
| Japan | Asia/Tokyo |
| Australia | Australia/Sydney |
| UTC | UTC |
Without a timezone, schedules default to UTC. This may cause unexpected execution times.
Daylight Saving Time
Schedules automatically adjust for DST transitions:
- Spring forward: A 2am schedule may skip when clocks move from 2am to 3am
- Fall back: A 1am schedule may run twice when clocks move from 2am to 1am
For critical schedules, consider using UTC to avoid DST edge cases.
Enabling and Disabling
Temporarily disable a schedule without deleting the workflow:
Re-enable by setting enabled: true or removing the field.
Input Data
Scheduled workflows receive execution metadata as input:
| Field | Description |
|---|---|
scheduledTime | When the run was scheduled to start |
executionTime | When the run actually started |
timezone | Configured timezone |
schedule.type | cron or interval |
schedule.expression | The cron or interval definition |
Access in your steps:
Execution Guarantees
At-Least-Once Delivery
Scheduled workflows are guaranteed to run at least once per scheduled time. In rare cases (infrastructure issues), a schedule may run more than once.
Design for idempotency:
Missed Schedules
If a schedule is missed (workflow was paused, system outage), the missed execution is not automatically recovered. The next scheduled execution runs as normal.
For critical schedules, consider:
- Monitoring workflow run history
- Alerting on missed executions
- Running catch-up logic on workflow resume
Concurrency
By default, a new scheduled run starts even if the previous run is still executing. To prevent overlap:
Complete Example
Troubleshooting
Schedule Not Running
- Check workflow status - Must be
active - Verify
enabled- Must betrue(or not set) - Check timezone - Ensure correct IANA timezone
- Validate cron - Use a cron validator tool
Wrong Execution Time
- Check timezone - Common issue is UTC vs local
- Verify DST - Times may shift during DST transitions
- Review cron syntax - Especially day-of-week (0 = Sunday)
Missing Runs
- Check workflow history - Confirm workflow was active
- Review system status - Check for outages
- Verify concurrency - Previous run may still be executing