DevTools Hub

Cron Expression Explainer

Understand any cron schedule at a glance and check exactly when it will run next.

“Every 15 minutes, between 09:00 and 17:59, Monday through Friday”

Field by field
FieldValueAllowed
Minute*/150-59
Hour9-170-23
Day of month*1-31
Month*1-12 or JAN-DEC
Day of week1-50-6 (Sun-Sat) or SUN-SAT

Special characters: * any value, , list, - range, / step.

Next 10 runs
  1. 1.Fri, Nov 6, 2026, 09:00
  2. 2.Fri, Nov 6, 2026, 09:15
  3. 3.Fri, Nov 6, 2026, 09:30
  4. 4.Fri, Nov 6, 2026, 09:45
  5. 5.Fri, Nov 6, 2026, 10:00
  6. 6.Fri, Nov 6, 2026, 10:15
  7. 7.Fri, Nov 6, 2026, 10:30
  8. 8.Fri, Nov 6, 2026, 10:45
  9. 9.Fri, Nov 6, 2026, 11:00
  10. 10.Fri, Nov 6, 2026, 11:15

Servers usually run cron in UTC unless configured otherwise. Pick the zone your scheduler uses.

Guide

Cron Syntax Explained

The five fields

*    *    *    *    *
|    |    |    |    |
|    |    |    |    +-- day of week (0-6, Sunday = 0, or SUN-SAT)
|    |    |    +------- month (1-12 or JAN-DEC)
|    |    +------------ day of month (1-31)
|    +----------------- hour (0-23)
+---------------------- minute (0-59)

Some schedulers, such as Quartz and many Node.js libraries, add an optional seconds field at the start.

Special characters

SymbolMeaningExample
*Every value* * * * * runs every minute
,A list0 9,13,17 * * * runs at 9:00, 13:00 and 17:00
-A range0 9 * * 1-5 runs at 9:00 on weekdays
/A step*/10 * * * * runs every 10 minutes

Common pitfalls

  • Day-of-month and day-of-week together: in standard cron, 0 0 1 * MON runs on the 1st of the month and on every Monday, not only on Mondays that fall on the 1st.
  • Time zones: most servers and cloud schedulers run cron in UTC. A job set for 0 9 * * * runs at 9:00 UTC, which is 4:00 or 5:00 in New York depending on daylight saving.
  • Daylight saving: jobs scheduled between 01:00 and 03:00 local time may be skipped or run twice on the nights clocks change.
  • Overlapping runs: if a job can take longer than its interval, add a lock so two copies don't run at once.

Frequently asked questions

What does */5 mean?

Every 5th value starting from the minimum. In the minute field, */5 means minutes 0, 5, 10, ... 55. A range with a step, like 10-30/5, means 10, 15, 20, 25 and 30.

How do I run a job on the last day of the month?

Standard cron has no 'last day' symbol. Some schedulers support L (for example 0 0 L * *); otherwise run daily and check in your script whether tomorrow is the 1st.

Are @daily and @hourly supported?

Yes. Shortcuts like @yearly, @monthly, @weekly, @daily and @hourly are recognized and explained.