Skip to content
cron.surf

Convert crontab cron to GitHub Actions

crontab writes min hour dom mon dow; GitHub Actions writes min hour dom mon dow. Paste an expression to convert it. Anything that does not map exactly is flagged with the reason and a workaround.

“At 09:00, Monday through Friday”

To · GitHub ActionsExact
0 9 * * 1-5
Runs in UTC unless the entry sets timezone:.

Same schedule on other platforms

0 9 * * 1-5
Set spec.timeZone, or it uses the controller’s local zone.
cron(0 9 ? * 2-6 *)
cron() with six fields; one day field must be ?. UTC unless you set a time zone.
SpringExact
0 0 9 * * 1-5
Six fields, seconds first; set zone= or it uses the server zone.
QuartzExact
0 0 9 ? * 2-6
Seconds first, Sunday is 1, one day field must be ?.

Next 10 runs

computed in your browser
  1. Calculating…

crontab vs GitHub Actions

crontabGitHub Actions
Fieldsmin hour dom mon dowmin hour dom mon dow
Sunday0 or 70
Day and weekday both seteither matches; both must if one starts with *either matches
Special charactersnonenone
Shortcuts@reboot @yearly @monthly @weekly @daily @hourlynone
Time zonesystem zone; CRON_TZ= in cronieUTC, or timezone: per entry
Shortest interval1 minute5 minutes, best effort

Common schedules, converted

crontabGitHub Actions
Every 5 minutes*/5 * * * **/5 * * * *
Every hour0 * * * *0 * * * *
Every minute* * * * *Can’t convert
Every 10 minutes*/10 * * * **/10 * * * *
Every 15 minutes*/15 * * * **/15 * * * *
Every 30 minutes*/30 * * * **/30 * * * *
Daily at midnight0 0 * * *0 0 * * *
Daily at 9 am0 9 * * *0 9 * * *
Weekdays at 9 am0 9 * * 1-50 9 * * 1-5
Every Monday0 0 * * 10 0 * * 1
First day of the month0 0 1 * *0 0 1 * *
Every 6 hours0 */6 * * *0 */6 * * *
Every Sunday at midnight0 0 * * 00 0 * * 0
Every 2 hours0 */2 * * *0 */2 * * *
Every 12 hours0 */12 * * *0 */12 * * *
Daily at noon0 12 * * *0 12 * * *
Every Friday0 0 * * 50 0 * * 5
Every quarter0 0 1 */3 *0 0 1 */3 *
Every 2 minutes*/2 * * * *Can’t convert
Every 3 hours0 */3 * * *0 */3 * * *
Daily at 6 am0 6 * * *0 6 * * *
Daily at 6 pm0 18 * * *0 18 * * *
Twice a day0 */12 * * *0 */12 * * *
Weekdays at 6 pm0 18 * * 1-50 18 * * 1-5
Weekends at 10 am0 10 * * 0,60 10 * * 0,6
15th of the month0 0 15 * *0 0 15 * *
Once a year0 0 1 1 *0 0 1 1 *
Every 3 minutes*/3 * * * *Can’t convert
Every 20 minutes*/20 * * * **/20 * * * *
Every 4 hours0 */4 * * *0 */4 * * *
Every 8 hours0 */8 * * *0 */8 * * *
Daily at 1 am0 1 * * *0 1 * * *
Daily at 2 am0 2 * * *0 2 * * *
Daily at 3 am0 3 * * *0 3 * * *
Daily at 8 am0 8 * * *0 8 * * *
Every weekday0 0 * * 1-50 0 * * 1-5
Every weekend day0 0 * * 0,60 0 * * 0,6
Every Tuesday0 0 * * 20 0 * * 2
Every Wednesday0 0 * * 30 0 * * 3
Every Thursday0 0 * * 40 0 * * 4
Every Saturday0 0 * * 60 0 * * 6
Every 6 months0 0 1 */6 *0 0 1 */6 *

FAQ

Can every crontab expression be converted to GitHub Actions?

Not all. Of the 42 common schedules on this page, 39 convert exactly. The rest need a workaround, which the converter shows.

How is Sunday written in crontab and GitHub Actions?

crontab: 0 or 7. GitHub Actions: 0.

Does the time zone carry over?

The expression has no time zone. crontab: system zone; CRON_TZ= in cronie. GitHub Actions: UTC, or timezone: per entry.