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

Next 5 Runs

  • in 2d 20h
  • in 9d 20h
  • in 16d 20h
  • in 23d 20h
  • in 30d 20h

* Tools

Code & Implementations

nodejs
const cron = require('node-cron');
const logger = require('./logger');

// Schedule the job using standard cron syntax for Monday at 6:00 AM
cron.schedule('0 6 * * 1', async () => {
  logger.info('Starting weekly system maintenance task...');
  try {
    // Business logic for weekly report generation or cache clear
    await runWeeklyCleanup();
    logger.info('Weekly maintenance completed successfully.');
  } catch (error) {
    logger.error('Weekly maintenance failed to execute:', error);
  }
}, {
  scheduled: true,
  timezone: "UTC"
});
Setup notes

Install node-cron using 'npm install node-cron'. This script configures the job to run in the UTC timezone to prevent daylight saving time discrepancies.

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

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

Was this helpful?

Last verified: