Cron Expression Parser

Developer PopularLocal only

Type a cron expression to see it in plain English, plus the next times it will actually fire.

*/15

Minute

0-59

9-17

Hour

0-23

*

Day of month

1-31

*

Month

1-12

1-5

Day of week

0-6

In plain English

At hour 9 values (9 … 17), minute 0, 15, 30, 45, on 5 values (Monday … Friday).

Next 8 runs (your local time)
Mon, Oct 19, 2026, 09:00 AMnext
Mon, Oct 19, 2026, 09:15 AM+15 min
Mon, Oct 19, 2026, 09:30 AM+30 min
Mon, Oct 19, 2026, 09:45 AM+45 min
Mon, Oct 19, 2026, 10:00 AM+60 min
Mon, Oct 19, 2026, 10:15 AM+75 min
Mon, Oct 19, 2026, 10:30 AM+90 min
Mon, Oct 19, 2026, 10:45 AM+105 min
Common schedules
When to use this
  • Double-checking a backup schedule before committing it to a crontab
  • Understanding an inherited cron line in a legacy deployment script
  • Writing a GitHub Actions or Kubernetes CronJob schedule correctly the first time
  • Explaining to a teammate exactly when a scheduled job will run

Free and private. Everything runs on your own device, with no account and no uploads.

Cron syntax is five terse fields, and a single misplaced asterisk is the difference between a job running nightly and a job running every minute of every night. This tool translates any cron expression into plain English and, more usefully, lists the next times it will actually fire in your local timezone, so you can confirm the schedule before it goes anywhere near a production crontab or a CI pipeline. Common schedules are one click away, and everything is computed locally in your browser.

Standard five-field crontab syntax: minute, hour, day of month, month and day of week. Ranges, lists, steps and month or weekday names such as MON and JAN are all supported.

Your browser's local timezone. A real cron daemon fires in the server's timezone, so if your server runs UTC, remember to account for the offset.

Classic crontab rules say that when both day fields are restricted, the job runs when either one matches, not both. This tool follows that same rule, which is why 0 0 13 * 5 fires on the 13th and on every Friday.

No. Six-field syntax with a leading seconds column is a Quartz and Spring extension rather than standard crontab, so this parser expects exactly five fields and tells you when it gets a different count.

Those macros are not parsed directly, but the preset list contains the exact equivalents: @daily is 0 0 * * * and @hourly is 0 * * * *.

How it works
  1. 1

    Type or paste an expression

    Enter a standard five-field cron expression such as 0 9 * * 1-5.

  2. 2

    Read the plain-English summary

    The tool describes exactly what the expression means.

  3. 3

    Check the next runs

    Scan the list of upcoming fire times to confirm the schedule matches your intent.

  4. 4

    Start from a preset

    Click any common schedule to load it, then adjust the fields you need.

Pro tips
  • ·A step like */5 in the minute field means every five minutes of every hour, not five minutes after the hour: the next-runs list makes the difference obvious.
  • ·If a job must run once a day, pin the minute field to a specific number; leaving it as * makes it run sixty times.
  • ·Compare the gap between the first two runs in the list: it is the fastest way to catch an expression that fires far more often than you intended.