GitHub Actions Cron Schedule Generator
Build a GitHub Actions on.schedule cron in your browser: pick fields or presets,
get a live 5-field expression, ready-to-paste YAML, and a plain-English explanation.
Tuned for Actions dialect (UTC, ~5-minute minimum, default branch) — not a generic crontab.guru clone.
Everything runs client-side; nothing is uploaded.
GitHub Actions cron controls
Common presets
GitHub Actions gotchas
How GitHub Actions cron works
In a workflow file under .github/workflows/, you can trigger jobs on a schedule with
on.schedule and one or more cron: strings. GitHub uses the classic
five-field cron syntax: minute, hour, day of month, month, and day of week
(0 = Sunday). There is no seconds field — that is Quartz / some Java schedulers, not Actions.
This generator builds that expression and a minimal YAML snippet you can paste into a workflow. Use presets for common patterns (hourly, weekdays at 09:00 UTC, every 15 minutes) or tune each field with the selects. The human-readable line under the expression summarizes what will run.
All logic is plain client-side JavaScript. Your schedule never leaves the browser — useful when you are drafting workflows alongside private repo names or job steps you do not want posted to a remote API.
When to use this tool
- Writing or reviewing a
on.scheduleblock for GitHub Actions - Converting “every weekday at 9am” into a UTC cron before you commit
- Checking whether a pasted expression is a valid 5-field Actions cron
- Avoiding crontab.guru-style Unix advice that ignores Actions-specific limits
- Scaffolding a tiny workflow YAML with checkout + a placeholder step
Tips for reliable scheduled workflows
- Always think in UTC. 09:00 in Asia/Jerusalem is not
0 9 * * *year-round. - Prefer ≥5 minute intervals. GitHub’s practical minimum is about every five minutes; faster crons may not fire as written.
- Default branch only. Merge the workflow to
main/master(or your default) or the schedule will never run. - Expect jitter. Scheduled runs can be delayed or skipped when GitHub is busy — do not use cron for second-precise jobs.
- Public repo inactivity. After 60 days without activity, scheduled workflows on public repositories are disabled until someone pushes again.
- Combine triggers. You can keep
workflow_dispatchalongsideschedulefor manual test runs.
Frequently asked questions
What cron format does GitHub Actions use?
GitHub Actions uses a standard 5-field POSIX cron expression: minute, hour, day of month, month, day of week. Schedules are evaluated in UTC. There is no seconds field (unlike Quartz).
Are GitHub Actions schedules in UTC?
Yes. The schedule: cron values in workflow YAML are always interpreted in Coordinated Universal Time (UTC). Convert from your local timezone before committing the workflow.
What is the minimum interval for GitHub Actions cron?
GitHub documents that the shortest supported interval is every 5 minutes. More frequent expressions (for example */1 or */2) may be delayed, skipped, or throttled. Prefer */5 or slower for reliable runs.
Do scheduled workflows run on every branch?
No. Scheduled workflows only run from the default branch (usually main or master). Put your on.schedule workflow on the default branch for it to fire.
Why did my GitHub Actions schedule stop running?
Common causes: the workflow is not on the default branch; the repository has been inactive for 60+ days on a public repo (schedules auto-disable); GitHub delayed or skipped the run under load; or the cron was written for local time instead of UTC.
Is this GitHub Actions cron generator free?
Yes. The Formattly GitHub Actions cron schedule generator is free to use with no signup required. Everything runs in your browser.