GitHub Actions cron schedules
GitHub Actions takes POSIX cron in on.schedule and runs it on the default branch, in UTC unless the entry sets a time zone. Pick a schedule for the exact expression, config you can paste and the next run times.
Schedules
- Every 5 minutes
*/5 * * * * - Every hour
0 * * * * - Every minuteCan’t convert
- Every 10 minutes
*/10 * * * * - Every 15 minutes
*/15 * * * * - Every 30 minutes
*/30 * * * * - Daily at midnight
0 0 * * * - Daily at 9 am
0 9 * * * - Weekdays at 9 am
0 9 * * 1-5 - Every Monday
0 0 * * 1 - First day of the month
0 0 1 * * - Every 6 hours
0 */6 * * * - Every Sunday at midnight
0 0 * * 0 - Every 2 hours
0 */2 * * * - Every 12 hours
0 */12 * * * - Daily at noon
0 12 * * * - Every Friday
0 0 * * 5 - Last day of the monthCan’t convert
- Every quarter
0 0 1 */3 * - Every 2 minutesCan’t convert
- Every 3 hours
0 */3 * * * - Daily at 6 am
0 6 * * * - Daily at 6 pm
0 18 * * * - Twice a day
0 */12 * * * - Weekdays at 6 pm
0 18 * * 1-5 - Weekends at 10 am
0 10 * * 0,6 - 15th of the month
0 0 15 * * - First Monday of the monthCan’t convert
- Last Friday of the monthCan’t convert
- Once a year
0 0 1 1 * - Every 30 secondsCan’t convert
- Every 3 minutesCan’t convert
- Every 20 minutes
*/20 * * * * - Every 4 hours
0 */4 * * * - Every 8 hours
0 */8 * * * - Daily at 1 am
0 1 * * * - Daily at 2 am
0 2 * * * - Daily at 3 am
0 3 * * * - Daily at 8 am
0 8 * * * - Every weekday
0 0 * * 1-5 - Every weekend day
0 0 * * 0,6 - Every Tuesday
0 0 * * 2 - Every Wednesday
0 0 * * 3 - Every Thursday
0 0 * * 4 - Every Saturday
0 0 * * 6 - Every 6 months
0 0 1 */6 * - Every 10 secondsCan’t convert
- Every 5 secondsCan’t convert
GitHub Actions gotchas
5 minutes is the floorGitHub documents every 5 minutes as the shortest interval a scheduled workflow can run. Do not count on anything tighter.
Runs can be late or droppedScheduled runs are delayed at busy times, especially at the start of each hour, and some may be dropped. Avoid minute 0 if timing matters.
UTC unless you set timezoneAdd timezone: with an IANA name to the schedule entry. Without it the schedule runs in UTC.
Default branch only, and it can switch offSchedules run from the latest commit on the default branch. In public repositories they are disabled after 60 days without activity.
Convert to and from GitHub Actions
Convert GitHub Actions cron to crontabConvert crontab cron to GitHub ActionsConvert GitHub Actions cron to KubernetesConvert Kubernetes cron to GitHub ActionsConvert GitHub Actions cron to AWS EventBridgeConvert AWS EventBridge cron to GitHub ActionsConvert GitHub Actions cron to SpringConvert Spring cron to GitHub ActionsConvert GitHub Actions cron to QuartzConvert Quartz cron to GitHub Actions
FAQ
Which time zone does a GitHub Actions schedule use?
In UTC by default. Add timezone: with an IANA name, such as Asia/Tokyo, next to cron: in the schedule entry.
Can GitHub Actions run every minute?
No. The documented minimum is every 5 minutes. For tighter intervals, trigger the workflow from outside with workflow_dispatch or repository_dispatch.
Does GitHub Actions support @hourly or @daily?
No. GitHub does not support @yearly, @monthly, @weekly, @daily, @hourly or @reboot. Use the five fields.