Weekly
0 0 * * 0
Run once a week, Sunday at 00:00.
This preview is live: the table below shows the actual next run times for 0 0 * * 0 in your time zone, recomputed in your browser. Change the expression, dialect, or zone to experiment, then copy the result.
What 0 0 * * 0 means
0 0 * * 0 is the canonical weekly job, Sunday at midnight, the value @weekly expands to. In Unix cron, Sunday is day-of-week 0 (and also 7), which is the most important numbering fact to internalize before you write any weekly schedule.
Sunday-midnight weekly jobs typically do the work that should happen once per week at the calendar boundary: weekly rollups, retention cleanup, or resetting weekly counters before the new week begins.
Field-by-field breakdown
Unix cron has five fields. Here is what each one is doing in this expression:
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | minute = 0 |
| Hour | 0 | hour = 0 |
| Day of month | * | every day-of-month |
| Month | * | every month |
| Day of week | 0 | day-of-week = 0 |
Every Sunday at midnight in every scheduler
The same cadence written for the seven cron dialects you are most likely to meet. Copy the line for the system you target, the field count and day-of-week numbering differ between them.
| Scheduler | Expression | Copy |
|---|---|---|
| Unix / crontab | 0 0 * * 0 | |
| GitHub Actions | 0 0 * * 0 | |
| Kubernetes CronJob | 0 0 * * 0 | |
| Vercel Cron | 0 0 * * 0 | |
| Quartz | 0 0 0 ? * 0 * | |
| Spring | 0 0 0 ? * 0 | |
| AWS EventBridge | 0 0 ? * 0 * |
Dialect note: @weekly = 0 0 * * 0 on Unix/Vercel. In Quartz, Sunday is 1, so the equivalent is 0 0 0 ? * 1, prefer 0 0 0 ? * SUN to avoid the off-by-one.
When you would use 0 0 * * 0
- Weekly summary reports generated at the week boundary.
- Resetting weekly quotas, streaks, or leaderboards.
- Pruning data older than a week.
The gotcha worth knowing
Day-of-week 0 means Sunday in Unix, but in Quartz and EventBridge 1 means Sunday, so the numeric form silently shifts when you port the schedule. Use named days (SUN) to survive copy-paste between dialects.
People also search for
0 0 * * 0 FAQ
What does the cron expression 0 0 * * 0 mean?
0 0 * * 0 means: Run once a week, Sunday at 00:00. 0 0 * * 0 is the canonical weekly job, Sunday at midnight, the value @weekly expands to. In Unix cron, Sunday is day-of-week 0 (and also 7), which is the most important numbering fact to internalize before you write any weekly schedule.
How do I write "every sunday at midnight" in GitHub Actions?
Use 0 0 * * 0 in the schedule's cron field. Day-of-week 0 means Sunday in Unix, but in Quartz and EventBridge 1 means Sunday, so the numeric form silently shifts when you port the schedule. Use named days (SUN) to survive copy-paste between dialects.
How do I write "every sunday at midnight" for AWS EventBridge?
EventBridge uses six fields with a required year and a ? placeholder in one day field: 0 0 ? * 0 *. Wrap it as cron(0 0 ? * 0 *) in the console or CloudFormation.
What is the Quartz equivalent of 0 0 * * 0?
Quartz is seconds-first with a trailing year, so the equivalent is 0 0 0 ? * 0 *. Remember Quartz numbers Sunday as 1, the opposite of Unix.
Related cron patterns
More cron tools
Browse the full set of cron pattern pages, or jump to the interactive tools: the cron expression builder for designing a schedule from scratch, the cron cheat sheet for a side-by-side reference, the cron timezone translator for moving a schedule between zones and dialects, and the GitHub Actions cron picker for DST-stable CI schedules.