Cron: Every 3 Hours
0 */3 * * * fires eight times a day — 00:00, 03:00, 06:00, and onward through 21:00. Since 3 evenly divides 24, the interval is perfectly consistent around the clock, making it a clean choice for moderate-frequency jobs that don't need to run every hour or two.
0 */3 * * *
Examples & Variations
Common Mistakes
- Writing an uneven step (like */5 in the hour field) expecting the same clean behavior — 5 doesn't divide 24, so it would produce an inconsistent, shrinking cycle the same way */45 does in minutes.
- Not accounting for eight daily invocations when estimating API usage or costs — three-hour polling adds up faster than it sounds over a month.
- Assuming this interval is 'business hours friendly' by default — it runs overnight too unless you explicitly restrict the hour range.
Best Practices
- Good default for periodic reports, moderate-cost external API polling, or refreshing data that doesn't change minute-to-minute.
- Use the explicit list form (0,3,6,9,...) if you want the schedule to be immediately readable without mental math, at the cost of a longer expression.
- Pair with monitoring if a missed run matters — at only 8 runs a day, a single silent failure represents a meaningful gap in coverage.
Frequently Asked Questions
- How many times a day does every 3 hours run?
- Eight times — 24 hours divided by a 3-hour step gives exactly 8 evenly-spaced runs, starting at midnight.
- Is 0 */3 * * * the same as 0 0,3,6,9,12,15,18,21 * * *?
- Yes, functionally identical — the step syntax is shorthand for that exact explicit list.
- How do I restrict every-3-hours to daytime only?
- Add an hour range before the step: 0 6-21/3 * * * only fires between 6 AM and 9 PM, still spaced 3 hours apart within that window.