Cron Expression for Every Weekend

Every weekend — twice a week
0 0 * * 6,0

Cron reads this as: at 00:00, on day-of-week Saturday and Sunday.

Next 5 runs

Computed in your browser's local time zone. Cron itself evaluates against the server's zone, which on most cloud hosts is UTC — see time zones & DST if that distinction matters here.

When to use this schedule

Midnight on Saturday and Sunday. Weekend windows are where heavy maintenance belongs — full reindexes, schema migrations, large backfills, anything that wants a quiet system and a tolerant audience.

What to watch out for

Sunday is 0 and Saturday is 6, so the weekend is 6,0 — which looks backwards and is easy to mistype as 0-6, quietly turning a weekend job into a daily one. SAT,SUN is harder to get wrong. Remember too that a long weekend job must still finish before Monday morning; if it might not, give it a hard timeout rather than letting it run into the working week.

The crontab line

0 0 * * 6,0 /usr/local/bin/your-job.sh >> /var/log/your-job.log 2>&1

Redirect the output somewhere you will actually read it — by default cron mails it, and on a host with no mail transport that means it is discarded. See the crontab guide for the surrounding syntax.

Related schedules

Variations on every weekend
ExpressionSchedule
0 0 * * SAT,SUNSame schedule, using names
0 2 * * 6Saturday only, at 02:00
0 0 * * 1-5Weekdays instead

Build your own

Need something this page does not cover? Compose it field by field in the visual builder, or paste an expression you already have into the explainer for a per-field breakdown. The examples library collects sixty schedules in one place, and the guides cover crontab syntax, time zones, troubleshooting and production practices.