Run Every Tuesday at 9 AM Schedule | CronBase

cron expression Standard
$ 0 9 * * 2

Every Tuesday morning at nine AM

The `0 9 * * 2` cron expression schedules a task to execute automatically every Tuesday at exactly 9:00 AM. This weekly cadence is highly effective for kicking off business-hours processes, generating weekly status summaries, dispatching team reminders, or performing routine maintenance tasks that require weekly attention during the workweek.

Minute
0
Hour
9
Day of Month
*
Month
*
Day of Week
2
How it works

Next 5 Runs

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

* Tools

Code & Implementations

Bash
#!/usr/bin/env bash

# Ensure only one instance of the script runs at a time
LOCKFILE="/var/tmp/tuesday_weekly_job.lock"
exec 9>>"$LOCKFILE"
if ! flock -n 9; then
    echo "[$(date)] Job is already running. Exiting." >&2
    exit 1
fi

echo "[$(date)] Starting weekly Tuesday maintenance task..."

# Your production task here
if /usr/local/bin/run-weekly-report >> /var/log/tuesday_job.log 2>&1; then
    echo "[$(date)] Job completed successfully." 
else
    echo "[$(date)] Job failed! Sending alert..." >&2
    # Add alerting logic here (e.g., curl to Slack webhook)
    exit 1
fi
Setup notes

Add this script to your crontab by running 'crontab -e' and appending: 0 9 * * 2 /path/to/your/script.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 9 ? * 2 *)

Systemd Timer

OnCalendarTue *-*-* 09:00:00

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

[Timer]
OnCalendar=Tue *-*-* 09:00:00
Persistent=true

[Install]
WantedBy=timers.target

Last verified:

Frequently Asked Questions

How does Daylight Saving Time (DST) affect the Tuesday 9:00 AM execution?

If your server uses a local timezone that observes DST, the job will execute at 9:00 AM local time, but the interval between executions may vary by one hour during transition weeks. To maintain a strict 168-hour interval, configure your cron daemon or application scheduler to run in UTC.

What happens if the server is offline or asleep at Tuesday 9:00 AM?

Standard system cron will skip the execution entirely. For critical tasks, use a utility like `anacron` (which runs missed jobs when the system boots) or implement a custom state-check mechanism in your application to detect missed executions.

How can I run this job on both Tuesday and Thursday at 9:00 AM?

You can modify the fifth field of the cron expression to include a list of days. The updated expression `0 9 * * 2,4` will trigger the job on both Tuesdays (2) and Thursdays (4) at 9:00 AM.

How can I prevent multiple instances of this weekly job from running concurrently?

Use a locking wrapper like `flock` in Bash, or implement distributed locking using Redis (Redlock) or database locks inside your application code to ensure that slow-running executions do not overlap if a previous run hangs.

Is there a way to test or dry-run this specific schedule before deploying it to production?

Yes, you can use parsing libraries in your language of choice (such as `croniter` in Python or `cron-parser` in Node.js) to programmatically compute and print the next five execution dates to verify the schedule matches your expectations.

* Explore

Related expressions you might need

Last verified:

Was this helpful?