GitHub Actions Cron Schedule Generator
GitHub Actions schedules workflows with standard five-field POSIX cron under the on: schedule: key. The syntax is plain Unix cron, but a couple of platform rules — it always runs in UTC and scheduled runs are best-effort — cause most of the confusion.
Build your schedule below, then copy the full on: schedule: YAML block straight into your workflow file.
Expression
GitHub Actions cron runs in UTC
Tip: press Ctrl+Enter to copy
Presets
Visual Builder
Description
At 09:00 AM, Monday through Friday
GitHub Actions cron syntax
| Min | Hour | Day | Month | DOW |
|---|---|---|---|---|
| 0 | 9 | * | * | 1-5 |
- Five fields: Minute, Hour, Day-of-month, Month, Day-of-week — standard Unix cron.
- Schedules always run in UTC; there is no timezone option.
- Goes under on: schedule: as a list of - cron: '<expr>' entries.
- Scheduled runs are best-effort: high load can delay them, and the shortest reliable interval is about 5 minutes.
- Scheduled workflows only run on the default branch.
GitHub Actions cron examples
Click any example to load it into the generator above.
Frequently asked questions
Why doesn't my GitHub Actions cron run exactly on time?
Scheduled workflows run on a best-effort basis. During periods of high load on GitHub's runners, jobs can be delayed by several minutes or, rarely, dropped. Don't rely on cron for tasks that must fire at an exact second.
What timezone does GitHub Actions cron use?
Always UTC. There is no timezone setting, so convert your local time to UTC before writing the expression — the generator's next-run preview can help you confirm.
What is the shortest interval I can schedule?
The cron syntax allows down to one minute, but in practice GitHub will not run schedules more often than about every 5 minutes, and very frequent schedules are the first to be throttled under load.