Skip to content

Cron Expression Parser

Paste a crontab schedule and see what it means in plain English, together with the next five times it will run in your local time zone. Supports lists, ranges, steps, month and weekday names, and shortcuts such as @daily. Validation errors point at the exact field that is wrong. Runs in your browser.

Runs in your browserFreeNo sign-up

Processed on your device. Files and text stay in your browser and are not uploaded to our servers. How privacy works

How to use the cron expression parser

  1. Type a five-field cron expression, for example 0 9 * * MON-FRI, or click a preset.
  2. Read the English description and check the five field cards, which show what each part allows.
  3. Review the next five run times, shown in your time zone with a relative countdown, to confirm the schedule does what you expect.
  4. Fix any highlighted field using the error message, then copy the description or run times into your ticket or documentation.

Features

  • Standard 5-field crontab syntax with * , - / and names like JAN or FRI
  • @hourly, @daily, @midnight, @weekly, @monthly and @yearly shortcuts
  • Human-readable description, for example 'At 09:00, on Monday through Friday'
  • Next 5 run times computed in your local time zone, skipping daylight-saving gaps like real cron
  • Errors that name the field and the valid range, plus detection of Quartz-only syntax
  • Implements cron's day-of-month / day-of-week OR rule correctly

Reading the five fields

From left to right: 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). * means every value, 1,15 is a list, 9-17 is a range and */15 means every 15th value starting from the minimum. Combine them freely: 0 9-17/2 * * 1-5 runs at 9, 11, 13, 15 and 17 on weekdays.

The day-of-month and day-of-week rule

When both day fields are restricted, such as 0 0 1 * MON, classic Vixie cron runs the job when either matches: on the 1st and on every Monday. If one of the fields starts with * (for example */2), both must match instead. This catches many people out, so the tool states which rule applies and the next-run list reflects it.

Time zones and daylight saving

Cron daemons use the server's time zone, which on cloud machines is usually UTC. This page computes run times in your browser's time zone, so a job scheduled at 0 9 on a UTC server will not fire at 9 am local time unless you live in UTC. When clocks spring forward, times that don't exist locally (such as 02:30 on that night) are skipped, matching cron's behaviour.

Six fields, L, W and #

Quartz (Java), Spring and some cloud schedulers use six or seven fields with seconds and support L (last), W (nearest weekday) and # (nth weekday). Those are not part of the standard crontab format and are flagged as errors here. AWS EventBridge and Kubernetes CronJobs use the standard five fields.

Frequently asked questions

Why does 30 2 29 2 * only show runs years apart?

The 29th of February exists only in leap years, so the schedule fires once every four years. The tool searches up to 50 years ahead and warns if a schedule can never fire, such as 31 February.

What does */15 mean?

Every 15th value starting from the field's minimum: in the minute field that is 0, 15, 30 and 45. A step after a range, such as 10-50/20, starts at the range's first value instead.

Are the next run times shown in UTC?

No, they use your browser's time zone, which is displayed above the list. Convert to the server's zone if it differs.

Can I use seconds or the L and # symbols?

Not in standard cron. Six-field expressions and Quartz-specific symbols are reported as errors with an explanation, since they would not work in a crontab.

Other tools people use alongside Cron Expression Parser.

You might also like

Something useful from another corner of VoltKit.