Five fields, read one at a time
Break a cron expression into its five fields and read what each one does, so you know when the job really runs.
Cron packs a schedule into five terse fields: minute, hour, day of month, month and day of week. Reading it wrong is how a job meant for once a week ends up running every day.
The classic trap is combining day-of-month and day-of-week. Most cron implementations treat those two as OR rather than AND, so specifying both runs the job on either match.
What this calculator shows
- Each of the five fields explained separately
- Weekday numbers translated into day names
- Ranges, lists and step values interpreted
What to keep in mind
- Covers standard five-field cron; six-field variants with seconds are not parsed.
- Cron runs in the server's timezone, which is a frequent source of off-by-hours surprises.
FAQs
What does */5 mean?
Every fifth unit of that field. In the minutes position it means every five minutes: 0, 5, 10 and so on.
How do I run something once a month?
Fix the day of month and leave day of week as a star: 0 3 1 * * runs at 03:00 on the first of every month.
Why did my job run on the wrong day?
Most likely the day-of-month and day-of-week fields are both set. Standard cron treats that as OR, so the job fires on either condition.
Which timezone does cron use?
The server's local time unless configured otherwise. Containers frequently default to UTC, which is why a job set for 09:00 can run in the middle of the night.
Worked example
A weekday morning job
Input: 0 9 * * 1-5
Output: At 09:00, Monday through Friday
Note: Change the first field to */15 and it runs every fifteen minutes during those hours instead — a very different load on your system.