Quick answer
The cron expression for every Sunday is 0 0 * * 0. In the day-of-week field, 0 means Sunday, and Vixie cron and cronie also accept 7, so 0 0 * * 7 behaves the same on Linux. The first two fields set the time to 00:00, the start of Sunday, which is the night between Saturday and Sunday. For the end of Sunday, use 59 23 * * 0 or 0 0 * * 1.
- Live next runs
- Any time zone
- Field-by-field breakdown
- Seven platform snippets
- Daylight saving aware
How to use this schedule
- 1Copy
0 0 * * 0with the Copy expression button. - 2Check Next runs in your time zone to confirm it fires when you expect, including around daylight saving changes.
- 3Pick your platform under Use it on your platform and copy the ready-made crontab line, workflow, manifest or timer.
- 4Need a different time or day? Click Customize to open it in the cron expression generator and change any field.
Should I write Sunday as 0 or 7?
Both work in crontab, because Vixie cron and cronie accept either number for Sunday, plus the name SUN. The real question is where else the expression will go:
- 0 is accepted by practically every five-field cron parser, including GitHub Actions and Kubernetes. It's the portable choice for cron-style schedulers.
- 7 exists so that ranges ending on Sunday can be written upward, like
5-7for Friday to Sunday. Some libraries reject it. SUNis the clearest to read, but tools that take numbers only, such as Vercel cron, reject it.- In Quartz, AWS EventBridge and Cloudflare Workers, Sunday is 1, so a copied
0is rejected or means something else there.
If one expression has to work across cron-style schedulers, 0 is the answer; for Cloudflare, AWS and Quartz, write SUN. If it only ever lives in a Linux crontab, use whichever reads best to your team.
Which midnight is Sunday midnight?
People say "Sunday midnight" and mean two moments a full day apart. Cron is precise: 0 0 * * 0 means 00:00 on Sunday, the first minute of Sunday's date. To the people who are awake, that feels like late Saturday night.
| What you mean | Expression | Fires at |
|---|---|---|
| The start of Sunday (Saturday night) | 0 0 * * 0 | Sunday 00:00 |
| The last minute of Sunday | 59 23 * * 0 | Sunday 23:59 |
| The end of Sunday, as Monday begins | 0 0 * * 1 | Monday 00:00 |
The difference matters for anything with a weekly deadline. A job that closes "the week ending Sunday" must run after Sunday is over, so it belongs on 0 0 * * 1, and it should still compute the period from the run date rather than trusting the clock to the second.
If the exact moment doesn't matter, choose the hour on purpose. Midnight sits just before the US and European clock changes, which happen between 01:00 and 04:00 local time on Sunday mornings, so it runs once even on those nights. A maintenance job is better at 0 4 * * 0 or later, after the changes, and a report people read on Sunday evening fits 0 18 * * 0.
What does each field in 0 0 * * 0 mean?
| Field | Value | Allowed | Meaning |
|---|---|---|---|
| Minute | 0 | 0–59 | at minute 0 (on the hour) |
| Hour | 0 | 0–23 | at hour 0 (midnight) |
| Day of month | * | 1–31 | every day of the month |
| Month | * | 1–12, JAN–DEC | every month |
| Day of week | 0 | 0–7 (0 and 7 are Sunday), SUN–SAT | only on Sunday |
Read together: At 00:00 every Sunday, once a week.
How do I adjust 0 0 * * 0 to my own schedule?
Small edits to 0 0 * * 0 cover most real-world needs:
| Expression | What it does |
|---|---|
0 0 * * 7 | Same as 0 0 * * 0 in Vixie cron and cronie |
59 23 * * 0 | The last minute of Sunday |
0 0 * * 1 | Midnight at the end of Sunday, as Monday starts |
0 4 * * 0 | Sundays at 4 AM, after the daylight saving changes |
0 18 * * 0 | Sunday evening, ready for Monday |
0 0 * * SUN | The same schedule written with the day name |
Need something else? Click Customize at the top of the page to open this schedule in the cron expression generator and change any field.
Related schedules: Every week · Every Monday · Every weekend · Every day at midnight
Browse all schedules in the cron schedule library.
How do I run 0 0 * * 0 in crontab, GitHub Actions, Kubernetes and the cloud?
| Platform | Write it as | Time zone |
|---|---|---|
| Linux crontab | 0 0 * * 0 | Server's time zone; CRON_TZ= in cronie |
| GitHub Actions | - cron: "0 0 * * 0" | UTC by default; add timezone: (IANA name) |
| Kubernetes CronJob | schedule: "0 0 * * 0" | Set timeZone: (1.27+) |
| Cloudflare Workers | 0 0 * * SUN | UTC only; numbers weekdays from 1 = Sunday, so use names |
| Vercel Cron Jobs | 0 0 * * 0 | UTC only; Hobby runs it within the hour (±59 min) |
| AWS EventBridge Scheduler | cron(0 0 ? * SUN *) | Takes a time zone; legacy scheduled rules are UTC only |
| systemd timer | OnCalendar=Sun *-*-* 00:00:00 | Add a zone after the time, e.g. Europe/London |
In a crontab (crontab -e), the full line looks like this:
0 0 * * 0 /path/to/job.sh >> /var/log/job.log 2>&1The live panel at the top of the page builds complete, copy-ready files for each platform (workflow, CronJob manifest, wrangler.toml, vercel.json, AWS CLI and systemd units) and can shift the schedule to UTC for platforms that need it.
What can go wrong with 0 0 * * 0?
- Daylight saving time changes in the US and Europe happen early on Sunday mornings, between 01:00 and 04:00 local time. Sunday jobs in that window can run at shifted times twice a year; 04:00 or later avoids it.
- A weekly report scheduled at
0 0 * * 0runs before any of Sunday's data exists. Move it to0 0 * * 1if your week ends on Sunday. 7for Sunday is a Vixie cron and cronie feature. Some parsers only accept 0–6, so use0in expressions you share.- In AWS EventBridge, Quartz and Cloudflare Workers, Sunday is
1. A0copied from crontab is rejected there. - Weekly jobs fail quietly. Add alerting, because the next run, and the next chance to notice, is a week away.
- On UTC-only platforms (Cloudflare Workers, Vercel, legacy EventBridge rules), the local time this runs at moves by an hour when daylight saving time starts or ends. Use GitHub's
timezone:, KubernetestimeZone, EventBridge Scheduler or cronie'sCRON_TZto pin it to local time.
Frequently asked questions
Last updated by the Playxoft engineering team.