How to use
- Type or paste a cron expression with five fields, such as 0 9 * * 1-5, or pick an example.
- Select Explain, or press Enter in the input.
- Read the summary, then the field-by-field breakdown with the exact values each field matches.
The five cron fields
A standard 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–7, where both 0 and 7 mean Sunday). A job runs at every minute that matches the minute, hour and month fields and the day rule described below.
Each field is * (every value), a single number such as 5, a range such as 1-5, a step such as */15 (every 15th value starting at the lowest) or 0-30/10 (every 10th value from 0 through 30), or a comma-separated list of these such as 1,15,30. Ranges must go from the smaller number to the larger one.
Day of month and day of week
The two day fields combine in a way that surprises many people. If either field starts with *, a day must match both fields — so 0 9 * * 1-5 runs Monday through Friday. If neither field starts with *, a day that matches either field runs — so 0 0 1,15 * 1 runs on the 1st and 15th of the month and also every Monday, not only on Mondays that fall on those dates.
This is the behavior of the widely used Vixie cron (and cronie). Note that a field such as */2 starts with *, so 0 0 */2 * 1 runs only on odd-numbered days that are also Mondays. The explainer tells you which rule applies to your expression.
Common examples
* * * * * runs every minute. */5 * * * * runs every 5 minutes. 0 * * * * runs at the start of every hour. 0 0 * * * runs every day at 00:00. 0 9 * * 1-5 runs at 09:00 Monday through Friday. 30 2 * * 0 runs at 02:30 every Sunday. 0 0 1 * * runs at 00:00 on the 1st of every month, and 0 0 1 1 * once a year on 1 January.
Supported and unsupported syntax
This explainer supports the standard 5-field syntax with numbers only. Fields are separated by one or more spaces or tabs, and spaces or tabs around the expression are ignored; your expression is never rewritten. Month and weekday names (JAN, MON), macros such as @daily or @reboot, a seconds or year field (Quartz, Spring, AWS EventBridge), and the special characters L, W, # and ? are not supported and are reported clearly instead of being guessed at.
Steps need * or a range before the slash: 5/15 is rejected because cron implementations disagree about what it means. Use */15 or 5-59/15 instead.
Time zones
A cron expression has no time zone of its own. The times it describes are interpreted by the scheduler that runs the job — often the server's local time zone or the time zone set in its configuration — so 09:00 can mean different moments on different systems. This tool explains the meaning of the expression; it does not know when your server will run it.
FAQ
- Is my expression sent anywhere?
- No. Cron expressions are parsed in your browser. Nothing is sent to a server, stored, or added to the page URL, and nothing is ever run.
- Why does */7 * * * * not run exactly every 7 minutes?
- Steps restart every hour: */7 matches minutes 0, 7, 14 … 56, so there are only 4 minutes between 56 and the next hour's 0. The explainer lists the exact minutes instead of saying "every 7 minutes".
- Does it show the next run times?
- Not yet. Next run times depend on the scheduler's time zone and daylight-saving rules, so this version explains the schedule rather than predicting exact moments.