Skip to main content

GitHub Actions Cron Builder

Build cron schedules visually, preview next run times, and get a ready-to-paste workflow YAML — all in your browser.

✓ Visual schedule builder ✓ Next 5 run times (UTC) ✓ Full workflow YAML snippet

Schedule Builder

Cron Expression
0 2 * * *

Next 5 Run Times (UTC)

    Workflow YAML

     
    Share this tool: X / Twitter LinkedIn
    ✓ 60,000+ developers use DevPlaybook ★★★★★ 4.8 / 5 on Gumroad ✓ MIT licensed · Instant download ✓ No login required

    Related Products

    on Gumroad

    You Might Also Need

    More Free Tools

    Enjoying this tool? Get more like it.

    Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.

    DevPlaybook Pro 7 days free

    Unlock AI-Powered Dev Tools

    • ⚡ AI Code Review, Doc Generator & SQL Builder
    • ⚡ All premium templates & early access
    • ⚡ Member discounts on Gumroad products
    Start Free Trial →

    $9/mo after trial · Cancel anytime

    Want the full toolkit?

    Get DevPlaybook Pro

    Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.

    $79
    $241 separately Save $162 (67% off)
    Get DevPlaybook Pro — $79 →

    MIT licensed · Instant download · No subscription

    See what's included → Browse all deals →

    Frequently Asked Questions

    How does cron syntax work in GitHub Actions?▼

    GitHub Actions uses standard POSIX cron syntax with 5 fields: minute (0–59), hour (0–23), day-of-month (1–31), month (1–12), day-of-week (0–7, where 0 and 7 both mean Sunday). Special characters: * (any), , (list), - (range), / (step). Example: '0 9 * * 1-5' runs at 9:00 AM Monday through Friday. All times are in UTC.

    Why does my scheduled workflow not run on time?▼

    GitHub's scheduler for cron workflows is not precise. High-load periods (top of the hour, on the hour) can delay runs by 15–60+ minutes. GitHub also throttles inactive repos — if you haven't pushed in 60+ days, scheduled workflows are disabled. To avoid top-of-hour contention, offset your schedule (e.g., 17 minutes past the hour instead of exactly on the hour).

    What is the minimum schedule interval?▼

    GitHub Actions cron schedules have a minimum interval of 5 minutes (the most frequent allowed is '*/5 * * * *'). For sub-5-minute polling, use an external trigger or a self-hosted runner with a loop. Be aware that very frequent schedules still subject to queue delays during peak load.

    Can I run a workflow on a schedule AND on push?▼

    Yes — GitHub Actions supports multiple triggers. Combine schedule with push, pull_request, or workflow_dispatch: 'on: { schedule: [{cron: "0 2 * * *"}], push: {branches: [main]}, workflow_dispatch: {} }'. workflow_dispatch adds a manual run button in the Actions tab — highly recommended alongside scheduled jobs.

    How do I add conditional logic based on whether it's a scheduled run?▼

    Check github.event_name in your steps: 'if: github.event_name == schedule' or 'if: github.event_name != schedule'. You can also use the IS_SCHEDULED environment variable pattern or run different jobs depending on trigger type.