Cron Expression Reader in Plain English
Paste a five-field cron expression, read the schedule in plain English, and check the next 5 run times.
Written by Anil Gautam · Updated
How do you read a five-field cron expression?
The fields are, in order, minute (0 to 59), hour (0 to 23), day of month (1 to 31), month (1 to 12) and day of week (0 to 6, with 0 as Sunday; 7 is also read as Sunday). Each field takes a number, a star for every value, a range such as 1-5, a comma list such as 1,15 or a step such as */10. Month and weekday fields also accept three-letter English names in any letter case, so MON-FRI and jan,jul both work.
Type */15 9-17 * * 1-5 and the description reads "Runs at minutes 0, 15, 30, 45, of hours 9, 10, 11, 12, 13, 14, 15, 16, 17, on Mon, Tue, Wed, Thu, Fri." That adds up to 36 runs per weekday, and the last one is at 17:45 because the range covers the whole of hour 17. To finish at 17:00, use two lines: */15 9-16 * * 1-5 and 0 17 * * 1-5. A step can also start from an offset, so 5/15 in the minute field means minutes 5, 20, 35 and 50.
Why do the next run times differ from my server?
Upcoming runs are calculated in your browser's time zone and printed in its local date format. Many servers keep cron on UTC, so the same line fires at a different local hour. On a computer set to India Standard Time, 30 2 * * * is listed at 2:30 AM, while a UTC server runs it at 02:30 UTC, which is 8:00 AM in India. For a 9:00 AM IST job on a UTC server, subtract 5 hours 30 minutes and write 30 3 * * *. The Time Zone Converter helps with other offsets.
The preview searches one year ahead. A schedule that fires less often shows fewer than five runs, or none: 0 0 29 2 *, midnight on 29 February, lists nothing until a leap day is less than a year away.
Which cron syntax does the reader handle differently?
When both day of month and day of week are restricted, the reader follows standard Unix cron and runs on any day that matches either field, so 0 0 1 * 1 runs on every 1st and on every Monday. If either field starts with a star, as in */2, both must match, which is how Vixie cron and cronie treat that case.
Weekday ranges can end in 7, which also means Sunday: 5-7 covers Friday, Saturday and Sunday, and 1-7 covers the whole week.
Quartz and Spring tokens fall outside the five-field format. A ? is rejected with "Bad token ?", but 1#2 (second Monday) and 5L (last Friday) are cut down to their leading number, so the description says every Monday or every Friday. Check the weekday list before trusting a schedule copied from a Quartz config.