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.
- Calculating…
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
| Expression | Schedule |
|---|---|
@hourly | Shorthand 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.