★ Cron cheat sheet
Cron Expression: Every Weekend
Saturday and Sunday at midnight. Common for heavy batch jobs that should avoid weekday traffic.
- Runs in your browser
- No signup
The expression
0 0 * * 6,0
At 00:00 on Saturday and Sunday.
- 0Minute
- 0Hour
- *Day of month
- *Month
- 6,0Day of week
✓ Valid 5-field cron
Quick picks
Typing by hand. Pick a pattern above to build one with inputs instead.
In plain English
At 00:00 on Saturday and Sunday.
Next 10 runs
Paste it into your platform
Time zone: UTC
0 0 * * 6,0 /usr/local/bin/my-job >> /var/log/my-job.log 2>&1
- OKRuns in the server’s local time zone. cronie (RHEL, Fedora) accepts a CRON_TZ= line above the job; Debian’s cron does not.
- Heads-upEscape % as \% in the command: an unescaped % ends the command and starts stdin.
- Heads-upcron runs with a minimal PATH and no login shell. Use absolute paths and redirect output, or failures disappear.
- Linux crontab docs ↗
Cron jobs failing silently?
I build background job systems with retries, alerting and dashboards, so you hear about failures before your customers do.
What 0 0 * * 6,0 means
Field by field:
| Field | Value | Matches |
|---|---|---|
| Minute | 0 | 0 |
| Hour | 0 | 0 |
| Day of month | * | any |
| Month | * | any |
| Day of week | 6,0 | Sunday, Saturday |
Gotchas
- 6,0 lists Saturday then Sunday; 0,6 and SAT,SUN mean the same. 6-7 also works in Vixie cron, since 7 is Sunday.
- AWS uses 7 and 1 for Saturday and Sunday, so the AWS tab converts it.
Does it run everywhere?
Checked against each platform's rules, assuming UTC:
| Platform | Verdict | Why |
|---|---|---|
| Linux crontab | Works, with a catch | Escape % as \% in the command: an unescaped % ends the command and starts stdin. |
| GitHub Actions | Works, with a catch | Runs at minute 0 are the most likely to be delayed or dropped under load. GitHub suggests another minute, e.g. 17. |
| Vercel | Works, with a catch | Vercel now labels Cron Jobs “legacy” in favour of Vercel Schedules, which add time zones. Existing crons keep working. |
| AWS EventBridge | Works | Six fields: the year is added at the end, and one of day-of-month / day-of-week must be ?. |
| Kubernetes | Works, with a catch | Without timeZone, the schedule uses the kube-controller-manager’s local zone. TZ= or CRON_TZ= inside schedule is rejected from v1.29. |
Questions engineers actually ask
What is the cron for weekends only?
Why not 6-0?
Why does my job run on days I didn't expect?
What time zone does cron use?
Other schedules
- Every Minute
* * * * * - Every 2 Minutes
*/2 * * * * - Every 5 Minutes
*/5 * * * * - Every 10 Minutes
*/10 * * * * - Every 15 Minutes
*/15 * * * * - Every 30 Minutes
*/30 * * * * - Every Hour
0 * * * * - Every 2 Hours
0 */2 * * * - Every 3 Hours
0 */3 * * * - Every 6 Hours
0 */6 * * * - Every 12 Hours
0 */12 * * * - Twice a Day
0 9,21 * * * - Every Day at Midnight
0 0 * * * - Every Day at 9am
0 9 * * * - Every Day at Noon
0 12 * * * - Every Weekday
0 0 * * 1-5 - Every Weekday at 9am
0 9 * * 1-5 - Every Monday
0 0 * * 1 - Every Friday at 5pm
0 17 * * 5 - Every Sunday at Midnight
0 0 * * 0 - Every Week
0 0 * * 0 - Every 15th of the Month
0 0 15 * * - First Day of the Month
0 0 1 * * - Last Day of the Month
0 0 28-31 * * - Every Month
0 0 1 * * - Every Quarter
0 0 1 1,4,7,10 * - Every Year
0 0 1 1 * - Every Hour During Business Hours
0 9-17 * * 1-5 - Every 30 Minutes During Business Hours
*/30 9-17 * * 1-5
Or build your own in the cron expression builder.
More from the workbench
Fine print
Tools: on the house.
Engineer: by the hour.
Infra that doesn't page you at 3am costs a little more. I build background job systems with retries, alerting and dashboards.
I'm Himanshu, an AI and full-stack engineer. I build MVPs, AI agents and the growth plumbing around them for early-stage startups.
