Skip to content
CronExplain

Cron Expression Explainer & Generator

Paste any cron expression to get a plain-language explanation, the next 10 run times in any time zone, and the same schedule converted to Quartz, AWS and Spring syntax. Everything is computed in your browser.

What it means

Detected: Standard crontab · Five fields: minute, hour, day of month, month, day of week. Sunday is 0 or 7. If both day fields are restricted, the job runs when either one matches.

✓ Valid · What it means

Every 15 minutes, between 09:00 AM and 05:59 PM, Monday through Friday

Presets

Next 10 runs

#In UTCYour local time
1——
2——
3——
4——
5——
6——
7——
8——
9——
10——

Same schedule in other dialects

  • Quartz0 */15 9-17 ? * MON-FRI
  • AWS EventBridgecron(*/15 9-17 ? * MON-FRI *)EventBridge rules use UTC.
  • Spring0 */15 9-17 * * MON-FRI

Visual builder

Pick values per field. The builder writes a standard five-field expression; it is converted to the selected dialect when you use it.

Minute
Hour
Day of month
Month
Day of week
0 9 * * 1-5

How to read a cron expression

A classic Unix cron expression has five fields separated by spaces: minute (0–59), hour (0–23), day of month (1–31), month (1–12) and day of week (0–6, where 0 and 7 are Sunday). A job runs whenever the current time matches every field. An asterisk means “any value”, so * * * * * runs every minute.

Inside a field you can combine values: a comma makes a list (1,15), a hyphen makes a range (9-17), and a slash adds a step (*/10 means every 10 units). Month and weekday names such as JAN or MON are accepted by most implementations.

Why the dialect matters

Not every scheduler speaks the same cron. Quartz and Spring add a seconds field at the front, AWS EventBridge adds a year field at the end, and Quartz and AWS number weekdays from 1 = Sunday instead of 0. Quartz and AWS also require a question mark in either the day-of-month or the day-of-week field. CronExplain detects the dialect from the shape of the expression, and you can override it at any time.

Next run times and time zones

The run list is evaluated on wall-clock time in the time zone you choose, then shown next to your own local time. Daylight saving time is handled the way most schedulers do it: a time that is skipped when clocks spring forward does not run that day, and a time that repeats when clocks fall back runs once. GitHub Actions and AWS EventBridge rules always use UTC, so the tool switches to UTC for those dialects.

Build an expression visually

If you would rather click than type, use the visual builder: choose “every”, “every N” or specific values for each field and copy the result. Presets cover the most common schedules, from every five minutes to the first day of the month, and every result can be shared with a link that keeps the expression in the URL.

Frequently asked questions

What does */5 * * * * mean?
It runs every five minutes: at minute 0, 5, 10 and so on, of every hour, every day. The */5 step starts at the lowest value of the field (0) and adds 5 each time.
Is Sunday 0 or 7 in cron?
In standard crontab, Kubernetes, GitHub Actions and Spring both 0 and 7 mean Sunday. In Quartz and AWS EventBridge the week runs from 1 = Sunday to 7 = Saturday, so 0 is invalid.
What happens if I set both day of month and day of week?
Standard cron runs the job when either field matches, so 0 0 13 * 5 runs on the 13th and on every Friday. Quartz and AWS don’t allow both, which is why one of them must be “?”.
Which time zone does cron use?
Crontab uses the server’s local time zone, Kubernetes uses the controller’s zone unless spec.timeZone is set, and GitHub Actions and EventBridge rules use UTC. Pick the zone in the tool to see exact run times.
Is my expression sent to a server?
No. Parsing, descriptions and next-run calculations all happen in your browser. Nothing you type leaves your device.