Skip to main content

⏱️ GitHub Actions Cron Schedule Generator

CronForge — visual crontab editor with timezone + DST

GitHub Actions uses standard 5-field POSIX cron in the on.schedule.cron key. Build your expression below and copy the YAML — but read the three constraints underneath first, because they catch almost everyone.

Expression

At 09:00 UTC, Monday through Friday.
minute · hour · day-of-month · month · day-of-week   (5 fields, 24h clock)

Presets

Visual editor click cells to toggle

Minute (0-59)
Hour (0-23)
Day of month (1-31)
Month (1-12)
Day of week (0-6, Sun=0)

Next 10 fire times

    The YAML you need

    on:
      schedule:
        - cron: '0 9 * * 1-5'

    Quote the expression. Unquoted, YAML will try to parse * and the workflow will fail to load. You can list several - cron: entries under one schedule block.

    GitHub Actions always runs in UTC

    There is no timezone option. 0 9 * * 1-5 means 09:00 UTC, which is 04:00 in New York during winter and 05:00 during summer — the offset moves twice a year and your workflow time moves with it. If you need a fixed local time you have to change the cron twice a year, or schedule in UTC and adjust inside the job. Use the timezone selector above to see what your expression means where you are.

    Scheduled runs are delayed, sometimes badly

    GitHub explicitly does not guarantee scheduled workflows start on time. Delays of 5 to 15 minutes are routine and can stretch much further during peak load — the top of the hour is the worst possible slot because everyone schedules there. Offset your schedule to something like 7 9 * * 1-5 to sit outside the crush.

    Two things that silently disable your schedule

    Default branch only. Scheduled workflows only run from the repository's default branch. A schedule on a feature branch never fires, with no warning.

    60 days of inactivity. GitHub disables scheduled workflows in public repositories after 60 days with no commits. You get an email, which is easy to miss. The workflow has to be re-enabled manually.

    Shortest supported interval

    The minimum is every 5 minutes — */5 * * * *. Anything shorter is accepted by the parser but silently rounded up. The @reboot and other @ shorthands are not supported.

    Frequently asked questions

    What timezone does GitHub Actions cron use?

    UTC, always. There is no way to set a timezone for a scheduled workflow.

    Why is my GitHub Actions scheduled workflow not running?

    The three usual causes: the workflow is not on the default branch; the repository has been inactive for 60 days and GitHub disabled the schedule; or the cron expression is unquoted and the YAML fails to parse.

    What is the shortest GitHub Actions cron interval?

    Every 5 minutes (*/5 * * * *). Shorter intervals are rounded up.

    Related cron expressions

    Copied