Run Every Monday Morning at 6 AM | CronBase

cron expression Standard
$ 0 6 * * 1

Every week on Monday morning at six o'clock

The `0 6 * * 1` cron expression schedules a task to run once a week on Monday mornings at exactly 6:00 AM. This cadence is highly effective for preparing business dashboards, triggering weekly email digests, clearing temporary caches, or initiating weekly system health checks before the standard business workday begins.

Minute
0
Hour
6
Day of Month
*
Month
*
Day of Week
1
How it works

Next 5 Runs

  • in 1d 9h
  • in 8d 9h
  • in 15d 9h
  • in 22d 9h
  • in 29d 9h

* Tools

Code & Implementations

Bash
#!/usr/bin/env bash
# Safely append the weekly maintenance cron job to the user's crontab
(crontab -l 2>/dev/null; echo "0 6 * * 1 /usr/local/bin/weekly-cleanup.sh >> /var/log/weekly-cleanup.log 2>&1") | crontab -
Setup notes

Run this script on your target Linux server to install the cron job. Ensure the destination script /usr/local/bin/weekly-cleanup.sh exists and is marked executable.

Last verified:

Partner BetterStack

Monitor this schedule in production

Get alerted the moment this cron job fails, is late, or doesn't run. BetterStack tracks execution, duration, and output — no infrastructure required.

Platform Equivalents

AWS EventBridge

Standard cron expressions often need conversion for AWS EventBridge schedules.

EventBridge Rule
cron(0 6 ? * 1 *)

Systemd Timer

OnCalendarMon *-*-* 06:00:00

my-task.timer
[Unit]
Description=Timer for cron expression: 0 6 * * 1

[Timer]
OnCalendar=Mon *-*-* 06:00:00
Persistent=true

[Install]
WantedBy=timers.target

Last verified:

Frequently Asked Questions

How does daylight saving time affect a Monday 6 AM schedule?

If your system runs on local time, the job may execute twice or be skipped entirely during spring/autumn clock shifts. To guarantee consistency, configure your cron daemon or application scheduler to run on Coordinated Universal Time (UTC).

What happens if a Monday is a public holiday?

Standard cron does not natively support holiday calendars. If your Monday tasks should not run on holidays, you must implement a check at the beginning of your execution script to verify the business calendar and exit early if necessary.

How can I prevent duplicate executions if a job runs longer than expected?

Since this job runs weekly, a runtime exceeding 7 days is rare but possible if a process hangs. Implement flock/lockfile mechanisms in Bash, use Redis-based distributed locks (like Redlock) in microservices, or set the Kubernetes concurrencyPolicy to Forbid.

Can I run this on a different day of the week instead?

Yes, you can change the final field of the cron expression. For example, replacing the '1' with '2' shifts the execution to Tuesday at 6:00 AM, while '5' shifts it to Friday at 6:00 AM.

How should I monitor this weekly job to ensure it actually ran?

Because weekly jobs run infrequently, silent failures can go unnoticed for a long time. Use active push-based monitoring like Healthchecks.io or Dead Man's Snitch, which alert you if a ping is not received by 6:05 AM every Monday.

* Explore

Related expressions you might need

Last verified:

Was this helpful?