Schedules and triggers
Run a worker manually, on a cron schedule in your time zone, or at a fixed interval — and how scheduled runs are made exactly once.
On this page
Every worker has a trigger: manual, or a schedule.
Manual#
The worker runs only when someone presses Run now (or a run is requested through the API). Good for on-demand jobs and for testing before you schedule.
Scheduled#
A schedule is one of:
| Type | Example | Notes |
|---|---|---|
| Cron + time zone | 30 8 * * 1-5 in Europe/Paris — weekdays at 08:30 Paris time |
Times follow the time zone you choose, including daylight saving. |
| Interval | Every 10 minutes | From one minute up to one year. |
Cron quick reference#
┌ minute (0–59)
│ ┌ hour (0–23)
│ │ ┌ day of month (1–31)
│ │ │ ┌ month (1–12)
│ │ │ │ ┌ day of week (0–6, Sunday = 0)
│ │ │ │ │
30 8 * * 1-5 weekdays at 08:30
0 */4 * * * every four hours, on the hour
0 9 1 * * the first of every month at 09:00
Exactly once#
Each scheduled occurrence is recorded with its own key, so a run is created once even if several schedulers are running. The worker's next run time is advanced in the same step that creates the run.
Pausing#
Pausing a worker stops new scheduled runs; resuming picks up from the next occurrence. Runs aren't back-filled for the time it was paused.