Cheat Sheets · Cron Cheat Sheet · Cron Daily at Midnight — Crontab Example

Cron Daily at Midnight — Crontab Example

0 0 * * *

Runs at 00:00 (midnight) every day.

Field by field

FieldValueMeaning
Minute0At minute 0
Hour0At hour 0 (midnight)
Day of month*Every day
Month*Every month
Day of week*Every day of the week

Midnight daily is where backups, log rotation, and report generation traditionally live. The @daily shorthand is exactly equivalent to this expression.

Two practical notes: first, midnight is server-timezone midnight — a UTC server means 00:00 UTC, which is early morning in most of Europe and evening in the Americas. Second, midnight is also when everyone else's heavy jobs run; moving yours to 0 3 * * * often makes the same work finish faster.

0 0 * * * /usr/local/bin/backup.sh

Related schedules

FAQ

Midnight in which timezone?
Whatever the host considers local — typically UTC on cloud servers. Verify with date on the box, and prefer UTC schedules for deterministic behavior.

Is @daily exactly the same?
Yes: @daily expands to 0 0 * * *. Use whichever reads better in your crontab.

What if the server is down at midnight?
The run is skipped — cron does not catch up. For must-run daily jobs (billing, retention), have the job itself check its last-run timestamp, or use anacron / a scheduler with catch-up semantics.

Stop memorizing — build it interactively

Try this schedule in the Cron Editor

Full reference: Cron Cheat Sheet