Open in the Cron Expression Generator →
What 0 0 * * * means
Cron reads five fields from left to right: minute, hour, day of the month, month and day of the week. For every day at midnight they are:
| Field | Value | Meaning | Allowed |
|---|---|---|---|
| Minute | 0 | 0 | 0–59 |
| Hour | 0 | 00:00 | 0–23 |
| Day of month | * | every day of the month | 1–31 |
| Month | * | every month | 1–12 |
| Day of week | * | every day of the week | 0–6 (Sun–Sat) |
Next runs
Calculated in your browser for your time zone. On a server, cron uses the server’s time zone (often UTC).
- Enable JavaScript to see the next run times.
Typical uses
- Nightly backups
- Daily reports
- Resetting daily quotas
Good to know
Midnight in the server’s time zone (often UTC). @daily and @midnight mean the same.
Use it in crontab, GitHub Actions, Kubernetes and Node.js
crontab (crontab -e):
0 0 * * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
GitHub Actions (times are UTC):
on:
schedule:
- cron: '0 0 * * *'
Kubernetes CronJob:
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "0 0 * * *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: my-job
image: alpine:3
command: ["sh", "-c", "echo running"]
Node.js (node-cron):
import cron from 'node-cron';
cron.schedule('0 0 * * *', () => {
// your job
});
Related schedules
- Every day at 1 am —
0 1 * * * - Every day at 2 am —
0 2 * * * - Every day at 6 am —
0 6 * * * - Every day at 9 am —
0 9 * * * - Every day at noon —
0 12 * * * - Every day at 6 pm —
0 18 * * * - Twice a day —
0 0,12 * * *
Frequently asked questions
What is the cron expression for every day at midnight?
0 0 * * *. It runs at 0; 00:00.Which time zone does cron use?
spec.timeZone (for example Europe/Berlin).