Explain a cron expression in plain English and see exactly when it will next run.
minute · hour · day of month · month · day of week — or a shortcut such as @daily
At minute 0, hour 9, on day of week Monday, Tuesday, Wednesday, Thursday and Friday.
Field by field
0minute 09hour 9*every day of month*every month1-5day of week Monday, Tuesday, Wednesday, Thursday and FridayNext 6 runs
Working them out…
Every weekday at 9am
A range in the day-of-week field
0 9 * * 1-5Every 15 minutes
A step value
*/15 * * * *The OR trap
The 1st of the month and every Monday
0 0 1 * 1Every weekday at 9am
A range in the day-of-week field
0 9 * * 1-5Every 15 minutes
A step value
*/15 * * * *The OR trap
The 1st of the month and every Monday
0 0 1 * 1Five fields, or a shortcut such as @daily.
Each field is explained separately, then the whole schedule as a sentence.
The actual dates and times confirm the schedule does what you meant.
Every field is expanded to the exact set of values it matches, which is what makes the next-run times and the description trustworthy rather than approximate.
Restricting both day of month and day of week makes cron fire on either, so the job runs far more often than most people expect. This is called out explicitly.
An out-of-range value names the valid range. A backwards range says so. Quartz syntax is identified as a different dialect rather than quietly ignored.
Paste a cron expression and get a field-by-field breakdown, a plain-English description and the next scheduled run times. This is a real parser for the standard five-field dialect — minute, hour, day of month, month, day of week — with full support for wildcards, lists, ranges, step values and month and day names. It also handles the rule that catches almost everyone out: when both day fields are restricted, cron fires when either one matches, not both. Invalid expressions get a specific explanation rather than a generic error, and Quartz-only syntax is named as such instead of being silently misread.
Keep going
Related pages in Developer Tools, plus what others are using right now.
More developer tools that pair well with this one.
Convert Unix timestamps to dates and back, in seconds or milliseconds.
Turn CSV into JSON, with quoted fields and embedded commas handled properly.
Format, validate and minify JSON, with errors that point to the exact line.
Generate version 4 and version 7 UUIDs in bulk, using secure randomness.
Turn JSON into readable YAML, with quoting and multiline strings handled properly.
Turn a JSON array of objects into CSV, with correct escaping.
Create strong random passwords with full control over length and characters.
Work out any percentage — of a number, as a share, or as a change.
Count words, characters, sentences and paragraphs as you type.
Convert between length, weight, temperature, volume, speed, data and more.
Count characters with and without spaces, against the limits that matter.
Find the mean, median, mode and range of a list of numbers, with the working shown.
Sample and population standard deviation and variance, both shown, with the working.
Turn a logo into favicon.ico, the PNG sizes a site needs, and the HTML to declare them.
Check a downloaded file against its published checksum, without uploading anything.
Stamp text like DRAFT or CONFIDENTIAL across a PDF, in your browser.
See how savings grow with compounding, including regular contributions.
Shrink JPEG, PNG and WebP files with a quality slider and a live size comparison.