Skip to main content

Cron every Saturday

0 9 * * 6

At 09:00, only on Saturday.

Next runs · UTC

Calendar

September 2026 · UTC

0 runs

About this tool

Run a cron every Saturday with 0 9 * * 6. Common Saturday cron use cases: weekly maintenance windows, weekend log archives, low-traffic database vacuum, weekly summary emails to users.

The cron expression for every Saturday at 09:00

0 9 * * 6

The day-of-week value 6 is Saturday in standard cron. Name-alias form: 0 9 * * SAT.

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 every Saturday at 09:00

  • Reports and notifications that should only go out every Saturday at 09:00.
  • 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 9 * * 6 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 3 * * 6 - every Saturday at 03:00 - off-hours maintenance
  • 0 9 * * SAT - name-alias form (equivalent)
  • 0 0 * * 0,6 - every weekend (Saturday and Sunday)

Gotchas when running every Saturday at 09:00

  • 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

Can I write SAT instead of 6 for Saturday?

Yes. 0 9 * * SAT is equivalent to 0 9 * * 6 in schedulers that accept weekday names. Expression: 0 9 * * SAT

Open in editor
Day-of-week values
How do I add Sunday to a Saturday schedule?

Use 0 9 * * 0,6 in Vixie cron. The explicit list selects Sunday and Saturday without relying on a wrapping range. Expression: 0 9 * * 0,6

Open in editor
Weekend cron guide

Timing

What expression runs every Saturday at 03:00?

Use 0 3 * * 6. This places maintenance early Saturday, but verify that Friday-night workloads have completed first. Expression: 0 3 * * 6

Open in editor
Weekly cron guide
Is Saturday suitable for a low-traffic deployment?

Only if traffic and staffing data support it. Schedule with 0 3 * * 6, then require health checks and rollback automation because cron does not assess deployment safety. Expression: 0 3 * * 6

Open in editor

Days and months

Does 0 9 1 * 6 mean Saturday only when it is the first?

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

Open in editor
Day-field rules
How do I schedule the second Saturday of each month?

Use 0 0 9 ? * SAT#2 in Quartz-compatible syntax. The #2 suffix selects the second Saturday. Expression: 0 0 9 ? * SAT#2

Open in editor
Nth-weekday rules
How do I schedule the last Saturday of each month?

Use 0 0 9 ? * SATL in Quartz-compatible syntax. Numeric weekday values differ among extended dialects, so the name avoids ambiguity. Expression: 0 0 9 ? * SATL

Open in editor
Last-weekday rules

Platforms

Is Saturday always day-of-week 6?

No. Saturday is 6 in Vixie cron but 7 in Quartz; use SAT when supported and convert the field count for the target dialect.

Dialect matrix
What is the Quartz form for every Saturday at 09:00?

Use 0 0 9 ? * SAT. Quartz adds a leading seconds field and uses ? for day-of-month. Expression: 0 0 9 ? * SAT

Open in editor
Quartz cron guide

Debugging

How do I stop Saturday maintenance before Sunday?

Enforce a timeout inside the job. Cron controls start times, not duration, so a Saturday task can continue into Sunday without a deadline.

Crontap

Can Crontap call an endpoint every Saturday?

Yes. Crontap can run 0 9 * * 6 in the selected IANA timezone and invoke an HTTP endpoint every Saturday.

Schedule API calls

General

What is the cron expression for every Saturday at 09:00?

0 9 * * 6. Paste this into Linux crontab, Vercel cron, node-cron, robfig/cron, or a Kubernetes CronJob to run a job every Saturday at 09:00; AWS EventBridge and Quartz need the six-field form.

How can I verify this cron actually runs every Saturday at 09:00?

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 9 * * 6 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