Cron Expression Parser

Paste a cron expression to read it in plain English and see the next times it will run, in your local time zone or in UTC.

Updated
Runs in your browser. Your data is not uploaded.
Show times in

How to use the Cron Expression Parser

  1. Type or paste the schedule into Cron expression, for example 0 3 * * 1, or pick a Common schedule.
  2. Choose Show times in your local time zone or UTC, and how many Next runs to list.
  3. Read the description, the Fields table, and the list of upcoming run times.

How it works

A standard cron expression has five fields separated by spaces:

┌ minute (0-59)
│ ┌ hour (0-23)
│ │ ┌ day of month (1-31)
│ │ │ ┌ month (1-12 or JAN-DEC)
│ │ │ │ ┌ day of week (0-7 or SUN-SAT, 0 and 7 are Sunday)
* * * * *
  • * means every value, 1,15 is a list, 9-17 is a range, and */15 or 0-30/10 is a step.
  • When both day of month and day of week are restricted, the job runs when either one matches. This is how Vixie cron, used on most Linux systems, behaves.
  • Run times are found by stepping forward minute by minute through matching months, days, and hours, starting from the next whole minute.

Examples

  • */15 9-17 * * 1-5: every 15 minutes, from 09:00 to 17:45, Monday to Friday.
  • 0 0 1 * *: at midnight on the first day of every month.
  • 30 2 * * 0: at 02:30 every Sunday.
  • 0 12 13 * 5: at noon on the 13th of each month and at noon every Friday, because both day fields are set.
  • @daily is the same as 0 0 * * *.

Special strings

MacroSame asRuns
@yearly, @annually0 0 1 1 *Once a year, 1 January at 00:00
@monthly0 0 1 * *First day of each month at 00:00
@weekly0 0 * * 0Sunday at 00:00
@daily, @midnight0 0 * * *Every day at 00:00
@hourly0 * * * *At the start of every hour

Limitations

  • Only the classic five-field format is parsed. Quartz and Spring expressions with a seconds field, and the L, W, #, and ? characters, are not supported.
  • @reboot has no fixed time, so no run times are listed for it.
  • The server that runs your jobs may use a different time zone from your browser. Check with timedatectl or the CRON_TZ setting.
  • Around daylight saving changes, real cron daemons may skip or repeat a run. The list shows wall-clock times and doesn't model this.

Frequently asked questions

What does */5 mean in cron?

Every fifth value of the field. In the minute field, */5 runs at minutes 0, 5, 10, and so on up to 55.

Is Sunday 0 or 7?

Both. Standard cron accepts 0 and 7 for Sunday, and 1 to 6 for Monday to Saturday.

Which time zone does cron use?

The time zone of the machine running the cron daemon, unless the crontab sets CRON_TZ or TZ. Use Show times in to compare local time with UTC.

How do I run a job every 90 minutes?

One cron line can't do it, because 90 minutes doesn't divide an hour or a day evenly. Use two lines, such as 0 0-21/3 * * * and 30 1-22/3 * * *.

Does this work for Kubernetes CronJobs and GitHub Actions?

Yes. Both use the five-field format. GitHub Actions always runs schedules in UTC.

Often used together with the Cron Expression Parser.

  • Sed Command Generator

    Builds sed commands for substitution, deletion, printing, and inserts, with a live preview.

  • Regex Tester

    Highlights regex matches live, lists capture groups and offsets, and previews replacements.