Formula
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)* any a,b list a-b range */n every n a-b/n range with step
- Sunday is 0 or 7
- When both day fields are restricted, the job runs if either matches
Five fields say when a job runs; a star means every value.
Worked examples
Weekdays at 09:30, from 1 January 2026
- Cron expression (5 fields)
- 30 9 * * 1-5
- Show runs from (UTC)
- 2026-01-01
In plain English
At 09:30, on Monday through Friday
Expression: 30 9 * * 1-5
First run on or after 2026-01-01: 2026-01-01 09:30 UTC
Runs shown: 10
1. 2026-01-01 09:30 Thu 2. 2026-01-02 09:30 Fri 3. 2026-01-05 09:30 Mon 4. 2026-01-06 09:30 Tue 5. 2026-01-07 09:30 Wed 6. 2026-01-08 09:30 Thu 7. 2026-01-09 09:30 Fri 8. 2026-01-12 09:30 Mon 9. 2026-01-13 09:30 Tue 10. 2026-01-14 09:30 Wed
Every 15 minutes
- Cron expression (5 fields)
- */15 * * * *
- Show runs from (UTC)
- 2026-01-01
In plain English
Every 15 minutes, every day
Expression: */15 * * * *
First run on or after 2026-01-01: 2026-01-01 00:00 UTC
Runs shown: 10
1. 2026-01-01 00:00 Thu 2. 2026-01-01 00:15 Thu 3. 2026-01-01 00:30 Thu 4. 2026-01-01 00:45 Thu 5. 2026-01-01 01:00 Thu 6. 2026-01-01 01:15 Thu 7. 2026-01-01 01:30 Thu 8. 2026-01-01 01:45 Thu 9. 2026-01-01 02:00 Thu 10. 2026-01-01 02:15 Thu
How it works
A cron expression has five space-separated fields: minute, hour, day of month, month and day of week. A star means every value, a comma separates a list (1,15), a dash gives a range (1-5), and /n means every n-th value (*/15 is every 15 minutes). So 30 9 * * 1-5 means 09:30 on Monday through Friday. Month and weekday names such as JAN and MON are accepted, and Sunday is 0 or 7.
The explainer shows a plain-English description, how each field was understood, and the next ten run times in UTC. It applies the rule that surprises many people: when both day-of-month and day-of-week are restricted, the job runs when either one matches, not both. It also rejects things standard cron does not support, such as six-field expressions with seconds, or the Quartz symbols ?, L, W and #, with a message saying why.
Run times are in UTC, and your scheduler may use another time zone, so daylight-saving changes can skip or repeat local times. To convert a run time to a Unix timestamp use the Unix Timestamp Converter, to see the same moment in another time zone try the Time Zone Converter, and to test a text pattern use the Regex Tester.
Assumptions and limits
- Standard 5-field cron as used by Vixie cron and most Linux systems.
- Run times are calculated in UTC.
- Seconds, years and the Quartz symbols ?, L, W and # are not supported.