Back to All Tools

Cron Expression Explainer

Translate cron expressions to plain English, and preview the next five runs.

Runs entirely in your browser — nothing is uploaded
*/5
minute
*
hour
*
day-of-month
*
month
*
day-of-week

About the Cron Expression Explainer

A cron expression like `*/5 * * * *` packs a whole schedule into five terse fields, and it is easy to misread one and have a job fire at the wrong time. This tool takes a standard five-field crontab line, tells you in plain English what it means, then shows the next five times it would fire. You type the expression once and read back both the description and the concrete run times.

As you type, the tool splits your expression on spaces and, when it sees exactly five fields, labels each under a column: minute, hour, day-of-month, month, and day-of-week. It passes the trimmed string to cronstrue for the English sentence (in 24-hour time) and to cron-parser to compute the next five fire times, printed in your browser's local time. If either library rejects the expression, you get the parser's error message instead of a wrong answer.

It parses the cron expression in the page itself, so there is no account to create and nothing to install. The cron libraries load client-side and every calculation happens on your machine, so the expression you test is never sent anywhere. Seven preset buttons cover common schedules if you want a known-good starting point to edit. There is nothing to install and no crontab file to touch while you check your syntax.

How to use the Cron Expression Explainer

  1. 1Type or paste a five-field cron expression into the Cron expression box.
  2. 2Or click a preset button such as Every 5 minutes or Weekdays 09:00 to load a working expression.
  3. 3Read the five labeled columns to confirm which field is minute, hour, day-of-month, month, and day-of-week.
  4. 4Check the Plain English panel to confirm the schedule matches what you intended.
  5. 5Scan the Next 5 runs list for the upcoming fire times in your local time.
  6. 6Edit any field and watch the description and run times update as you type.

What you can use it for

Verify a deploy job

Before committing a scheduled backup or cleanup job, paste its cron line and read the next five runs. You confirm `0 3 * * *` really means 03:00, not 3pm, and that the gap between runs is a day, not an hour.

Decode inherited crontab

You open a server crontab full of lines like `*/15 6-22 * * 1-5` with no comments. Paste each one to get a sentence and real timestamps, so you know what a job does before you touch or disable it.

Catch an off-by timing bug

A job you expected hourly is running every minute. Paste the expression and the next-runs list makes the mistake obvious: five timestamps one minute apart instead of an hour apart, pointing at a wrong first field.

How the five fields work

A standard cron line has five fields in a fixed order: minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), and day-of-week (0-7, where 0 and 7 both mean Sunday). Each field accepts a single value, a list like `1,15`, a range like `1-5`, a wildcard `*`, or a step like `*/5`. The tool labels these positions so you see which number controls what.

One rule surprises people: when both day-of-month and day-of-week are restricted (neither is `*`), most cron implementations treat them as OR, not AND. So `0 0 13 * 5` fires on the 13th AND on every Friday, not only on Friday the 13th. Previewing the next run times catches this: the timestamps confirm what the schedule really does.

Frequently asked questions

Does my cron expression get sent to a server?

No. The cronstrue and cron-parser libraries load in your browser and all parsing runs on your machine. The expression you type is never uploaded, so you can safely test lines from private or production crontabs.

What time zone are the next runs shown in?

The next five run times use your browser's local time. There is no time zone selector, so if your server runs cron in UTC or another zone, the actual fire times there will differ from what you see here by that offset.

How many fields does it expect?

The five-column breakdown appears only when your expression has exactly five space-separated fields: minute, hour, day-of-month, month, day-of-week. Enter a different number of fields and the labeled columns hide, though the parser may still produce a description and run times for some formats.

Why does it show an error instead of a schedule?

When cronstrue or cron-parser cannot understand the expression, the tool shows that library's error message and clears the run list. A malformed field returns an error rather than a guessed schedule, so you fix the syntax instead of trusting a wrong result.

Can I edit a preset?

Yes. Clicking a preset loads its expression into the input box, and from there you can change any field. The description and next runs recompute as you type, so presets are starting points you tweak.

Why is the time shown in 24-hour format?

The plain-English description uses 24-hour time, so 3pm reads as 15:00. This avoids am/pm ambiguity and matches how cron and most server logs express times.