0 * * * * — every hour, on the hour
Answer0 * * * * runs once an hour, at minute 0: 00:00, 01:00, 02:00 and so on, 24 times a day. @hourly means exactly the same.
0Minute*Hour*Day of month*Month*Day of week
At minute 0 past every hour.
0Minute (0-59)At minute 0 (on the hour)
**Day of month (1-31)Every day (no restriction)
*Month (1-12 or JAN-DEC)Every month
*Day of week (0-7 or SUN-SAT (0 and 7 = Sunday))Every day (no restriction)
Next 10 runs in UTC
- 1in 43 minutes
- 2in 1 hour
- 3in 2 hours
- 4in 3 hours
- 5in 4 hours
- 6in 5 hours
- 7in 6 hours
- 8in 7 hours
- 9in 8 hours
- 10in 9 hours
When it fires
24 runs a day on average168 a week364 of the next 364 days have a run
Hours of the week (darker = more runs)The next 52 weeks, one square per day
What to know
The 0 matters. Writing * 0 * * * instead gives the opposite: every minute, but only during the midnight hour (60 runs from 00:00 to 00:59).
To run hourly at a quieter moment, pick a different minute: 17 * * * * runs at 17 past every hour.
Gotchas
* * * * * is every minute, not every hour: the minute field must be a fixed number for hourly.- Many scheduled jobs across the internet fire at :00. If the job calls an external API, an odd minute avoids the rush.
Related explainers
- 0 */2 * * * — every two hours0 */2 * * * runs a cron job at 00:00, 02:00, 04:00 … 22:00: 12 runs a day on even hours. How to run on odd...
- 0 */6 * * * — every six hours0 */6 * * * runs a cron job four times a day at 00:00, 06:00, 12:00 and 18:00. Breakdown, next run times...
- Cron macros: @reboot, @hourly, @daily, @weekly, @monthly, @yearlyWhat each cron @ macro means as a 5-field expression: @hourly = 0 * * * *, @daily = 0 0 * * *, and what...
← Explain any cron expression