DEVELOPER · PLAIN ENGLISH · NEXT 5 RUNS

Cron Expression Parser

Paste any standard 5-field cron expression and get what it means in plain English, plus the next five times it will actually fire — the fastest way to sanity-check a schedule before deploying it.

The five fields, in order: minute (0–59) · hour (0–23) · day of month (1–31) · month (1–12) · day of week (0–6, Sunday = 0). Syntax: * any · */15 every 15 · 1-5 range · 1,15 list. 0 9 * * 1-5 = 9:00 AM every weekday.

Infographic: cron decoded — the five fields of '0 9 * * 1-5' labeled minute, hour, day, month, weekday, reading as 9 AM every weekday
Five little fields, one big 3 AM page if you misread them.

The cron gotchas that page people at 3 AM

GotchaDetail
Day-of-month + day-of-week is OR0 0 13 * 5 runs on the 13th AND every Friday — not only Friday the 13th
TimezoneClassic cron uses the server's timezone — a "9 AM" job on a UTC server fires at 2:30 PM IST
0 0 * * * vs * * * * *Once at midnight vs every single minute — a one-character disaster
Sunday is 0 (and often 7)Both usually work, but scripts comparing the value should normalize
%, @reboot, 6-field secondsNon-standard extensions — supported by some crons (Quartz, systemd differ); this parser covers the portable 5-field standard

Frequently asked questions

What does 0 9 * * 1-5 mean?

At 09:00 every Monday through Friday — the classic 'weekday mornings' schedule. Fields read minute (0), hour (9), any day of month (*), any month (*), weekday 1-5 (Mon–Fri). The next-runs list above shows exactly when it fires in your timezone.

Why does my cron with both a day and a weekday run more often than expected?

Standard cron treats day-of-month and day-of-week as OR when both are restricted: 0 0 13 * 5 fires on every 13th AND every Friday. To get 'Friday the 13th only', put one condition in cron and check the other inside your script.

What timezone are the next-run times in?

This tool shows your browser's local time. Real cron daemons use the server's timezone — the most common cron surprise for Indian teams on UTC servers, where a 9 AM job means 2:30 PM IST. Set the TZ variable or convert deliberately.

How do I run something every 30 seconds with cron?

Standard cron's smallest unit is one minute. Common workaround: two entries — the job, plus the same job with sleep 30 prefixed. For genuinely sub-minute scheduling, use systemd timers or your language's scheduler instead.

Related free tools

DEVELOPER

Timestamp Converter

Decode the epoch times in your job logs.

DEVELOPER

Regex Tester

Pattern-match those log lines.