cronuru
Pattern

Every Sunday

0 0 * * 0
0 0 0 ? * SUN
0 0 * * 0
0 0 ? * SUN *
0 0 0 * * SUN
0 0 * * 0

Runs at 00:00 every Sunday — 1 invocation per week. This is what the @weekly shortcut expands to.

Use in your stack

# Every Sunday at midnight
0 0 * * 0 /usr/local/bin/weekly-reset.sh

# Equivalent shortcut (Linux crontab)
@weekly /usr/local/bin/weekly-reset.sh
{ "cron": "0 0 0 ? * SUN", "timezone": "UTC" }
apiVersion: batch/v1
kind: CronJob
metadata:
  name: weekly-reset
spec:
  schedule: "0 0 * * 0"
  timeZone: "UTC"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: reset
            image: my-image:latest
          restartPolicy: OnFailure
cron(0 0 ? * SUN *)
@Scheduled(cron = "0 0 0 * * SUN")
public void everySunday() { /* ... */ }
on:
  schedule:
    - cron: '0 0 * * 0'

Next runs

Pick a timezone to see when this expression fires next.

Next 10 runs
  1. 012026-07-05T00:00:00.000Z
  2. 022026-07-12T00:00:00.000Z
  3. 032026-07-19T00:00:00.000Z
  4. 042026-07-26T00:00:00.000Z
  5. 052026-08-02T00:00:00.000Z
  6. 062026-08-09T00:00:00.000Z
  7. 072026-08-16T00:00:00.000Z
  8. 082026-08-23T00:00:00.000Z
  9. 092026-08-30T00:00:00.000Z
  10. 102026-09-06T00:00:00.000Z

Variations

0 0 * * 6

Every Saturday

0 0 * * 6,0

Weekends (Sat + Sun)

0 0 * * 1

Every Monday

0 0 * * 5

Every Friday

Common use cases

  • Weekly reset of counters or quotas.
  • Week-ahead planning reports sent Sunday night.
  • Weekly backups or archive rotation.
  • Sunday maintenance windows.

Gotchas

  • Day-of-week numbering: Unix uses Sunday = 0. Quartz uses Sunday = 1. Use name form (`SUN`) to avoid the off-by-one.
  • On Linux crontab, `@weekly` is shorthand for `0 0 * * 0`. Kubernetes CronJob accepts it; GitHub Actions does not.
  • Some Unix implementations also accept `7` for Sunday, but `0` is the portable choice.

0 0 * * 0 is the Sunday-at-midnight weekly schedule and the canonical expansion of @weekly. Use name form SUN if you’ll port it to Quartz or AWS EventBridge, where Sunday is numbered differently.

Frequently asked questions

What does `0 0 * * 0` mean?
Minute `0`, hour `0` (midnight), day-of-month `*` (any), month `*` (any), day-of-week `0` (Sunday in Unix). So the job fires at midnight every Sunday — one invocation per week.
Is `0 0 * * 0` the same as `@weekly`?
Yes, on systems that support the shortcut. `@weekly` expands to `0 0 * * 0` (Sunday at midnight) on Linux crontab, anacron, and Kubernetes CronJob. GitHub Actions doesn't support `@weekly` — write the full expression.
Can I write Sunday as `7` instead of `0`?
Some Unix cron implementations accept `7` as an alternate for Sunday, and Spring accepts both `0` and `7`. But `0` is the portable, spec-compliant choice. Quartz and AWS EventBridge use `1` for Sunday — prefer the name form `SUN` to avoid all the numbering differences.
How do I run Sunday evening instead of midnight?
Change the hour field. `0 18 * * 0` runs at 6 PM Sunday, `0 20 * * SUN` at 8 PM. Combine with a timezone pin so "Sunday evening" means the right local time.

Browse all cron patterns

Every schedule Cronuru documents, with its expression and code snippets for six dialects.