Skip to content

Cron Every Weekend (Saturday and Sunday)

The weekend is two values in the day-of-week field, 6 (Saturday) and 0 (Sunday). This one runs at 10:00 AM on both days.

minute · hour · day · month · weekday

Build it with controlsWeekly at 10:00 · 2 days
On

In plain English

At 10:00 AM on Saturday and Sunday.

Tap a field to see what it means.

A week2 runs
Mon–Tue–Wed–Thu–Fri–Sat1Sun1
Next run
—
Usually every
—
Time zone
Yours
Convert to another schedulerQuartz, Spring, AWS, GitHub Actions, Kubernetes
The same schedule in every dialect
Standard cron0 10 * * 0,6current
Quartz0 0 10 ? * SUN,SAT
Spring0 0 10 * * SAT,SUN
AWS EventBridgecron(0 10 ? * SUN,SAT *)
GitHub Actions0 10 * * 0,6
Kubernetes0 10 * * 0,6
About Standard cronTime zone, day numbering, daylight saving
  • Runs in the machine’s local time zone; cronie also reads CRON_TZ at the top of the crontab.
  • Five fields, then the command. Day of week is 0–7 (0 and 7 are Sunday) or SUN–SAT; months 1–12 or JAN–DEC.
  • When both day fields are set, a day that matches either one runs.
  • Daylight saving: a job at a fixed time in a skipped hour runs right after the change, and one in a repeated hour runs once. Jobs with * in the minute or hour follow the clock.

Sources: crontab(5), cronie, cron(8), cronie, POSIX crontab.

How this works: Method, 10 sources, Checked against 1 worked example,

How this works

Method

The expression is read field by field with the rules of the scheduler you pick (ranges, lists, steps, names, @ macros, and L, W and # where it has them) into the values each field allows. The next runs come from stepping forward through the calendar in the chosen time zone, day by day and then time by time, using that scheduler’s rule for when both day fields are set and its documented rule for daylight saving (where it has none, a skipped time is skipped and a repeated one runs once). A conversion to another scheduler is parsed back and checked against the original before it is shown.

How it’s tested

One worked example for this page is checked by automated tests before every release: given the inputs, the tool must show the expected answer.

Changes

  • First version: plain English and the next runs for six schedulers, a builder, conversion between them, and 20 pages for common schedules.

How we make toolsReport a mistake

Worked example: 0 10 * * 0,6

Say the clock reads Wednesday 6 January 2027, 12:00 PM UTC. 0 10 * * 0,6 means “at 10:00 AM on Saturday and Sunday”, so the next five runs are Saturday 9 January 2027, 10:00 AM, Sunday 10 January 2027, 10:00 AM, Saturday 16 January 2027, 10:00 AM, Sunday 17 January 2027, 10:00 AM and Saturday 23 January 2027, 10:00 AM.

In UTC, where no clock change interrupts it, that comes to 2 runs a week and 104 in 2027.

Saturday and Sunday

Saturday is 6 and Sunday is 0 in the day-of-week field, so the weekend is the list 0,6 (or 6,0), not a range: 6-0 runs backwards and most crons reject it. 0 10 * * 0,6 runs at 10:00 AM on both days.

Linux cron also accepts 7 for Sunday, which makes 6-7 a valid range for the weekend. Kubernetes and GitHub document only 0–6, so 0,6 is the form that works everywhere, and SAT,SUN is clearer still.

In Quartz and AWS the numbers shift: Sunday is 1 and Saturday 7, so the weekend is 1,7. Names avoid the confusion in every dialect.

Pitfalls

  • 6-0 is a backwards range: Linux cron’s cronie happens to read x-0 as x-7, but Kubernetes and Spring reject it.
  • 7 for Sunday is an error in Kubernetes, whose cron library only accepts 0–6.
  • Saturday night in your time zone may already be Sunday on a UTC server.

“Every Weekend” in every scheduler

The same schedule written for each scheduler, converted and checked by this tool. A dash means that scheduler can’t express it in one expression; the note says why.

The same schedule written for each scheduler, converted and checked by this tool. A dash means that scheduler can’t express it in one expression; the note says why.
SchedulerExpressionNote
Standard Unix cron (Vixie cron, cronie)0 10 * * 0,6
Quartz Scheduler (Java)0 0 10 ? * SUN,SAT
Spring Framework @Scheduled0 0 10 * * SAT,SUN
Amazon EventBridge cron()cron(0 10 ? * SUN,SAT *)
GitHub Actions schedule0 10 * * 0,6
Kubernetes CronJob0 10 * * 0,6

Frequently Asked Questions

What is the cron for weekends only?

Put 0,6 or SAT,SUN in the day-of-week field: 0 10 * * 0,6 runs at 10 AM on Saturdays and Sundays.

Can I write 6-7?

In Linux cron, yes, since 7 is Sunday there. Kubernetes and GitHub Actions only document 0–6, so 0,6 is safer.

What is the weekend in Quartz?

1,7 or SAT,SUN, because Quartz counts Sunday as 1 and Saturday as 7: 0 0 10 ? * SAT,SUN.