Cron expression parser

Check what a crontab line really does before it runs at 3 a.m. on the wrong day.

Tier 0 · browser · unlimited
17 characters
In plain English
Every 15 minutes, between 09:00 and 17:59, on Monday through Friday.
#1Mon, Oct 19, 2026, 09:00 AM UTC
#2Mon, Oct 19, 2026, 09:15 AM UTC
#3Mon, Oct 19, 2026, 09:30 AM UTC
#4Mon, Oct 19, 2026, 09:45 AM UTC
#5Mon, Oct 19, 2026, 10:00 AM UTC

Reading cron

A cron expression has five fields: minute, hour, day of month, month and day of week. Each field can be * (every value), a list (1,15), a range (9-17) or a step (*/15 = every 15th value). 30 2 * * * runs at 02:30 every day; 0 9 * * 1-5 runs at 09:00 on weekdays. Linux crontab, Kubernetes CronJobs, GitHub Actions schedules and most job schedulers use this format.

A classic trap: when both day of month and day of week are set, cron runs when either matches. 0 0 13 * 5 means "midnight on the 13th, and every Friday", not "Friday the 13th".

Worked example

*/15 9-17 * * 1-5 reads: every 15 minutes, between 09:00 and 17:59, Monday through Friday. That is 36 runs a day, the last at 17:45. Starting from a Saturday, the next run is Monday at 09:00.

Time zones

Cron uses the server's time zone, and GitHub Actions and Kubernetes default to UTC. Switch the zone option to compare UTC with your local time.

How this works

The page splits the expression into its five fields, expands names (JAN, MON) and macros (@daily, @weekly), and turns each field into the set of values it allows, checking ranges (minutes 0–59, hours 0–23, days 1–31, months 1–12, weekdays 0–7 with 0 and 7 both Sunday). It describes the schedule in words, then finds the next runs by stepping forward from now, skipping whole days and hours that cannot match. When both day fields are restricted it uses POSIX "either" logic. Results refresh with your clock when the page opens.

Frequently asked

What does */5 mean?

Every 5th value of that field: */5 in the minute field runs at minutes 0, 5, 10 … 55.

Is Sunday 0 or 7?

Both. Standard cron accepts 0 and 7 for Sunday.

Why did my job run on an unexpected day?

If both day of month and day of week are set, cron runs when either matches.

Can I use seconds or a year field?

Not here. Those six- and seven-field forms are Quartz or Spring extensions, not standard cron.

Sources

Reviewed Oct 17, 2026 · test vectors fixtures/dev/cron-expression-parser/