Skip to main content

Cron once a week

0 0 * * 0

At 00:00, only on Sunday.

Next runs · UTC

Calendar

September 2026 · UTC

0 runs

About this tool

Run a cron once a week with 0 0 * * 0. The day-of-week field selects Sunday; the time fields pin it to midnight. Equivalent to the @weekly alias on Linux crontab.

The cron expression for once a week (Sunday at midnight)

0 0 * * 0

The day-of-week value 0 is Sunday - pinning the firing to one day per week. Equivalent to the @weekly alias on Linux crontab.

See the dedicated guide for the full breakdown: Cron every week.

Paste it into the editor above to see the next runs on a calendar.

When to run a job once a week (Sunday at midnight)

  • Reports and notifications that should only go out once a week (Sunday at midnight).
  • Maintenance windows and heavier batch jobs scheduled around when people are working.
  • Reminders and check-ins tied to a weekly rhythm rather than a calendar date.

Run this cron anywhere

0 0 * * 0 is five-field cron syntax. It works as is in:

AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields, so convert first:

  • AWS EventBridge - cron(minute hour day-of-month month ? year); see the AWS guide.
  • Quartz Scheduler - prepend a seconds field (0) and replace one day field with ?; see the Quartz guide.

Useful variations

  • 0 9 * * 1 - weekly on Monday at 09:00
  • @weekly - Linux crontab alias for `0 0 * * 0`
  • 0 17 * * 5 - weekly on Friday at 17:00

Gotchas when running once a week (Sunday at midnight)

  • Timezone and daylight saving - DST handling is scheduler-specific: Vixie/cronie can skip or double local matches; GitHub advances nonexistent local times; EventBridge Scheduler skips spring and runs once in the fall overlap. UTC-only Vercel and Cloudflare schedules are unaffected.
  • Missed runs are not replayed - If the host or platform is unavailable at the scheduled minute, standard cron simply waits for the next match. Add a heartbeat or alert if a skipped run must be noticed.
  • Day-of-week and day-of-month are OR-ed - In Vixie-style cron, restricting both fields runs the job when either matches. Keep day-of-month as * when the weekday is the only restriction you want.
  • Sunday numbering varies by dialect - Vixie-style cron accepts 0 and 7 as Sunday. AWS EventBridge and Quartz use 1 for Sunday and 7 for Saturday; prefer weekday names when translating dialects.

Examples

  • 0 18 * * *
    Every day at 18:00
  • 0 */5 * * *
    Every 5 hours
  • 0 18 * * 1-5
    Weekdays at 18:00
  • 0 0 1 * *
    Once a month, on the 1st at midnight

Cheatsheet

Full cheatsheet
FieldReq.RangeWildcards
minuteyes0-59, - * /
houryes0-23, - * /
day of monthyes1-31, - * /
monthyes1-12 or JAN-DEC, - * /
day of weekyes0-6 or names; some dialects use 0-7 or 1-7 — see Dialects, - * /

Frequently asked questions

Syntax

What time does @weekly run?

In Vixie crontab, @weekly means Sunday at 00:00 and is equivalent to 0 0 * * 0. Confirm support before using the shortcut on another scheduler.

Cron shortcuts
Should a weekly cron use a weekday number or name?

Prefer a name such as SUN when supported because numeric weekday mappings differ across dialects. The portable target still depends on your scheduler.

Dialect matrix

Timing

Which day is best for a weekly report?

Choose the day after the reporting period closes and upstream data finishes. For a Monday 09:00 report, use 0 9 * * 1. Expression: 0 9 * * 1

Open in editor
Weekly cron guide
When should a once-weekly backup run?

Run it during a measured low-write window and allow time for verification. 0 0 * * 0 starts Sunday at midnight but does not guarantee the system is quiet. Expression: 0 0 * * 0

Open in editor
Can the same expression run every other week?

Not by itself. Cron has no portable biweekly field; fire weekly and let a stateful wrapper skip alternate runs.

Biweekly cron guide

Days and months

How do I choose a different day for a weekly cron?

Set one day-of-week value. For Monday at 09:00 use 0 9 * * 1; for Friday at 17:00 use 0 17 * * 5. Expression: 0 9 * * 1

Open in editor
Weekly cron guide
Is 0 0 */7 * * the same as once a week?

No. It runs on month days 1, 8, 15, 22, and 29, then resets at the next month; choose a weekday for a true weekly schedule. Expression: 0 0 */7 * *

Open in editor
Day-step rules
Does 0 9 1 * 1 select the first Monday only?

No in Vixie cron. It fires every Monday and every first day of the month because restricted day fields are OR-ed; Quartz and AWS require ? in one day field. Expression: 0 9 1 * 1

Open in editor
Day-field rules

Platforms

What is a Quartz expression for once a week on Sunday?

Use 0 0 0 ? * SUN. Quartz includes seconds first and uses ? for day-of-month while Sunday controls the weekly match. Expression: 0 0 0 ? * SUN

Open in editor
Quartz cron guide

Debugging

Does a weekly backup cron provide retention?

No. Cron starts backups; separate policy must verify them, retain the required generations, and alert when a weekly backup is absent.

Crontap

Can Crontap call an endpoint once a week?

Yes. Crontap can run 0 0 * * 0 in the selected IANA timezone and invoke an HTTP endpoint weekly.

Schedule API calls

General

What is the cron expression for once a week (Sunday at midnight)?

0 0 * * 0. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job once a week (Sunday at midnight); AWS EventBridge and Quartz need the six-field form.

How can I verify this cron actually runs once a week (Sunday at midnight)?

The editor above shows the next 30+ runs on a calendar in your local timezone, plus a plain-English description. If the calendar matches your intent, the cron is correct.

Does 0 0 * * 0 work on every platform?

Linux crontab, Vercel cron jobs, node-cron, robfig/cron, and Kubernetes CronJob accept the five-field form as is. AWS EventBridge and Quartz use six-field expressions with a ? in one of the day fields; see the AWS and Quartz guides for the conversion. Vercel's free Hobby plan caps the minimum frequency at once-per-day; the Pro plan removes that cap.

What happens if the previous run is still going when the next one fires?

Most schedulers will start the new run anyway, leading to overlap. To prevent this, wrap the command with flock -n /tmp/myjob.lock /path/to/script.sh on Linux, or set concurrencyPolicy: Forbid on Kubernetes CronJob. Vercel and EventBridge may overlap runs if the previous one is still executing; make the handler idempotent.

Write the cron here. Run it on Crontap.

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

1.9k+ teams · Free forever tier · No credit card