Cron expression explainer
Type a cron schedule and read, in plain English, exactly when it runs — with every field broken out.
Five fields: minute hour day-of-month month day-of-week. Supports *, ranges (1-5), steps (*/15) and lists (1,3,5).
Make sense of cron
Cron's five-field syntax is compact but easy to misread, and a small mistake can mean a job runs every minute instead of once a day. Type an expression and this tool translates it into a clear sentence, then shows each field — minute, hour, day-of-month, month and day-of-week — separately so you can confirm your intent. It understands the common operators: * for "every," ranges like 1-5, steps like */15, and lists like 1,3,5.
The fields, in order
From left to right the fields are minute (0–59), hour (0–23), day of month (1–31), month (1–12) and day of week (0–6, where 0 is Sunday). A classic gotcha is setting both day-of-month and day-of-week, since in standard cron the job runs when either matches. When you're unsure, build the schedule one field at a time and read the description after each change until it says exactly what you mean.
Decoding an example
Take 30 8 * * 1-5. Reading the fields left to right: minute is 30, hour is 8, day-of-month is *, month is *, and day-of-week is 1-5. That translates to "at 08:30 every day, but only Monday through Friday" — a weekday-morning job. Swap the last field for * and it runs every day; change the minute to */30 and it fires at both :00 and :30 within the 8 o'clock hour. Each operator has one job: * means every value, - makes an inclusive range, , lists specific values (1,15), and / sets a step interval. Watch the day-of-week numbering too: 0 and 7 both mean Sunday in most implementations.