Cron Expression Explainer

Translate a cron expression into plain English and preview when it will actually run — entirely in your browser.

Presets

In plain English

Runs at 09:00, on Monday, Tuesday, Wednesday, Thursday and Friday.

FieldValueAllowed rangeMatches
Minute00–591 value
Hour90–231 value
Day of month*1–3131 values
Month*1–1212 values
Day of week1-50–6 (Sunday = 0)5 values

Next 8 runs (your local time)

Calculating…

Cron syntax
  • Five fields, in order: minute, hour, day of month, month, day of week.
  • * means every value, 1-5 a range, 1,3,5 a list, */15 a step, and 0-30/10 a step within a range.
  • Names work too: JANDEC for months and SUNSAT for weekdays.
  • Both 0 and 7 mean Sunday in the day-of-week field.
  • Shorthands are accepted: @hourly, @daily, @weekly, @monthly, @yearly.

Your Data Never Leaves Your Device

Every tool runs entirely in your browser. Nothing you type is uploaded, stored, or logged on our servers.

100% Client-Side

The Cron Expression Explainer turns a five-field cron schedule into a sentence, breaks out each field with its allowed range, and lists the next run times so you can check the schedule before deploying it. Ranges, lists, steps, step-within-range, month and weekday names, and the @daily-style shorthands are all understood.

It also flags the mistake that catches everyone: when day-of-month and day-of-week are both restricted, cron treats them as an OR, so 0 0 1 * 1 fires on the 1st of the month and on every Monday. Run times are computed in your browser's local time zone, which is rarely the server's — worth confirming before you trust a schedule that matters. Parsing and scheduling both happen client-side; nothing is sent anywhere.

FAQ

In order: minute (0–59), hour (0–23), day of month (1–31), month (1–12), and day of week (0–6, Sunday being 0). Each field accepts a value, a range, a list, a step, or * for every value.

* matches every value in the field, so * in the minute field runs every minute. */5 is a step — it runs on every fifth value starting from the lowest, so 0, 5, 10 and so on. You can also step within a range, as in 0-30/10.

Almost always because both day-of-month and day-of-week are restricted. Cron ORs those two fields rather than ANDing them, so "0 0 1 * 1" runs on the 1st of the month AND on every Monday. Leave one of them as * unless you want the union.

Both. Standard cron uses 0, and most implementations also accept 7 for compatibility. This tool normalises 7 to 0 so the description and the run times agree either way.

Your browser's local time zone. Your server almost certainly runs on a different one — usually UTC — so check the server's zone before trusting a schedule that matters, especially around daylight-saving changes.

Yes. @yearly, @annually, @monthly, @weekly, @daily, @midnight and @hourly are expanded to their five-field equivalents before being explained. Vixie cron's @reboot has no schedule, so it is not supported.