Every Saturday Cron Expression
Runs every Saturday at midnight.
0 0 * * 6 in POSIX cron
Expression
0 0 * * 6Try it in the tester →Field Breakdown
How It Works
Day-of-week pinned to 6 — fires only on Saturdays at 00:00.
Example Run Times
- Sat 00:00:00
- Sat 00:00:00 (+7d)
- Sat 00:00:00 (+14d)
- Sat 00:00:00 (+21d)
- Sat 00:00:00 (+28d)
Frequently Asked Questions
How do I run on both Saturday and Sunday?
Use `0 0 * * 0,6` — see the `every-weekend` entry.
0 0 * * 6 in Quartz / Spring
This trigger fires at 00:00 every Saturday — the opening bell of the weekend maintenance window. In Quartz's numbering, Saturday is day 7, the top of the 1-7 range that begins with Sunday.
Quartz / Spring expression
0 0 0 ? * 7Try it in the tester →At 00:00:00 on Sat
Unix / POSIX equivalent: 0 0 * * 6
@Scheduled parser uses 0–7 with Monday = 1 — numeric day values mean different days in the two. The day names (MON, FRI, MON-FRI) are identical in both and safer to copy between them.Field Breakdown
Using It with Quartz / Spring
Saturday midnight is where teams park the work too disruptive for a weeknight: full search reindexes, statistics recomputation across large tables, storage compaction, restore-drill tests. With most users gone until Monday, a job started here can run for many hours without anyone feeling it. Attach the expression via @Scheduled(cron = "0 0 0 ? * 7") or a Quartz CronTrigger, and pair genuinely long jobs with @DisallowConcurrentExecution so an unusually slow week can never overlap into a second copy.
Quartz-Specific Notes
- →Unix cron writes Saturday as 6 (and accepts 0 or 7 for Sunday); Quartz writes Saturday as 7 and Sunday as 1. A 7 carried over from a crontab that meant Sunday will fire a day early here.
- →SAT is accepted as a literal day name and dodges the numbering question entirely.
- →Saturday 00:00 starts roughly a 54-hour low-traffic runway before Monday 06:00 — generous, but still finite; a job that grows past it will eventually collide with Monday morning.
Frequently Asked Questions
In crontab 7 means Sunday — does Quartz read it the same way?
No. Quartz day-of-week runs strictly 1-7 with Sunday as 1, so 7 is Saturday. There is no dual-coding of Sunday as both 0 and 7 like Unix cron has.
How do I cover both weekend days with one trigger?
List them: 0 0 0 ? * 1,7 fires at midnight on Sunday and Saturday. The name form 0 0 0 ? * SAT,SUN reads better in a code review.
Will a Saturday job survive the spring-forward clock change?
Midnight itself is unaffected in most zones, where the skipped hour is 02:00-03:00 — but if your Saturday job is still running at that moment, wall-clock timestamps in its logs will jump an hour even though execution never paused.
0 0 * * 6 in AWS EventBridge
This rule opens the weekend maintenance window: one fire per week at 00:00 UTC Saturday, encoded as day-of-week 7 — the last slot in EventBridge's Sunday-through-Saturday week. Fifty-two chances a year to do the disruptive work nobody wants on a weekday.
AWS EventBridge expression
cron(0 0 ? * 7 *)Try it in the tester →At 00:00 UTC on Sat
Unix / POSIX equivalent: 0 0 * * 6
Field Breakdown
Using It with AWS EventBridge
Hang the heavyweight, contention-sensitive jobs on it: a full OpenSearch reindex that would degrade query latency during the week, a Fargate task that rewrites large S3 datasets into fresh Parquet partitions, or a load test fired at the staging stack while real traffic is at its weekly low. Since the next business day is roughly 48 hours away, this is also where teams schedule anything with a long validation tail — the Saturday run finishes, Sunday's checks confirm it, and Monday opens clean.
AWS-Specific Notes
- →EventBridge's 7 is Saturday; in Linux cron Saturday is 6 and 7 wraps around to Sunday, so the same digit names different days on the two systems.
- →00:00 UTC Saturday is Friday evening across the Americas — a maintenance window scoped "Saturday" in UTC starts before the US workweek has fully ended.
- →Traffic lows are workload-specific: consumer products often peak on weekends, in which case this slot is the worst possible choice rather than the safest.
Frequently Asked Questions
How do I cover both weekend days with one rule?
List the two ends of the EventBridge week: cron(0 0 ? * 1,7 *) fires at 00:00 UTC on Sunday (1) and Saturday (7). The names SAT,SUN work identically and read better.
My ported crontab entry 0 0 * * 6 started firing on Fridays — why?
In EventBridge 6 means Friday, not Saturday, because the week is numbered from Sunday=1. Saturday is 7 (or the name SAT), which is exactly what this expression uses.
0 0 * * 6 in GitHub Actions
Day-of-week 6 is Saturday, so this fires once a week at 00:00 UTC as the weekend opens. It is the classic slot for work too heavy or too disruptive for a weekday: the job has roughly 48 quiet hours before anyone needs the repository again.
GitHub Actions expression
0 0 * * 6Try it in the tester →At 00:00 UTC on Sat
Unix / POSIX equivalent: 0 0 * * 6
Field Breakdown
Using It with GitHub Actions
Set up as on: schedule: - cron: "0 0 * * 6" on the default branch, Saturday-midnight schedules carry the big batch work: exhaustive cross-platform test matrices that would clog weekday CI, regenerating large datasets or search indexes, rehearsing data migrations against a copy of production, or compacting and pruning a week's worth of build artifacts. Results are sitting there by Monday morning with two days of slack for reruns if something breaks. From the US perspective the kickoff actually happens Friday evening — 19:00 or 20:00 Eastern — right as the team signs off.
GitHub-Specific Notes
- →Saturday 00:00 UTC lands on Friday evening across the Americas, so on-call engineers there will see any failure alerts on their Friday night, not their Saturday.
- →Even with the whole weekend available, each job on a GitHub-hosted runner is still capped at 6 hours of execution — split marathon work across multiple jobs or a matrix rather than one giant job.
- →A Saturday failure discovered Monday leaves no slack; have the workflow report success or failure somewhere a human will look over the weekend if the Monday deadline is real.
Frequently Asked Questions
How do I run on both weekend days, not just Saturday?
List both days: 0 0 * * 0,6 covers Sunday and Saturday at midnight UTC — or spell it 0 0 * * SAT,SUN with the documented day names.
Will this fire even during weeks when nobody pushes anything?
Yes — scheduled runs do not depend on new commits; the workflow executes against whatever the default branch contained at fire time. The only push-related caveat applies to public repositories left inactive for extended periods, where GitHub eventually suspends schedules.