Cron Expression Parser — Plain-English Schedule and Next Run Times

Paste a cron expression to see what it means in plain English, a field-by-field breakdown, and the exact times it will run next in the time zone you choose.

Live demo · real result from this tool
5 fields (minute hour day month weekday), 6 with seconds first, or a macro such as @daily.

Your result appears here.

Processed on your device — nothing is uploaded.

How to use the cron parser

  1. Paste your expression into Cron expression, for example */15 9-17 * * 1-5.
  2. Choose the Time zone your scheduler runs in.
  3. Set Runs to show (up to 50).
  4. Optionally change Starting from to see runs after a particular date.
  5. Read the plain-English Schedule, check the field table, and scan the list of next runs.

What it does and when to use it

Cron syntax is short, and that makes it easy to misread. A single wrong character can turn a nightly job into one that runs every minute, and you will not know until it does. The fastest check is to read the expression back in plain English and look at the actual dates it will fire.

Use the parser to:

  • Check a schedule before you add it to a crontab, a CI pipeline or a cloud scheduler.
  • Work out what an old cron line in someone else’s config actually does.
  • See how a job’s local time maps to UTC, especially around midnight.
  • Count how many times a job will run in the next 24 hours.

If you would rather build an expression by picking options, use the Cron Generator. To convert a single run time into a timestamp, try the Unix Timestamp converter. For other developer checks, see the Regex Tester.

How it works

The tool uses two open-source libraries, loaded on demand in your browser:

  • cron-parser works out the next run times. It understands 5-field and 6-field expressions, time zones, L, # and macros.
  • cronstrue turns the expression into a plain-English sentence.

Each field is checked against its allowed range, and an invalid value is reported with the reason. The field table shows the value, what it means and the allowed range. When both day fields are restricted, the tool warns about cron’s OR rule. Nothing is sent to a server.

Worked examples

Weekdays at 9 am. 0 9 * * 1-5 reads as At 09:00, Monday through Friday. Starting from Friday 2 October 2026 in UTC, the next runs are 2026-10-02 09:00, then 2026-10-05 09:00:00 and 2026-10-06 09:00. The weekend is skipped.

The day-of-week trap. 0 0 1 * 1 looks like “midnight on the first of the month, if it is a Monday”. In fact it runs on the 1st and on every Monday. The tool warns that the job runs when EITHER matches. From 2 October 2026, the next three runs are the Mondays 5, 12 and 19 October.

A local time in another zone. 30 2 * * * in Asia/Kolkata runs at 02:30 India time, which is 2026-10-01T21:00:00Z, the evening before in UTC.

A typo. 61 * * * * is rejected as an Invalid cron expression, because minutes only go up to 59.

Limits and tips

  • Different cron systems differ in small ways, for example in support for seconds, L or #. Check your scheduler’s documentation.
  • Cron starts a command at a time. It does not check that the last run finished or retry a failure, so slow jobs can overlap.
  • Jobs scheduled in an hour skipped or repeated by daylight saving may run zero or two times on those days.

Frequently asked questions

What do the five cron fields mean?
In order, they are minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC) and day of week (0–7 or SUN–SAT, where both 0 and 7 mean Sunday). A sixth field at the front, if present, is seconds.
Why did my job run on a day I did not expect?
When both day of month and day of week are set to something other than *, cron runs on days that match EITHER one. So "0 0 1 * 1" runs on the 1st of every month and on every Monday. The tool shows a warning when this happens. Set the field you do not need to *.
What is the difference between * and 0 in the minute field?
* means every minute, so "* * * * *" runs 1,440 times a day. 0 means at minute zero only, so "0 * * * *" runs once an hour. Mixing these up is one of the most common cron mistakes.
What time zone does cron use?
It depends on where the job runs. Classic cron on a server uses that machine's local time, while many hosted schedulers use UTC. Choose the zone your scheduler uses in the Time zone box, and the next-run table shows both that local time and UTC.
Which special characters are supported?
Lists (1,15), ranges (9-17), steps (*/15), names (MON, JAN), L for the last day, # for "the nth weekday of the month" (for example 1#2 for the second Monday), and macros such as @hourly, @daily, @weekly, @monthly and @yearly.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close