GitHub Actions Cron
5-field POSIX-style cron for workflow `schedule` triggers — defaults to UTC (optional `timezone:` field since March 2026), 5-minute minimum interval.
Overview
GitHub Actions workflow `schedule` triggers use 5-field POSIX-style cron expressions. GitHub documents the syntax as POSIX-style cron extended with step values (`/`) and named months/days (JAN-DEC, SUN-SAT); Vixie-style `@`-aliases are explicitly not supported.
There are two practical constraints: (1) schedules default to UTC unless you set the optional `timezone:` field (added March 2026, accepts any IANA identifier); (2) the minimum reliable interval is 5 minutes, and the schedule is best-effort (GitHub may delay or skip runs during high load).
Field Structure
Field Order5 fields: minute hour day-of-month month day-of-week
Day-of-Week0=Sunday, 1=Monday, …, 6=Saturday (or SUN-SAT names). GitHub documents the range as 0-6; unlike Vixie cron, 7 for Sunday is not documented — use 0 or SUN.
Special Characters
| Token | Meaning |
|---|---|
| * | Any value. |
| , | List separator. |
| - | Range. |
| / | Step. |
Aliases
- None — GitHub explicitly rejects `@yearly`/`@monthly`/`@weekly`/`@daily`/`@hourly`/`@reboot`; write the full 5-field expression (e.g. `0 0 * * *` instead of `@daily`).
Comparison vs. Unix Cron
| Feature | GitHub Actions Cron | Unix Cron |
|---|---|---|
| Field count | 5 | 5 |
| Seconds field | No | No |
| Step syntax | Yes | Limited |
| Named months/days | Yes (JAN-DEC, SUN-SAT) | No |
| Aliases | No | No |
| Timezone control | `timezone:` field (IANA, since Mar 2026); defaults to UTC | Daemon-local or `CRON_TZ` |
| Minimum interval | 5 minutes (hard minimum) | 1 minute |
Examples
Gotchas & Pitfalls
- ⚠Schedules default to UTC. Prefer the `timezone:` field (e.g. `timezone: "America/New_York"` with cron `0 9 * * *`) added in March 2026. If you must hand-convert, 09:00 New York is 14:00 UTC in winter (EST) and 13:00 UTC in summer (EDT).
- ⚠In public repositories, scheduled workflows are automatically disabled after 60 days of repository inactivity.
- ⚠If many workflows are scheduled for the same minute (e.g. minute 0), runs can be delayed — stagger to off-peak minutes (e.g. 7, 23, 41) to reduce contention.
- ⚠Schedules on a fork are disabled by default — they must be re-enabled from the Actions tab.