0 0 * * *
Open in the generator
Minute 0 and hour 0 with wildcards everywhere else gives one run per day at midnight. @daily and @midnight are aliases for exactly this expression in cron implementations that support them.
"Midnight" is always midnight in the scheduler's timezone. On a Linux host that is the system timezone (often UTC in the cloud); in Kubernetes CronJobs and GitHub Actions it is UTC unless you set a timezone explicitly. If the job must run at local midnight for users in one country, set that timezone on the schedule rather than adjusting the hour by hand, or daylight saving will move it twice a year.
Because everyone picks midnight, it is the most congested minute of the day: log rotation, backups and reporting jobs all compete for CPU and I/O. A random-looking minute such as 17 0 * * * often runs faster.
Field by field
| Value | Field | Meaning |
|---|---|---|
| 0 | Minute 0–59 | at minute 0 |
| 0 | Hour 0–23 | at 00:00 |
| * | Day of month 1–31 | every day of the month |
| * | Month 1–12 or JAN–DEC | every month |
| * | Day of week 0–7 or SUN–SAT (0 and 7 are Sunday) | every day of the week |
Next run times
Computed in your browser from the current time, so you can check the schedule against a clock you trust.
Your timezone (local)
- Needs JavaScript.
UTC (GitHub Actions, Kubernetes default)
Variations
0 12 * * *every day at noon · see page0 2 * * *every day at 02:00 · see page0 0 * * 1-5weekdays at midnight · try it
Where this expression works
- Linux and macOS crontab: as written; times follow the system timezone.
- Kubernetes CronJob: the same five fields; UTC unless
spec.timeZoneis set. - GitHub Actions: the same syntax in UTC, minimum interval five minutes, no
@shortcuts. - AWS EventBridge: a different six-field syntax; do not paste this expression unchanged.
Full platform comparison · Cron tutorial
FAQ
Is 0 0 * * * the start or the end of the day?
The start: 00:00 is the first minute of the new day. "Midnight tonight" for a job on Monday means the schedule fires in the first minute of Tuesday.
How do I run at midnight in a specific timezone?
On Linux set CRON_TZ=Asia/Kolkata (cronie) or TZ at the top of the crontab; in Kubernetes 1.27+ set spec.timeZone; GitHub Actions has no timezone setting, so convert to UTC.