cronkit.org
Cron expressions, explained and converted — in your browser

Cron tools › Explain / Test

Cron expression parser

plain English · field breakdown · next runs in any time zone

Type or paste a cron expression. The parser explains it in a sentence, shows what each field means, and lists the next times it fires in the time zone you pick — with daylight-saving gaps flagged instead of silently skipped.

Runs

Try one

How to use the cron parser

  1. Type or paste an expression into the box. It is read as you type; there is no Run button.
  2. Check the Dialect. Unix cron is the default. Paste an AWS cron(…), a six-field Quartz or Spring expression or a Jenkins H spec and the dialect switches to match.
  3. Pick the Time zone the scheduler runs in. The run list shows that zone's wall-clock time and the same moment in UTC.
  4. Read the sentence at the top, then the per-field breakdown underneath it. Warnings about things that are legal but probably wrong — * 9 * * * running sixty times, an uneven */7 — appear under the fields.
  5. Use Copy link to share the exact expression, dialect and zone; the link opens this page with them filled in.

What the five fields mean

FieldAllowed valuesExampleMeans
Minute0-59*/15every 15 minutes (0, 15, 30, 45)
Hour0-239-17from 09:00 through 17:59
Day of month1-311,15the 1st and the 15th
Month1-12 or JAN-DEC*/3January, April, July, October
Day of week0-7 or SUN-SAT1-5Monday to Friday (0 and 7 are both Sunday)

Quartz and Spring put a seconds field in front, Quartz allows a trailing year, and AWS EventBridge requires the year. The cron cheat sheet lays the dialects side by side.

The rule that surprises everyone: day-of-month OR day-of-week

In Linux cron, when both day fields are restricted the job runs when either matches. 0 0 1 * 1 runs on the 1st of every month and on every Monday, not only on Mondays that fall on the 1st. The exception is a field that starts with *: 0 0 */2 * 1 is read as "odd-numbered days that are also Mondays". Kubernetes counts only a bare * as unrestricted, so the same string means something else there, and Jenkins, Spring and Azure always require both. The parser applies the rule of the dialect you select and says which one it used.

FAQ

Why does my run list show a "DST gap" flag?

The wall-clock time does not exist on that date because the clocks jumped forward. Vixie cron and cronie run a fixed-time job straight after the jump, which is where the parser puts it; other schedulers skip that run or shift it by an hour. A job with * in its minute or hour field simply has no runs in the missing hour.

What time zone does cron use?

The system time zone of the machine running the cron daemon, unless the crontab sets CRON_TZ (cronie). Hosted schedulers differ: GitHub Actions and AWS EventBridge rules use UTC, Kubernetes uses the controller's zone unless .spec.timeZone is set.

Is 0 or 7 Sunday?

Both, in Linux cron, Spring, node-cron and Jenkins. Kubernetes, Azure and Celery accept only 0. Quartz, AWS and Cloudflare number the week from 1 = Sunday to 7 = Saturday, so a 1-5 copied from Linux means Sunday–Thursday there.

Is anything I type sent to a server?

No. Parsing and the run calculation happen in this page's JavaScript. The expression lives only in the address bar (after the #, which browsers never send) so that a copied link reopens it.