Candid Tools

0 0 * * * ? - every hour, on the hour (Quartz)

The Quartz cron expression 0 0 * * * ? means every hour on the hour, seconds first; this page explains each field and lists the next runs 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 0 * * * ? runs every hour, on the hour (1:00:00, 2:00:00, 3:00:00 ...). It's Quartz syntax, which Spring also accepts: second 0, minute 0, every hour, every day of the month, every month, and ? (no specific value) for the day of week. 0 0 * * * ? * is the same schedule with Quartz's optional year field set to *, every year.

When this is the right schedule

Use it when you're configuring a Java scheduler (Quartz, Spring @Scheduled, or another tool whose docs say it takes Quartz-style cron) and want an hourly job.

When to pick something else

Look elsewhere when you paste it into a crontab, GitHub Actions or Kubernetes. Those use 5 fields without seconds, so the hourly version there is 0 * * * *.

Things to watch

Field by field

0 second, 0 minute, * hour (all 24), * day of month, * month, ? day of week, and optionally * for the year. The two leading zeros are what pin it to the top of the hour; it isn't midnight, because the hour field is *.

Why the question mark

Quartz requires ? in either day of month or day of week, since its docs say specifying both isn't fully supported. Here day of month is * (every day), so day of week gets ?. Spring accepts the ? but would also take 0 0 * * * *, and AWS needs it too.

Easily confused neighbours

0 0 0 * * ? is daily at midnight (hour 0). 0 * * * * ? is every minute. * 0 * * * ? is every second during minute 0 of each hour, 60 runs an hour.

Frequently asked questions

What is the frequency of 0 0 * * * ?

Once an hour, on the hour (minute 0, second 0), 24 times a day.

What does 0 0 * * * ? * mean?

The same: every hour on the hour. The seventh field is Quartz's optional year, and * means every year.

Is 0 0 * * * ? midnight?

No. Midnight in Quartz is 0 0 0 * * ? (three zeros: second, minute, hour).