Cron: Combine a Range and a Step
A cron field can hold a range with a step, written range/step. 0-30/5 in the minute field means every 5 minutes but only from minute 0 to 30 — the first half of each hour. This is how you run frequently, but only during a window.
Syntax
start-end/step takes the values from start to end, then keeps every step-th one. 0-30/5 → 0,5,10,15,20,25,30. Outside 0-30 the job does not run.
Useful patterns
0 9-17/2 * * 1-5 — at the top of the hour, every 2 hours from 09:00 to 17:00, Monday to Friday (09,11,13,15,17).
*/10 8-20 * * * — every 10 minutes but only between 08:00 and 20:59 (daytime).
0-10 * * * * — every minute during the first 11 minutes of each hour, useful for staggering a burst of checks.
Combine with lists
You can also comma-join several ranges: 0-15/5,45-59/5 runs every 5 minutes in the first quarter and the last quarter of the hour. Lists, ranges and steps compose freely within one field.
FAQ
What does 0-30/5 mean in cron?
Every 5 minutes from minute 0 to minute 30 — 0,5,10,15,20,25,30 — and nothing in the second half of the hour.
How do I run every 2 hours only during work hours?
Use a range with a step in the hour field: 0 9-17/2 * * 1-5 fires at 09,11,13,15,17 on weekdays.
Can I use more than one range in a field?
Yes. Comma-join them, e.g. 0-15/5,45-59/5 runs every 5 minutes in the first and last quarter of each hour.