Skip to content
cron.surf

Convert Spring cron to GitHub Actions

Spring writes sec 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 00:00, on the last day of the month”

To · GitHub ActionsCan’t convert
  • day of month: GitHub Actions has no “last day of the month”. Months end on the 28th to the 31st, so no single day matches.

    WorkaroundRun on days 28-31 and exit unless tomorrow is the 1st. Needs GNU date; in crontab, % is escaped as \%.
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    Not equivalent on its own: it needs a check inside the job.

Runs late on GitHub? Start it on the minute →

Same schedule on other platforms

crontabCan’t convert
  • day of month: crontab has no “last day of the month”. Months end on the 28th to the 31st, so no single day matches.

    WorkaroundRun on days 28-31 and exit unless tomorrow is the 1st. Needs GNU date; in crontab, % is escaped as \%.
    0 0 28-31 * * [ "$(date -d tomorrow +\%d)" = "01" ] && /path/to/job
    Not equivalent on its own: it needs a check inside the job.
KubernetesCan’t convert
  • day of month: Kubernetes has no “last day of the month”. Months end on the 28th to the 31st, so no single day matches.

    WorkaroundRun on days 28-31 and exit unless tomorrow is the 1st. Needs GNU date; in crontab, % is escaped as \%.
    0 0 28-31 * *  # job: [ "$(date -d tomorrow +%d)" = "01" ] || exit 0
    Not equivalent on its own: it needs a check inside the job.
cron(0 0 L * ? *)
cron() with six fields; one day field must be ?. UTC unless you set a time zone.
QuartzExact
0 0 0 L * ?
Seconds first, Sunday is 1, one day field must be ?.

Next 10 runs

computed in your browser
  1. Calculating…

Spring vs GitHub Actions

SpringGitHub Actions
Fieldssec min hour dom mon dowmin hour dom mon dow
Sunday0 or 70
Day and weekday both setboth must matcheither matches
Special charactersL W # LW L-nnone
Shortcuts@yearly @monthly @weekly @daily @hourlynone
Time zonezone=, else the JVM zoneUTC, or timezone: per entry
Shortest interval1 second5 minutes, best effort

Common schedules, converted

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

FAQ

Can every Spring expression be converted to GitHub Actions?

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

How is Sunday written in Spring and GitHub Actions?

Spring: 0 or 7. GitHub Actions: 0.

Does the time zone carry over?

The expression has no time zone. Spring: zone=, else the JVM zone. GitHub Actions: UTC, or timezone: per entry.