Run Mon Wed Fri Tasks at 10 AM | CronBase

cron expression Standard
$ 0 10 * * 1,3,5

At ten o'clock in the morning on Mondays, Wednesdays, and Fridays.

This cron expression schedules a task to run at exactly 10:00 AM every Monday, Wednesday, and Friday. It is commonly used for recurring mid-week operational processes, automated reporting, data synchronization pipelines, and tri-weekly maintenance routines that need to execute during or just before standard business hours.

Minute
0
Hour
10
Day of Month
*
Month
*
Day of Week
1,3,5

Next 5 Runs

  • in 53m 11s
  • in 3d 0h
  • in 5d 0h
  • in 7d 0h
  • in 10d 0h

* Tools

Code & Implementations

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

// Schedule task to run at 10:00 AM on Mondays, Wednesdays, and Fridays
const schedule = '0 10 * * 1,3,5';

console.log(`Initializing cron runner with schedule: ${schedule}`);

const task = cron.schedule(schedule, () => {
  const timestamp = new Date().toISOString();
  console.log(`[${timestamp}] Starting scheduled tri-weekly data pipeline...`);
  
  exec('/usr/local/bin/pipeline-trigger.sh', (error, stdout, stderr) => {
    if (error) {
      console.error(`[${timestamp}] Execution Error: ${error.message}`);
      return;
    }
    if (stderr) {
      console.warn(`[${timestamp}] Execution Warning: ${stderr}`);
    }
    console.log(`[${timestamp}] Execution Output: ${stdout}`);
  });
}, {
  scheduled: true,
  timezone: "America/New_York"
});
Setup notes

Install the node-cron package using 'npm install node-cron' and run this script using Node.js in a daemonized process manager like PM2.

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 10 ? * 1,3,5 *)

Systemd Timer

OnCalendarMon,Wed,Fri *-*-* 10:00:00

my-task.timer
[Unit]
Description=Timer for cron expression: 0 10 * * 1,3,5

[Timer]
OnCalendar=Mon,Wed,Fri *-*-* 10:00:00
Persistent=true

[Install]
WantedBy=timers.target

Frequently Asked Questions

Does this schedule shift during Daylight Saving Time (DST) changes?

Yes, if your cron daemon or host system is configured to run in a local timezone that observes DST (like America/New_York or Europe/London). If your host runs on UTC, the execution will remain strictly aligned to 10:00 AM UTC, meaning its local time equivalent will shift twice a year.

How can I prevent jobs from overlapping if a run takes longer than 24 hours?

Since this schedule runs every 48 hours between weekdays (Mon-Wed-Fri), any execution taking over 48 hours will overlap with the next run. Use locking mechanisms like Kubernetes 'concurrencyPolicy: Forbid', flock in Bash, or Redis-based distributed locks in application code to prevent concurrent execution.

What is the best way to test this cron schedule locally?

You can test the execution logic by temporarily changing the cron expression to run every minute (e.g., '* * * * *') in a development environment, or by calling the underlying script/handler manually. Tools like crontab generator websites can also verify your syntax before deployment.

Why does my Monday run take significantly longer than the Wednesday run?

The Monday run occurs after a 72-hour weekend gap, whereas Wednesday and Friday runs occur after 48-hour gaps. Monday runs typically have to process a larger volume of accumulated queue messages, transaction records, or user signups that occurred over the weekend.

How do I modify this schedule to run on weekends instead?

To run only on weekends at 10:00 AM, change the last field of the cron expression from '1,3,5' (Monday, Wednesday, Friday) to '6,0' or '6,7' depending on your cron environment's Sunday representation (e.g., '0 10 * * 6,0').

* Explore

Related expressions you might need

Was this helpful?

Last verified: