Cron Expression Explainer
Type a cron expression to see what it means, when it next fires, and how it spreads across the week. Supports the standard 5-field syntax and the Quartz-style 6-field dialect.
Expression
Advanced
Schedule output
Plain English
Next runs
Weekly density
Each cell shows whether the schedule fires within that hour of that weekday. Day-of-month rules are not reflected here; use the next-runs list above for exact days.
Field inspector
How it works
Cron expressions split a schedule into fields: minute, hour, day of month, month, day of week (and optionally seconds in Quartz). Each field accepts *, single values, comma lists, ranges (1-5), and steps (*/15, 1-30/2). Names like mon or jan are accepted in the appropriate fields.
Day-of-month vs day-of-week
If both day-of-month and day-of-week are restricted, standard cron treats them as or: the schedule fires when either matches. Many newcomers expect and, which is one of the oldest cron footguns.
Timezones
Cron schedules are wall-clock times in a chosen timezone. Pick the timezone the scheduler will run in. The next-runs list takes daylight saving into account by walking the schedule one minute at a time and resolving each candidate against the timezone you picked.
Edge cases and notes
- Quartz dialects sometimes accept
L,W, and?tokens — those are not in this version. - Impossible schedules (for example
0 0 30 2 *, asking for February 30) will return no future runs. - Both
0and7in the day-of-week field mean Sunday.
FAQ
Why is my 0 0 1 * 1 firing more often than I expect?
* if that is not what you want.Does this support @hourly / @daily shorthands?
@hourly = 0 * * * *, @daily = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *.