Cron Expression Parser & Generator

Paste a cron expression to see what it means in plain English and when it runs next, or build one from drop-downs.

Enter a cron expression

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)

Presets

Build an expression

Choose a value for each field, then press Use expression to parse it above.

0 9 * * *
Cron syntax reference
FieldAllowed valuesNotes
Second (optional first field)0-59Only when you write six fields
Minute0-59
Hour0-2324-hour clock, 0 is midnight
Day of month1-31Months without that day are skipped
Month1-12 or JAN-DECNames are not case sensitive
Day of week0-7 or SUN-SAT0 and 7 are both Sunday

Special characters

CharacterMeaningExample
*Every value in the field* in the hour field means every hour
,A list of values1,3,5 in the day-of-week field is Monday, Wednesday, Friday
-A range of values9-17 in the hour field is 09:00 through 17:59
/A step*/15 in the minute field is every 15 minutes
?Any value, accepted as a synonym of * in the two day fields0 0 ? * MON
@dailyNicknames for common schedules@yearly, @monthly, @weekly, @daily, @hourly

Names

Days: SUN, MON, TUE, WED, THU, FRI, SAT (SUN is 0 or 7). Months: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC (JAN is 1).

How to read and test a cron expression

  1. Type or paste an expression into Cron expression, or press a preset. The weekday schedule 0 9 * * 1-5 is loaded for you, and the result updates as you type.
  2. Read the Plain-English schedule, then check the Field breakdown, which explains each field on its own.
  3. Open Time zone for the run times and choose the zone your scheduler uses, often UTC. Set Start from to list the runs after a date and time you care about, such as a daylight saving change.
  4. No expression yet? Pick a value for each field in Build an expression and press Use expression.

How it works

A cron expression has five fields: minute, hour, day of month, month and day of week. Each accepts a number, a range (9-17), a list (1,15), a step (*/10) or * for every value. Month and weekday names such as JAN and MON work, and Sunday is 0 or 7. A leading seconds field (six fields, as in Spring) is also accepted.

The rules follow the behavior described in the crontab(5) manual page and the cronie source. The one that surprises people is the day rule: if both day of month and day of week are restricted, a run happens when either one matches. If either of those fields starts with an asterisk, such as */2, both must match. Next runs are found by checking each calendar day in the chosen time zone.

Worked example

For 0 9 * * 1-5 the schedule reads "At 09:00, on Monday through Friday". The breakdown shows Minute 0 as "At minute 0", Hour 9 as "At 9 AM", Day of month * as "Every day of the month", Month * as "Every month" and Day of week 1-5 as "Monday through Friday". The run list starts with the next weekday at 09:00, then each weekday after it, and skips Saturdays and Sundays.

Limits and edge cases

Frequently asked questions

What does */5 * * * * mean?

It runs every 5 minutes, at minutes 0, 5, 10 and so on up to 55 of every hour, every day.

How do I run a cron job every weekday at 9 AM?

Use 0 9 * * 1-5. The 0 is the minute, 9 is the hour, and 1-5 means Monday through Friday.

Why does my job run on the 15th and on every Friday?

In an expression like 0 0 15 * 5 both day fields are restricted, so cron runs the job when either one matches. To get only Fridays that fall on the 15th, run daily and test the date inside the script.

What time zone does cron use?

The time zone of the machine or service that runs it, which is often UTC on servers and in cloud schedulers. Choose that zone in the tool to see the right run times.

What is the difference between 5-field and 6-field cron?

Standard Unix cron has five fields. Some schedulers, such as Spring, add a seconds field at the front. This tool treats six fields as seconds first.

Next steps: convert a run time between zones with the time zone converter, turn a Unix time into a date with the timestamp converter, or check local times around the world with the world clock. For more examples, read Cron Expressions Explained.