Candid Tools

Cron every hour

Every hour in cron is 0 * * * * or @hourly (Unix), 0 0 * * * ? in Quartz and Spring; this page lists the next hourly runs, calculated in your browser.

Unix cron (crontab, GitHub Actions, Kubernetes)
  • 0 * * * *
Quartz and Spring (seconds first; valid in both)
  • 0 0 * * * ?
AWS EventBridge (minute first, year last)
  • cron(0 * * * ? *)

Read by our parser as: Every hour, on the hour. Open in the cron checker

Next 10 runs

Calculating in your browser...

  1. 1 
  2. 2 
  3. 3 

At a glance

Accepts
Nothing to enter - the schedule is preset on the page
Outputs
The expression in Unix, Quartz/Spring and AWS form, plus its next 10 run times
Where it runs
Entirely in your browser, on your device
What leaves your device
Nothing - what you type stays in this tab
Limits
Run times use your browser's timezone or UTC; real schedulers can start a run late
Account
Not required - there is no sign-up
Price
Free, with no watermark and no usage cap
Made by
Visrut

What it means

0 * * * * runs once an hour, at minute 0: 1:00, 2:00, 3:00 and so on. Many crons also accept the nickname @hourly for exactly this. The common mistake is * * * * * or * 1 * * *, which run every minute (the second one, every minute of the 1 AM hour).

When this is the right schedule

Use it when you need hourly rollups, log shipping, or cache warming, and running exactly on the hour is fine.

When to pick something else

Look elsewhere when many other jobs also run on the hour on the same machine or platform. Pick a quieter minute instead; see the half-past page.

Things to watch

The minute field is what makes it hourly

A fixed minute plus * in the hour field is the whole trick. 0 * * * * is on the hour, 17 * * * * is at 17 past. Leaving the minute as * turns an hourly job into one that runs 60 times an hour.

@hourly support varies

cronie and Kubernetes accept @hourly and Spring accepts it too (as 0 0 * * * *). GitHub Actions explicitly doesn't support @hourly or the other nicknames, so write 0 * * * * there.

On the hour is the busiest minute

GitHub documents the start of every hour as a high-load time for scheduled workflows, which can delay runs. Shared cron hosts see the same spike. If exact :00 isn't required, choose another minute.

Frequently asked questions

Is @hourly the same as 0 * * * *?

Yes, in crontab(5), Kubernetes and Spring (where it's 0 0 * * * * with seconds). GitHub Actions doesn't accept @hourly, so use 0 * * * * there.

What does 0 */1 * * * mean?

The same as 0 * * * *: minute 0 of every hour. A step of 1 matches every hour.