Cron expression for daily at midnight
0 0 * * *What it does
The expression 0 0 * * * runs a job once a day at 00:00, the start of every day. Minute and hour are both fixed at 0; the day, month and weekday fields are *, so it fires at midnight every day of the year.
It is equivalent to @daily and @midnight, and it is the workhorse schedule for nightly maintenance: backups, report generation, cleanup jobs, and cache resets. Running at midnight keeps heavy work off peak hours.
The catch is which midnight. Cron uses the server's local time zone, which is often UTC. If you think in local time, "midnight" on the server may be mid-evening or mid-morning for you — check the two time-zone columns in the tool below. Midnight is also inside the range where daylight-saving transitions can shift or, in rare zones, skip the hour; if exact once-per-day firing is critical, a time like 03:00 is safer than 00:00 in some regions.
Related presets
FAQ
0 0 * * * is midnight UTC unless the host or scheduler sets a different zone.@daily and @midnight both expand to 0 0 * * *.timeZone). GitHub Actions is UTC-only.