Dev Utilities

Explain cron expressions in plain English

Cron expression parser turns a 5- or 6-field schedule into a one-line English description plus the next five run times, all in your browser. Developers paste crontab lines into it before deploying to confirm the intended cadence: */15 9-17 * * 1-5 reads "Every 15 minutes, between 09:00 and 17:59, Monday to Friday". Fields follow standard cron order with an optional leading seconds field, names like MON and JAN work, and 7 means Sunday.

How to use Cron Parser

  1. Open Cron Parser in the Toolbox101 app.
  2. Type a cron expression into the Cron expression box: five fields (minute, hour, day of month, month, day of week) or six with a leading seconds field, for example */15 9-17 * * 1-5.
  3. Read the plain-English description at the top of the Output box. The example reads "Every 15 minutes, between 09:00 and 17:59, Monday to Friday".
  4. Check the Next 5 occurrences list below it: local timestamps in YYYY-MM-DDTHH:MM:SS form, starting with the first matching moment after now.
  5. Click Copy to take both parts, or edit the expression and watch the output update.

Worked example

Cron Parser returns the output below for this input.

Input

*/15 9-17 * * 1-5

Output

Every 15 minutes, between 09:00 and 17:59, Monday to Friday

Next 5 occurrences:
2026-01-15T10:15:00
2026-01-15T10:30:00
2026-01-15T10:45:00
2026-01-15T11:00:00
2026-01-15T11:15:00

The run times count from the moment you open the tool. This example was run at 10:07 UTC on Thursday 15 January 2026, so yours will start later.

Check it yourself: open Cron Parser and enter the same input.

Frequently asked questions

What do the fields in a cron expression mean?

A standard cron expression has five fields: minute, hour, day of month, month, and day of week, with ranges 0-59, 0-23, 1-31, 1-12, and 0-7 where 7 means Sunday. The parser also accepts a sixth, leading seconds field. Month and day names work too (JAN-DEC and SUN-SAT), so 0 9 * * MON is valid.

Are the next run times shown in my timezone?

Yes. Occurrences are computed against your device's clock and printed in local time as YYYY-MM-DDTHH:MM:SS with no timezone suffix. Because the list always starts from the current minute, the dates shift as time passes. Run the same expression again later and you will see later instants.

Does the parser support L, W, #, or a year field?

No. Calendar extensions such as L (last day), W (nearest weekday), and # (nth weekday), plus the ? wildcard, are rejected with an error naming the field and token. Only five or six fields are accepted. When both day-of-month and day-of-week are restricted, an instant must match both fields: cron-parser semantics rather than Vixie cron's run-when-either rule.

Why does 0 0 30 2 * report no occurrence found?

February 30 never exists, so the search for the next five occurrences finds no matching instant within a year of candidate minutes and reports "no occurrence found". The expression itself is well formed (every field validates) but it describes no real date, so there is nothing to list.

Use Cron Parser now

Runs in your browser. Nothing you type is uploaded.