⏰ Cron Expression Explainer

Five fields · plain English · next ten runs — including the day-field OR trap

Advertisement

Five small fields decide when a scheduled job runs, and a mistake in one of them can mean silence for a month. Paste an expression to get it in plain English, every field checked against its real range, and the next ten runs on your own clock. The explanation is computed on your device — nothing about your schedule is sent anywhere.

Loading the explanation…

Next ten runs, on this device’s clock

Times are shown in your browser’s time zone. A server in another zone will run the same expression at a different local time — that is the field cron does not have.

The five fields, in order

minute · hour · day of month · month · day of week. Numbers, ranges (9-17), lists (1,15), steps (*/15 or 0-30/10), and three-letter month and weekday names all work. A weekday of 7 is Sunday, the same as 0. The macros @hourly, @daily, @weekly, @monthly and @yearly are shorthand for the five-field forms and are expanded before anything else happens.

Seconds are not a cron field. If you have a six-field expression, it came from Quartz, systemd or an AWS scheduler, all of which use different syntax — pasting it here reports that instead of guessing.

The trap that catches almost everyone

When both day-of-month and day-of-week are restricted, classic cron runs the job when either matches — not both. So 0 0 1 * 1 runs on the first of the month and on every Monday. People who mean “the first Monday” write 0 0 * * 1 with a check inside the script, because cron cannot express “the first Monday of the month” in five fields at all. If exactly one day field is restricted, the other must be * and the rule is simply that field.

Two more honest limits. A schedule such as 0 0 30 2 * (30 February) is syntactically valid and will never run; the runner says so rather than inventing a date. And cron has no time zone: the same line runs at 02:30 server time, so a job written for 09:00 in London fires at 04:00 in New York. Daylight saving can also skip a run (the 02:30 that does not exist in spring) or repeat one (the 01:30 that happens twice in autumn). For anything that must be exact across a transition, run hourly and let the script decide.

Part of Everyday Tools. Working with timestamps instead? The Unix timestamp converter covers epoch, ISO 8601 and zones.

Advertisement
Advertisement