Cron Expressions for GitHub Actions Scheduled Workflows
GitHub Actions supports scheduled workflows using standard 5-field cron syntax. Schedules always run in UTC. Due to high demand, scheduled workflows may run up to 15 minutes late during peak periods.
Common GitHub Actions Cron Patterns
*/5 * * * *Minimum practical frequency for GitHub Actions
0 * * * *Runs at the top of every hour
0 6 * * *Runs every day at 06:00 UTC
0 9 * * 1-5Runs Monday through Friday at 09:00 UTC
0 0 * * 1Runs at 00:00 UTC every Monday
0 2 * * *Runs at 02:00 UTC every night
0 6,18 * * *Runs at 6am and 6pm UTC
0 0 1 * *Runs at midnight UTC on the 1st of every month
GitHub Actions Workflow — Scheduled Trigger
name: Scheduled Job
on:
schedule:
# Runs at 06:00 UTC every weekday
- cron: '0 6 * * 1-5'
jobs:
run-job:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run scheduled task
run: echo "Running scheduled job at $(date)"How GitHub Actions Differs from Standard Crontab
GitHub Actions uses standard 5-field cron (same as crontab) but is always UTC. It does not support the 6-field format used by AWS EventBridge or the seconds-first format used by Azure Functions.
Common Gotchas & Pitfalls
Schedules always run in UTC — convert your local time to UTC before writing the cron.
GitHub may delay scheduled runs by up to 15 minutes during high-traffic periods.
The minimum supported interval is every 5 minutes (*/5 * * * *).
Scheduled workflows only run on the default branch (usually main or master).
If the repo has no activity for 60 days, GitHub will disable the scheduled workflow.
You cannot use '@monthly' or other @ shortcuts — only 5-field numeric cron syntax.
Multiple schedule triggers are supported — add multiple `- cron:` entries.
Other Platform Guides
More Cron Expression Tools
Translate, build, test, and reference cron expressions — all in one place.