How it works
The expression is split into fields and each field is expanded into the exact values it matches. The next runs are found day by day on the wall clock of the time zone you pick, up to eight years ahead, so rare dates like February 29 still show up. In classic Unix cron, when both day-of-month and day-of-week are restricted a run matches either one; Spring and Quartz require both.
*/15 9-17 * * MON-FRI → every 15 minutes, 9 to 5, weekdays
Field guide
- *: every value. */15: every 15 from the start. 5/15: every 15 from 5.
- 9-17: the range 9 through 17. 1,15: only the 1st and 15th.
- Names: MON–SUN and JAN–DEC, in any letter case. Shortcuts: @yearly, @monthly, @weekly, @daily, @hourly.
- L: last day of the month (L-3: three days before). 15W: weekday nearest the 15th. LW: last weekday.
- FRI#2: the second Friday. 5L: the last Friday (Quartz numbering). ?: no specific value.
- 6 or 7 fields: seconds come first; Quartz adds a year at the end and counts weekdays 1 (SUN) to 7 (SAT).
Tips
- “Every Monday at 9” is 0 9 * * MON — the day-of-month stays * so the weekday alone decides.
- 0 0 29 2 * finds the next leap days; years without February 29 are skipped automatically.
- Everything runs in your browser; nothing is uploaded.
Standards and sources
- Cron format follows the POSIX crontab definition and the widely used Vixie/ISC cron behaviour
Last reviewed October 12, 2026
Frequently asked questions
What do the five fields mean?
From left to right: minute (0–59), hour (0–23), day of month (1–31), month (1–12) and day of week (0–6, Sunday first). So 0 9 * * MON means 9:00 every Monday.
What happens when both day fields are restricted?
The job runs when either one matches — for example, 0 9 1 * MON fires on the 1st of the month and on every Monday. This OR rule is the classic cron behaviour.
Why does 0 0 29 2 * skip some years?
February 29 exists only in leap years, so the schedule simply has no match in other years and the next run jumps to the next leap day.
Are the run times in my time zone?
Yes, by default the device clock is used and times are shown in your local zone. Pick another time zone to see when a server running in UTC or New York would fire.