Cheat Sheets · Cron Cheat Sheet · Cron Every Hour — Crontab Example

Cron Every Hour — Crontab Example

0 * * * *

Runs at minute 0 of every hour — once an hour, on the hour.

Field by field

FieldValueMeaning
Minute0Exactly at minute 0
Hour*Every hour
Day of month*Every day
Month*Every month
Day of week*Every day of the week

Hourly jobs anchor the minute field to a single value (0) and leave the hour wildcard. The classic beginner mistake is writing * 0 * * * thinking it means hourly — that actually means "every minute of hour 0", i.e. 60 runs between midnight and 1 AM.

To run at half past every hour instead, change the minute: 30 * * * *. For business-hours-only, constrain the hour range: 0 9-17 * * 1-5 fires on the hour from 9:00 to 17:00 on weekdays.

0 * * * * /usr/local/bin/hourly-rollup.sh

Related schedules

FAQ

What is the difference between 0 * * * * and * 0 * * *?
First: hourly at minute 0. Second: every minute during the 00:00 hour only. Field order is minute-first — this one trip-up causes most "my cron ran 60 times" support tickets.

Is there an @hourly shorthand?
Yes — @hourly is equivalent to 0 * * * *. Shorthands exist for @daily, @weekly, @monthly, @yearly too.

How do I avoid clashing with other hourly jobs?
Offset the minute (25 * * * *) or add jitter inside the script. Everything firing at :00 creates thundering-herd load on shared dependencies.

Stop memorizing — build it interactively

Try this schedule in the Cron Editor

Full reference: Cron Cheat Sheet