DevTools Hub

Cron Expression Parser

Inspect cron schedules in readable form.

Runs locally
Cron expression

Fields: minute hour day-of-month month day-of-week. Supports *, ranges (1-5), lists (1,3,5), steps (*/15), and shorthands like @daily.

OutputSchedule
Valid
The schedule will appear here.
Status
Waiting for input.

How it works

A cron expression has five fields in order: minute, hour, day of month, month, and day of week. Each accepts a value, a list such as 1,15, a range such as 1-5, a step such as */15, or the wildcard *, and the parser reports which field is at fault when one of them is out of range.

Alongside the description you get the next five run times, computed from the current moment and shown in your own time zone. Reading those dates is the quickest way to catch an expression that is valid but does not mean what you intended.

The shorthands @hourly, @daily, @midnight, @weekly, @monthly, @yearly, and @annually are expanded before parsing. When both the day-of-month and the day-of-week fields are restricted, cron treats them as an OR, and the preview reflects that.

Frequently asked questions

What do the five fields in a cron expression mean?
In order: minute 0-59, hour 0-23, day of month 1-31, month 1-12, and day of week 0-7 where both 0 and 7 are Sunday. So 30 9 * * 1-5 is half past nine on weekdays.
What does */15 mean in cron?
A step. In the minute field it means every fifteenth minute from the start of the hour, so at :00, :15, :30, and :45. The same syntax works in any field.
Why does my job run more often than expected?
Probably because both the day-of-month and the day-of-week fields are set. Cron joins them with OR, so 0 0 1 * 1 fires on the first of the month and on every Monday, not only on a Monday the first.
Does it support seconds or special characters like L and W?
No. It parses the standard five-field syntax used by Unix cron. The six-field form with seconds, and Quartz extensions such as L, W, and #, are not supported.
In which time zone are the next run times shown?
In your browser's local time zone. A server usually runs cron in UTC or in its own configured zone, so shift the times accordingly when the two differ.