Scheduling
The Scheduler background service fires jobs automatically based on time triggers. All schedules support cron expressions and can optionally pass input data to the workflow.
Schedule Types
| Type | Cron equivalent | Example use |
|---|---|---|
| One-time | Single datetime | Run a migration once on March 31 at 9:00 AM |
| Daily | 0 6 * * * | Generate a daily report at 6:00 AM every day |
| Weekly | 0 8 * * 1,5 | Run every Monday and Friday at 8:00 AM |
| Monthly | 0 9 1 * * | Run on the 1st of every month at 9:00 AM |
| Custom cron | Any valid cron expression | 0 */4 * * * — every 4 hours |
Creating a Schedule
- Navigate to Scheduling in the Dashboard
- Click + New Schedule
- Select the Workflow from the Registry
- Optionally select a specific Robot (blank = any available)
- Set the Schedule Type and configure timing (or enter a cron expression directly)
- Optionally enter Input Data (JSON) to pass to the workflow
- Toggle Active on/off to enable or pause the schedule without deleting it
- Click Save
Cron Expression Reference
workflow
| 1 | ┌─── minute (0-59) |
| 2 | │ ┌─── hour (0-23) |
| 3 | │ │ ┌─── day of month (1-31) |
| 4 | │ │ │ ┌─── month (1-12) |
| 5 | │ │ │ │ ┌─── day of week (0=Sun, 1=Mon … 6=Sat) |
| 6 | │ │ │ │ │ |
| 7 | * * * * * |
| 8 | |
| 9 | Examples: |
| 10 | 0 9 * * 1-5 → 9:00 AM, Monday to Friday |
| 11 | 0 */2 * * * → Every 2 hours |
| 12 | 30 8 1 * * → 8:30 AM on the 1st of every month |
| 13 | 0 6,18 * * * → 6:00 AM and 6:00 PM daily |
Schedule History
Each time a schedule fires, a job is created in the Job Queue. Navigate to the schedule's detail page to see the last 20 scheduled runs with their status and timing. If a run failed, use the retry button directly from the schedule history.