Cron pattern
Cron Expression for Every Hour
0 * * * * runs a job on the hour, every hour, every day. This page explains the fields and previews the next five runs.
0 * * * * This schedule fires on the pattern shown above; see the field-by-field breakdown below.
Next 5 run times
Computed in your browser, in your local timezone.
- your local time
- your local time
- your local time
- your local time
- your local time
What 0 * * * * means
The five cron fields are minute, hour, day of month, month, and day of week.
In 0 * * * * only the first field is a number:
0— run at minute 0 of the hour (not minute 1, not minute 15 — exactly on the hour).- First
*— every hour: 00:00, 01:00, 02:00 … 23:00. - Second
*— every day of the month. - Third
*— every month. - Fourth
*— every day of the week.
So the job fires 24 times per day, always at the zero-minute mark. If your hourly job must not
overlap the previous one on slow systems, you will often see 5 * * * * or
30 * * * * instead — the same “every hour” idea but offset to a safer minute. The
daily-at-midnight expression 0 0 * * * is just this
pattern with the hour field pinned to 0.
Log rotation and scheduling notes
Hourly jobs are the bread and butter of logrotate, monitoring scrapers and cache warmers.
One widely adopted convention is to offset hourly jobs by a few minutes so a fleet of machines does not
hit the same resource at exactly 00:00 — e.g. server A uses 3 * * * * and server B uses
33 * * * *. This lowers load spikes on shared databases and APIs.
Keep in mind cron reads the system's local timezone. On many servers the timezone is UTC, so “every hour” is still every hour, but the phase (which wall-clock minute is minute zero) is defined by the server, not by your laptop. If your job must align with a specific minute of every hour, double-check that the crontab uses the timezone you expect.
Adjusting the cadence
The minute field controls how many times per hour you run. Drop it to zero once, or speed things up
with a step: */15 * * * * goes off every 15 minutes,
and */5 * * * * every 5 minutes. To run only on certain
weekdays, combine the range syntax in the last field, e.g. 0 * * * 1-5 for
hourly on weekdays.
For a full walkthrough of every field and special character, see the complete guide to cron syntax.
Understanding the syntax of 0 * * * *
In plain English, this schedule every hour, at minute 0. Here is each of the five fields and what it controls:
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | at minute 0 |
| Hour | * | every hour |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | * | every day of the week |
The expression has five space-separated fields: minute hour day-of-month month day-of-week. Any field set to * means “every”.
Explore more cron patterns
Fine-tune your schedule with a related pattern, or start from scratch in the builder.