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

Next 5 Runs

  • in 3d 23h
  • in 10d 23h
  • in 17d 23h
  • in 24d 23h
  • in 31d 23h

* Tools

Code & Implementations

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

console.log('Scheduler initialized. Waiting for Tuesday 9:00 AM execution...');

// Schedule task to run every Tuesday at 9:00 AM
cron.schedule('0 9 * * 2', async () => {
    console.log(`[${new Date().toISOString()}] Initiating weekly report task...`);
    try {
        await runWeeklyTask();
        console.log(`[${new Date().toISOString()}] Weekly task finished successfully.`);
    } catch (error) {
        console.error(`[${new Date().toISOString()}] Job execution failed:`, error);
        // Integrate with Sentry, PagerDuty, or Slack here
    }
}, {
    scheduled: true,
    timezone: "Etc/UTC"
});

function runWeeklyTask() {
    return new Promise((resolve, reject) => {
        exec('/usr/local/bin/generate-reports', (error, stdout, stderr) => {
            if (error) {
                return reject(error);
            }
            resolve(stdout);
        });
    });
}
Setup notes

Install 'node-cron' using npm. Run this script in a background process runner like PM2 to guarantee continuous execution.

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

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

Was this helpful?

Last verified: