Cron Expression Parser schedule
Interpret a five-field cron expression, explain each field, and preview upcoming run times.
What this tool does
A cron expression describes when a recurring job runs using five space-separated fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday).
Each field accepts a few operators. An asterisk means every value, */5 means every fifth value starting at zero, 1-5 defines a range, and 1,15 lists specific values. These combinations cover most schedules, but working out the actual run times in your head is not easy.
This tool breaks an expression into its fields, explains what each one matches, and computes the next run times in order so you can confirm the schedule before deploying it.
When to use it
Use it to verify a newly written batch schedule, to work out when an existing crontab entry actually fires, to translate a requirement such as every weekday at 9am into an expression, or to investigate why a job runs at an unexpected time.
Input and output examples
*/5 * * * *
Every five minutes (00:00, 00:05, 00:10 ...)
The most common form; */5 in the minute field creates the interval.
0 3 * * *
Every day at 03:00
Minute 0 and hour 3 with wildcards elsewhere means daily regardless of date.
0 9 * * 1-5
Monday to Friday at 09:00
A range in the day-of-week field restricts the job to weekdays.
Notes and limitations
When both day of month and day of week are specified, standard cron treats them as an OR condition, so an expression naming the first of the month and Monday runs on the first and on every Monday. Actual run times follow the server time zone, so a server running in UTC interprets the hour field as UTC. Some implementations, including Spring and Quartz, add a seconds field and use six fields, so check the rules of the target system.
Frequently asked questions
Does the week start at 0?
In standard cron 0 is Sunday and 6 is Saturday. Some implementations also accept 7 for Sunday.
What happens if I set both day of month and day of week?
The job runs when either matches, not both. Requiring both means adding a check inside the script.
The job does not run when I expect.
Check the server time zone first. Overlapping runs from a previous execution and missing environment variables in the cron context are also common causes.