Cron generator

GitHub Actions cron generator

Generate, explain and test GitHub Actions cron schedules. Copy the YAML schedule, preview UTC run times, and avoid the common timezone trap.

0 9 * * 1-5
GitHub Actions cron uses UTC.
Write the schedule in UTC first, then translate it back to the time your team expects.
Scheduled workflows are not instant.
GitHub may queue runs at busy times, so avoid schedules that need second-perfect timing.
Add manual fallback.
Pair schedule with workflow_dispatch so you can rerun maintenance tasks without editing YAML.

When this schedule fits

The example above runs at 09:00 UTC Monday to Friday. It is a good fit for weekday report jobs, daily dependency checks, stale issue triage, or a build that should run before the team starts work. If your users or team are in the UK, remember that 09:00 UTC is 09:00 during GMT and 10:00 during BST. For anything customer-facing, put that conversion in the workflow name or a comment so the next person does not "fix" the schedule in the wrong direction.

Copy-ready example

on:
  schedule:
    - cron: "0 9 * * 1-5"
  workflow_dispatch:

Common mistakes

The biggest mistake is treating GitHub Actions cron like local server cron. It is not local time, it does not support every cron extension, and it should not be used as the only trigger for urgent production work. Keep scheduled workflow commands idempotent, because failed jobs may be rerun manually. If the task sends emails, invoices, deploys, or mutates data, add a guard in the workflow or application code so a delayed rerun does not double-send.

Other useful GitHub Actions schedules

# Every weekday at 09:00 UTC
0 9 * * 1-5

# Nightly build at 02:30 UTC
30 2 * * *

# First day of the month at 08:00 UTC
0 8 1 * *

How to test it

Use the main builder to preview upcoming runs, commit the workflow with workflow_dispatch enabled, then run it once manually. Check that secrets, permissions, branch filters, and working directories behave the same way in the scheduled run as they do in a pull request or manual run. If the schedule controls a business process, add a short log line at the start and end of the workflow so failures are easier to diagnose later.

FAQ

Does GitHub Actions cron use my local timezone? No. Scheduled workflows use UTC, so convert local business times before committing the workflow.

Can I run a workflow every minute? GitHub Actions scheduled workflows are not designed for minute-perfect polling. Use a more suitable scheduler if the timing is critical.

Should I keep workflow_dispatch? Yes for most maintenance jobs. It gives you a manual recovery path when a scheduled run fails or needs to be repeated.

Use the full builder

Open the Cron Expression Builder to edit this schedule, explain a pasted expression, and preview upcoming run times.