Cron expression for every monday at midnight
0 0 * * 1 In plain English
At 00:00, only on Monday
Next runs
Field by field
| Field | Allowed | This expression |
|---|---|---|
| Minute | 0–59 | 0 |
| Hour | 0–23 | 0 |
| Day of month | 1–31 | * |
| Month | 1–12 | * |
| Day of week | 0–6 (Sun–Sat) | 1 |
Use it
In a crontab
Run crontab -e and add:
0 0 * * 1 /path/to/your-script.sh Remember: system cron won't tell you when this job fails or silently stops running. If the schedule matters, add a heartbeat monitor so you get an alert when a run goes missing.
Monitored, with one extra line
Keep the job exactly where it runs today — just append a ping, and SteadyCron alerts you when a run doesn't arrive on schedule:
0 0 * * 1 /path/to/your-script.sh && curl -fsS https://ping.steadycron.com/<token> Works from any language, shell, container, or CI — anything that can make an HTTP request. How heartbeat monitoring works →
As code, with SteadyCron
Define the schedule in a YAML manifest, review it in a pull request, and let SteadyCron call your endpoint — with retries, timeouts, and an execution log:
jobs:
- id: my-job
name: my-job
kind: http
method: POST
url: https://api.example.com/tasks/run
schedule: "0 0 * * 1"
timezone: Europe/Berlin
retries: 3
Then steadycron sync steadycron.yaml — or manage the same job with the
Terraform provider.
Related expressions
- Every week (Sunday at midnight)
0 0 * * 0 - Every weekday at 9 AM
0 9 * * 1-5 - Every weekday at midnight
0 0 * * 1-5 - Every weekend day at 10 AM
0 10 * * 6,0 - Every Tuesday at midnight
0 0 * * 2 - Every Wednesday at midnight
0 0 * * 3 - Every Thursday at midnight
0 0 * * 4 - Every Friday at midnight
0 0 * * 5
Need something else? Try the cron generator or browse all common cron expressions.
Schedule set up — but not running?
A correct expression is only half the job. Fix-first guides for the usual suspects: