crontool
Paste a schedule, read it in English, see the next runs.

Cron Expression: Every Day at Midnight

The expression is 0 0 * * *. Paste it above to read it in English and see the next five midnight runs in your local time. Below: the timezone catch that surprises people.

The expression

0 0 * * * runs a job once a day at midnight (00:00), every day of the year.

Field by field

The first 0 is the minute, the second 0 is the hour — together they mean 00:00. The three * that follow mean every day of the month, every month and every weekday.

The timezone catch

Midnight is whatever midnight your server uses, not your own. A machine set to UTC will run this at 00:00 UTC — which may be the previous evening where you live. Check the server timezone (or set CRON_TZ=America/New_York where supported) before relying on “midnight”.

Common variations

Daily at 2am (a quieter hour for backups): 0 2 * * *. Every midnight on the first of the month: 0 0 1 * *. Midnight on Sundays only: 0 0 * * 0.

FAQ

What does 0 0 * * * mean in cron?

Run once a day at midnight (00:00), every day. The two zeros are the minute and hour.

Which midnight does it use — mine or the server's?

The server's local time. If the server is on UTC, 0 0 * * * fires at 00:00 UTC, which can be a different calendar day for you.

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

Yes. The @daily shortcut expands to 0 0 * * * on schedulers that support it.