Schedule Weekly Monday Morning Tasks | CronBase

cron expression Standard
$ 0 7 * * 1

Every week on Monday morning at seven o'clock.

This cron expression schedules a task to run once a week on Monday mornings at exactly seven o'clock. It is commonly used by operations teams to trigger weekly database maintenance, generate weekly business intelligence reports, warm up application caches before the workweek starts, or dispatch weekly summary emails to users.

Minute
0
Hour
7
Day of Month
*
Month
*
Day of Week
1

Next 5 Runs

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

* Tools

Code & Implementations

nodejs
const cron = require('node-cron');
const { exec } = require('child_process');

console.log('Registering weekly Monday morning cron runner...');

// Schedule task to run at 07:00 every Monday
const task = cron.schedule('0 7 * * 1', () => {
  console.log(`[${new Date().toISOString()}] Initiating weekly report compilation...`);
  
  exec('/usr/bin/node /app/scripts/generate-weekly-reports.js', (error, stdout, stderr) => {
    if (error) {
      console.error(`[ERROR] Report generation failed: ${error.message}`);
      return;
    }
    if (stderr) {
      console.warn(`[WARN] Standard error output: ${stderr}`);
    }
    console.log(`[SUCCESS] Reports sent successfully: ${stdout.trim()}`);
  });
}, {
  scheduled: true,
  timezone: "UTC"
});
Setup notes

Install the node-cron package using 'npm install node-cron'. Ensure your application process is kept alive using a process manager like PM2 to guarantee execution.

Partner UptimeRobot

Keep this cron job monitored 24/7

UptimeRobot alerts you the moment a scheduled job stops responding. Free plan monitors up to 50 endpoints — no credit card required.

Platform Equivalents

AWS EventBridge

Standard cron expressions often need conversion for AWS EventBridge schedules.

EventBridge Rule
cron(0 7 ? * 1 *)

Systemd Timer

OnCalendarMon *-*-* 07:00:00

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

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

[Install]
WantedBy=timers.target

Frequently Asked Questions

How does Daylight Saving Time affect a Monday 7:00 AM cron job?

If your server runs on a timezone that observes DST, the job might run twice or be skipped during transition Sundays. To prevent this, run your servers and cron engines on UTC, which does not observe DST.

What happens if the server is offline at Monday 7:00 AM?

Standard cron does not retroactively run missed jobs. If your server is offline, the task is skipped until the next Monday. Use tools like anacron, systemd timers with Persistent=true, or Kubernetes CronJobs with startingDeadlineSeconds to handle offline recovery.

Is the day-of-week value 1 always interpreted as Monday?

Yes, in standard POSIX/Linux cron dialects, 1 represents Monday, and 7 or 0 represents Sunday. However, some systems like BSD or specific scheduler libraries might interpret 1 as Sunday. Always verify your specific scheduler's dialect documentation.

How can I test this cron schedule without waiting until Monday?

You can temporarily shift the cron expression to run a few minutes in the future (e.g., `*/5 * * * *`) to verify the script execution, or trigger the script manually directly from the command line while keeping the cron configuration intact.

Can I run this job on both Monday and Friday at 7:00 AM?

Yes, you can modify the day-of-week field to include multiple days using a comma. The expression `0 7 * * 1,5` will run the job at 7:00 AM on both Monday (1) and Friday (5).

* Explore

Related expressions you might need

Was this helpful?

Last verified: