Run Morning Jobs Every Weekday at 6 AM | CronBase

cron expression Standard
$ 0 6 * * 1-5

Every morning from Monday through Friday at six o'clock.

This cron expression schedules a task to run automatically at 6:00 AM every weekday, from Monday through Friday. It is commonly used in enterprise environments to trigger morning database warmups, generate daily business intelligence reports, and kick off early-morning system checks before the standard business day begins.

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

Next 5 Runs

  • in 1d 9h
  • in 2d 9h
  • in 3d 9h
  • in 4d 9h
  • in 5d 9h

* Tools

Code & Implementations

Bash
#!/bin/bash
# Morning weekday execution script
set -euo pipefail
LOG_FILE="/var/log/morning_sync.log"

echo "$(date -u) - Starting morning weekday job" >> "$LOG_FILE"

# Execute core system logic
if /usr/local/bin/run-warmups.sh >> "$LOG_FILE" 2>&1; then
    echo "$(date -u) - Job completed successfully" >> "$LOG_FILE"
else
    echo "$(date -u) - Job failed" >> "$LOG_FILE"
    exit 1
fi
Setup notes

Save this script to /usr/local/bin/morning-job.sh, make it executable with 'chmod +x', and register it in your crontab using '0 6 * * 1-5 /usr/local/bin/morning-job.sh'.

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-5 *)

Systemd Timer

OnCalendarMon..Fri *-*-* 06:00:00

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

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

[Install]
WantedBy=timers.target

Last verified:

Frequently Asked Questions

How does daylight saving time affect this 6 AM schedule?

If your system timezone is set to a local zone that observes DST, the execution time will shift relative to UTC. In the spring transition, the job runs normally, but during autumn transitions, it might execute twice if the system does not handle duplicate hours. Running servers in UTC avoids this.

Why is the Monday run of this job taking significantly longer?

The Monday morning run is processing data accumulated over the entire weekend (Saturday and Sunday). Ensure your database queries, memory limits, and API integrations are optimized to handle three times the daily volume compared to mid-week runs.

Can I run this job on holidays that fall on weekdays?

Standard cron does not have built-in holiday awareness. The job will execute on weekday holidays (like Thanksgiving or Christmas) unless you implement custom logic inside your application code or wrapper script to check a holiday calendar and exit early.

How can I test this cron schedule without waiting until 6 AM?

You can temporarily modify the schedule in your development environment to run every minute (using `* * * * *`), or use a tool like `croniter` in Python or `go-cron` to simulate execution times. Alternatively, trigger the underlying script manually to verify its functionality.

What is the best way to monitor if this job failed to run?

Implement an external monitoring service using a 'dead man's snitch' or heartbeat pattern. Have your script send an HTTP request to the monitoring service at the end of its run. If the service does not receive the ping by 6:15 AM, it triggers an alert.

* Explore

Related expressions you might need

Last verified:

Was this helpful?