GitHub Actions cron

🐙 GitHub Actions cron, decoded.

GitHub Actions uses standard 5-field cron, but with two important constraints: UTC only and minimum 5-minute interval. Schedules can also be delayed under heavy load.

GitHub Actions Generator

Translation
    
              
            
    Worked examples

    Common GitHub Actions schedules.

    ExpressionWhat it meansTypical use
    */5 * * * * Every 5 minutes (minimum allowed) Polling, dependency checks, status updates.
    0 * * * * Every hour on the hour Hourly builds, hourly link-checking.
    0 0 * * * Every day at midnight UTC Nightly builds, daily security scans.
    0 9 * * 1-5 Weekdays at 9 AM UTC Workday automation, daily reports.
    0 0 * * 1 Every Monday at midnight UTC Weekly maintenance, weekly reports.
    0 0 1 * * First day of every month Monthly cleanups, monthly releases.

    Click any expression to load it into the tool above.

    Common questions

    GitHub Actions FAQs.

    GitHub enforces this to prevent excessive runner load. Cron expressions like */1 * * * * or */3 * * * * are rejected at workflow validation time. The minimum step value for the minute field is 5.

    GitHub Actions cron is best-effort, not guaranteed. During high load (Monday mornings UTC are notoriously busy), scheduled runs can be delayed 5-30 minutes. For time-critical workflows, use external triggers (Cloud Scheduler, EventBridge) calling workflow_dispatch.

    GitHub Actions cron is UTC-only. 0 9 * * * means 9 AM UTC, which is 1 AM Pacific or 5 PM Tokyo. Calculate your desired local time in UTC, or use a separate scheduling service if you need timezone awareness.

    Yes — you can comment out the schedule block in your workflow YAML, or rename the file to .yml.bak. GitHub also automatically disables scheduled workflows in repos with no activity for 60+ days.

    Combine triggers: on: { schedule: [...], workflow_dispatch: {} }. The workflow_dispatch trigger adds a "Run workflow" button in the Actions UI.