Developer Tools
GitHub Actions Cron Builder
Build, explain, and validate GitHub Actions cron schedules. UTC and local next-run preview, workflow YAML snippet, drift and 60-day caveats.
POSIX 5-field cron. Order: minute hour day-of-month month day-of-week. GitHub interprets it in UTC.
Plain English
At 09:00 UTC, every day, Monday to Friday
CI-focused presets
A starting point for common GitHub Actions schedules. All times are UTC; pick one and edit the fields.
Field breakdown
What each cron field expands to.
| Field | Range | Token | Matches |
|---|---|---|---|
| Minute | 0-59 | 0 | 0 |
| Hour | 0-23 | 9 | 9 |
| Day of month | 1-31 | * | all |
| Month | 1-12 | * | all |
| Day of week | 0-6 | 1-5 | Monday, Tuesday, Wednesday, Thursday, Friday |
Next 8 runs
Computed in UTC (the only zone GitHub Actions uses). Toggle Local to see when the schedule fires in your time zone.
- 2026-06-22 09:00 UTCin 41 minutes
- 2026-06-23 09:00 UTCin 1 day
- 2026-06-24 09:00 UTCin 2 days
- 2026-06-25 09:00 UTCin 3 days
- 2026-06-26 09:00 UTCin 4 days
- 2026-06-29 09:00 UTCin 7 days
- 2026-06-30 09:00 UTCin 8 days
- 2026-07-01 09:00 UTCin 9 days
GitHub Actions caveats
Documented quirks of scheduled workflows that catch a lot of teams.
UTC only.
The cron expression is interpreted in UTC. There is no time zone field. If your team is in PST or IST, translate the schedule yourself, or watch the Local preview above.
Runs from the default branch.
Scheduled workflows only fire when the workflow file exists on the repository's default branch. Feature-branch schedules are ignored.
Drift during peak times.
GitHub's scheduling has high load periods; runs can be delayed by minutes or skipped entirely. Critical jobs should be idempotent and check their own last-run timestamp.
60-day inactivity rule.
Scheduled workflows in a repository that has had no activity on the default branch for 60 days are disabled automatically. Push a commit or re-enable the workflow to restore the schedule.
Workflow YAML snippet
A complete .github/workflows/*.yml file with the schedule above. Adjust the steps to your job.
.github/workflows/scheduled.yml
name: Scheduled Task
on:
schedule:
# Runs weekdays at 09:00 UTC
- cron: '0 9 * * 1-5'
workflow_dispatch:
jobs:
run:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run scheduled work
run: echo "Replace this step with your scheduled job."
How to use
- Type or paste a 5-field cron expression into the input. Use the CI-focused presets if you want a starting point: nightly midnight UTC, weekdays 09:00 UTC, every six hours, and more.
- Read the plain-English explanation under the input and check the Field breakdown table to confirm each field expands to the values you expected.
- Switch the Next 8 runs preview between UTC and Local. The UTC view is what GitHub Actions actually uses; the Local view shows when those UTC times land in your chosen time zone so you can confirm the schedule fits your team's working hours.
- Review the caveats panel. UTC only, default-branch only, drift during peak hours, and the 60-day inactivity rule are the four gotchas that explain most missed runs.
- Set the workflow name, job id, and cron comment in the YAML snippet builder. Toggle workflow_dispatch on if you also want a manual Run workflow button in the Actions tab.
- Copy the YAML snippet and drop it into .github/workflows/scheduled.yml in your repository's default branch. The schedule starts firing once the file lands on the default branch.
About this tool
GitHub Actions Cron Builder is a focused tool for the cron schedules that live inside a .github/workflows YAML file under on.schedule.cron. GitHub Actions interprets every cron expression in UTC, accepts only the POSIX 5-field grammar (minute, hour, day of month, month, day of week), and rejects the Quartz extensions that other schedulers allow (no seconds field, no question mark placeholder, no L, no W, no hash). This tool parses your expression with those exact rules and gives a pointed error when a Quartz-style token slips through. A live plain-English explanation describes when the schedule fires, a Field breakdown table shows what each field expands to, and a Next 8 runs panel previews the upcoming run times in both UTC and a chosen IANA time zone so the UTC-only nature of GitHub Actions is unmissable. A curated set of CI-focused presets covers the most common patterns: nightly at midnight UTC, daily at 06:00 UTC for European mornings, weekdays at 09:00 UTC, every six hours, every 30 minutes, weekly on Sunday, monthly on the first, and yearly on January 1. A workflow YAML snippet builder assembles a complete .github/workflows/scheduled.yml with your cron, an optional workflow_dispatch trigger so you can also run the job manually from the Actions tab, your workflow name, a job id, and a comment line. A caveats panel surfaces the GitHub-specific gotchas that catch real teams: schedules run only from the default branch, are dropped or delayed during high-load periods, and are auto-disabled after 60 days of inactivity on the default branch. The tool also flags POSIX cron behavior that surprises people, like the day-of-month and day-of-week OR rule. Everything runs locally; nothing you type is uploaded. Useful for replacing crontab.guru for the GitHub Actions case, for sanity-checking schedules before opening a pull request, for migrating Quartz or Spring schedules to GitHub Actions, and for getting next-run previews in your own time zone without spinning up a CI job to test.
Free to use. Works in your browser. No signup, no login.
Related tools
You may also like
Cron Expression Generator
Build and explain cron expressions with plain English and a next-run preview.
Open tool
DeveloperCrontab Explainer
Translate any crontab to plain English with a field breakdown and next-run preview.
Open tool
Date & TimeTime Zone Converter
Compare a moment across many time zones with offsets and DST.
Open tool
DeveloperGitignore Generator
Build a .gitignore from curated language, framework, editor, and OS templates.
Open tool
DeveloperDockerfile Generator
Build a production Dockerfile with multi-stage build, non-root user, BuildKit cache, and healthcheck.
Open tool
DeveloperYAML Formatter
Pretty print and validate YAML with consistent indent, sorted keys, and clear errors.
Open tool