HubTools

Cron Hourly Generator

Pre-loaded with 0 * * * * — fires once an hour at the top of every hour.

What does cron `0 * * * *` mean?

0 * * * * fires once an hour, at minute 0 — i.e. the top of every hour: 00:00, 01:00, 02:00, ... 23:00, every day. It's the equivalent of `@hourly` on cron implementations that support nicknames. Hourly is a very common scheduling cadence: refreshing data warehouses, processing the last hour's logs, sending hourly notifications, or running a heartbeat health check. Note the leading 0 — leaving it as `*` (which gives `* * * * *`) means every minute of every hour, which is 60x as often.
Minute0-59, * for every, */5 for every 5 minutes
Hour0-23, * for every, */2 for every 2 hours
Day of Month1-31, * for every, 1,15 for specific days
Month1-12, * for every, 1-6 for Jan through Jun
Day of Week0-6 (0=Sunday), * for every, 1-5 for weekdays
Generated Expression

0 * * * *

At minute 0
Next 5 Runs:
5/2/2026, 3:00:00 PM5/2/2026, 4:00:00 PM5/2/2026, 5:00:00 PM5/2/2026, 6:00:00 PM5/2/2026, 7:00:00 PM
Cron Reference
FieldRangeSpecialExample
Minute0-59* , - /*/5 = every 5 min
Hour0-23* , - /9-17 = 9 AM to 5 PM
Day of Month1-31* , - /1,15 = 1st and 15th
Month1-12* , - /1-6 = Jan to Jun
Day of Week0-6* , - /1-5 = Mon to Fri
Special Characters
* Any value
, Value list separator
- Range of values
/ Step values
Day of Week Values
0=Sun1=Mon2=Tue3=Wed4=Thu5=Fri6=Sat

About the hourly cron pattern

0 * * * * fires at minute 0 of every hour, every day, in the daemon's local time zone.
  • Field positions: minute hour day-of-month month day-of-week
  • Leading `0` pins to the top of the hour — `* * * * *` runs every minute instead
  • Equivalent shortcut: @hourly (Vixie cron extension, not in AWS/Kubernetes)
  • For every Nth hour, use step syntax: 0 */2 * * * runs every 2 hours

Frequently asked questions

What's the difference between `0 * * * *` and `* * * * *`?
Massive: `0 * * * *` fires at minute 0 of every hour (24 times a day). `* * * * *` fires every minute (1,440 times a day). The leading `0` pins the schedule to the top of the hour. The `*` in the hour field means 'every hour'. A common bug is leaving the minute field as `*` when you meant `0` — the resulting job fires 60x more often than intended.