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
How it works

Next 5 Runs

  • in 1d 13h
  • in 3d 13h
  • in 5d 13h
  • in 8d 13h
  • in 10d 13h

* Tools

Code & Implementations

Bash
#!/usr/bin/env bash
# Production deployment script to install the cron job safely
set -euo pipefail

CRON_SCHEDULE="0 10 * * 1,3,5"
JOB_COMMAND="/usr/local/bin/run-triweekly-sync.sh >> /var/log/cron_sync.log 2>&1"
CRON_LINE="${CRON_SCHEDULE} ${JOB_COMMAND}"

echo "Installing cron job for Monday, Wednesday, Friday at 10:00 AM..."

# Ensure we do not duplicate the cron job
(crontab -l 2>/dev/null | grep -Fv "${JOB_COMMAND}" ; echo "${CRON_LINE}") | crontab -

echo "Cron job successfully installed and verified."
Setup notes

Save this script as setup_cron.sh, make it executable with 'chmod +x setup_cron.sh', and run it with appropriate user privileges to update your crontab.

Last verified:

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

Last verified:

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

Last verified:

Was this helpful?