Cron Expression for Every Hour

Every hour, 24 times a day
0 * * * *

Cron reads this as: at the start of every hour.

Next 5 runs

These times are in your browser's local time zone. Cron itself uses the server's zone, which on most cloud hosts is UTC. If the difference matters here, see time zones & DST.

When to use this schedule

This runs at the top of every hour. It is a common choice for log rotation, hourly rollups, cache warming and anything that needs to be fresh within the hour but not sooner. @hourly is an accepted synonym on most implementations.

What to watch out for

The minute field matters more than people expect. A * in the hour slot is fine as long as the minute is 0, but writing * */1 * * * by mistake gives you a job that runs every minute. Also, every other hourly job on the box fires at :00 too. Offsetting yours to 7 * * * * or 23 * * * * costs nothing and avoids the pile-up.

The crontab line

0 * * * * /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1

Send the output to a log you will read. By default cron mails it, and on a host with no mail transport that mail is silently dropped. See the crontab guide for the surrounding syntax.

Related schedules

Variations on every hour
ExpressionSchedule
@hourlyShorthand for the same schedule
23 * * * *Hourly, offset off the top
0 */2 * * *Every 2 hours

Build your own

If this page doesn't cover the schedule you need, compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library has sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.