GitHub Actions schedule: cron syntax, limits and delays
GitHub runs workflows on a cron schedule, with rules of its own.
What the page says
From GitHub's "Events that trigger workflows" page, read on 13 November 2026:
- You schedule a workflow with the
scheduleevent and a cron entry under it. - It uses POSIX cron syntax. The five fields are minute (0 to 59), hour (0 to 23), day of the month (1 to 31), month (1 to 12 or JAN-DEC) and day of the week (0 to 6 or SUN-SAT).
- The operators are
*,,,-and/. The page's example20/15 * * * *runs every 15 minutes starting from minute 20 through 59: minutes 20, 35 and 50. - By default scheduled workflows run in UTC. You can set a time zone with an IANA name.
- The shortest interval is once every 5 minutes.
- A schedule runs the latest commit on the default branch, and the workflow file must be on the default branch.
A minimal workflow
on:
schedule:
- cron: '15 4,5 * * *'
That is the page's own example: it runs at 04:15 and 05:15 UTC every day. To use a time zone, add timezone: "Asia/Kolkata" under the cron entry, indented at the same level as cron.
Delays and dropped runs
GitHub says the schedule event can be delayed during periods of high load, which include the start of every hour, and that if the load is high enough some queued jobs may be dropped. Its advice: schedule the workflow at a different time of the hour. So 17 * * * * is better than 0 * * * *, and */5 runs may start a little after the minute.
The 60-day pause
In a public repository, scheduled workflows are automatically disabled when no repository activity has occurred in 60 days. You can enable the workflow again in the Actions tab. The page also says that a commit that changes the cron schedule reactivates a deactivated workflow.
Which schedule fired?
One workflow can have several schedules. The expression that triggered the run is available as github.event.schedule, so a step can say if: github.event.schedule == '30 5 * * 1,3'.
Daylight saving with a time zone
For zones that change their clocks, GitHub says that in the skipped hour a schedule advances to the next valid time: 2:30 AM becomes 3:00 AM. This is different from classic cron, which skips the run.
Notifications
Notifications for scheduled workflow runs go to the user who last modified the cron syntax in the workflow file.
Can GitHub Actions run every minute?
No, the minimum is every 5 minutes.
Does @daily work in a workflow?
The page documents only the five fields, so write 0 0 * * *.
Why did my schedule stop after two months?
Probably the 60-day inactivity pause on a public repository. Re-enable the workflow, or make a commit.
This is an independent guide and tool. It is not connected with crontab.guru, Quartz, GitHub, Kubernetes, Spring or the Linux projects named here. Product names belong to their owners.