GitHub Actions

GitHub Actions Cron Schedule Generator

Build and validate on.schedule cron expressions for GitHub Actions. All times are UTC. Minimum interval: 5 minutes. No @-aliases.

At 09:00 AM, Monday through Friday

Valid

Next 10 executions

  1. 1Thu, Apr 9, 2026, 9:00 AM
  2. 2Fri, Apr 10, 2026, 9:00 AM
  3. 3Mon, Apr 13, 2026, 9:00 AM
  4. 4Tue, Apr 14, 2026, 9:00 AM
  5. 5Wed, Apr 15, 2026, 9:00 AM
  6. 6Thu, Apr 16, 2026, 9:00 AM
  7. 7Fri, Apr 17, 2026, 9:00 AM
  8. 8Mon, Apr 20, 2026, 9:00 AM
  9. 9Tue, Apr 21, 2026, 9:00 AM
  10. 10Wed, Apr 22, 2026, 9:00 AM
Use in GitHub Actions
on:
  schedule:
    - cron: '0 9 * * 1-5'

Key Constraints

  • All times in UTC — no timezone field, convert manually
  • Minimum interval: 5 minutes — shorter schedules are silently throttled
  • No @-aliases (@daily, @hourly, etc. are rejected)
  • Scheduled workflows disabled after 60 days of inactivity — public repos only (private repos unaffected)
  • Scheduled runs are "best effort" — expect delays of up to 60+ minutes at peak times

Common UTC Conversions

Local timeUTC equivalentCron expression
Midnight EST (UTC−5)05:00 UTC0 5 * * *
9am EST (UTC−5)14:00 UTC0 14 * * *
Midnight WAT (UTC+1, Lagos)23:00 UTC0 23 * * *
9am WAT (UTC+1, Lagos)08:00 UTC0 8 * * *
9am EAT (UTC+3, Nairobi)06:00 UTC0 6 * * *
9am IST (UTC+5:30, Mumbai)03:30 UTC30 3 * * *

Common Patterns

ExpressionMeaning
0 9 * * 1-5Weekdays at 9:00 AM UTC
0 2 * * *Every day at 2:00 AM UTC
*/5 * * * *Every 5 minutes (minimum allowed)
0 0 1 * *1st of every month at midnight UTC
47 3 * * *Daily at 3:47 AM UTC (off-peak — avoids delays)

GitHub Actions Schedule FAQ

Why is my GitHub Actions scheduled workflow not running?
Several causes: (1) Repository inactivity — GitHub disables scheduled workflows in public repositories after 60 days without activity (private repos are not affected); you'll receive an email to re-enable. (2) High load delay — popular cron times (midnight UTC, top of hour) are frequently delayed 30–60 minutes. (3) Fork behavior — scheduled workflows are disabled on forks by default. (4) Throttling — expressions shorter than 5 minutes are silently skipped.
Can I run a GitHub Actions workflow in my local timezone?
No. All on.schedule times are strictly UTC. There is no timezone field. Convert manually: 9:00 AM EST (UTC-5 winter) = 0 14 * * *. 9:00 AM WAT (UTC+1, Lagos) = 0 8 * * *. During summer, account for DST shifts if your team is in a DST-observing timezone.
What cron syntax does GitHub Actions support?
Standard 5-field POSIX cron: minute hour day-of-month month day-of-week. No @-aliases@daily, @hourly, etc. are rejected. No 6-field Quartz syntax. Minimum interval is 5 minutes — anything shorter is throttled. All times in UTC.
How do I prevent a scheduled workflow from running on repository forks?
Add if: github.repository == 'owner/repo' to your job definition. This checks the repository name at runtime and skips execution on forks. Alternatively, go to the fork's Settings → Actions and disable Actions entirely. The condition approach is more maintainable.
Why does my scheduled workflow run hours late?
GitHub explicitly states scheduled workflows are "best effort" and run "as close to the scheduled time as possible." During high load (especially at midnight UTC, 00:00–01:00 and at the top of each hour), delays of 30–90 minutes are common. Mitigation: schedule at off-peak times like 47 3 * * * instead of 0 3 * * *. If exact timing is critical, trigger an external webhook from a dedicated cron service instead.