Run Jobs Tuesdays and Thursdays at 8 AM | CronBase

cron expression Standard
$ 0 8 * * 2,4

Every Tuesday and Thursday morning at eight o'clock.

The `0 8 * * 2,4` cron expression schedules a task to run automatically every Tuesday and Thursday at exactly 8:00 AM. This bi-weekly, mid-week cadence is highly effective for generating operational reports, starting morning data synchronization pipelines, or executing routine database maintenance without interfering with weekend or Monday-morning system deployments.

Minute
0
Hour
8
Day of Month
*
Month
*
Day of Week
2,4

Next 5 Runs

  • in 3d 21h
  • in 5d 21h
  • in 10d 21h
  • in 12d 21h
  • in 17d 21h

* Tools

Code & Implementations

nodejs
const cron = require('node-cron');

// Schedule task for Tuesday and Thursday at 8:00 AM
// Standard cron syntax: '0 8 * * 2,4'
const task = cron.schedule('0 8 * * 2,4', () => {
    console.log(`[${new Date().toISOString()}] Initiating scheduled bi-weekly report generation.`);
    try {
        generateReports();
    } catch (error) {
        console.error('Failed to execute scheduled report task:', error);
    }
}, {
    scheduled: true,
    timezone: "America/New_York"
});

function generateReports() {
    // Production-ready business logic goes here
    console.log("Reports generated successfully.");
}
Setup notes

Install node-cron using 'npm install node-cron' and run this script as a daemon process using a manager like PM2 to ensure high availability.

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 8 ? * 2,4 *)

Systemd Timer

OnCalendarTue,Thu *-*-* 08:00:00

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

[Timer]
OnCalendar=Tue,Thu *-*-* 08:00:00
Persistent=true

[Install]
WantedBy=timers.target

Frequently Asked Questions

How do I handle daylight saving time shifts for this 8:00 AM job?

If your system runs on UTC, the job will shift relative to your local time when DST starts or ends. To maintain a strict 8:00 AM local time, run your cron engine within a timezone-aware scheduler (like node-cron or Kubernetes with spec.timeZone) set to your local timezone.

Will this cron expression run on holidays if they fall on a Tuesday or Thursday?

Yes, standard cron does not have built-in awareness of public holidays. If you need to skip holidays, you must implement a check within your application logic to verify if the current date is a holiday and exit gracefully.

What happens if a previous Tuesday run is still running when Thursday 8:00 AM arrives?

Standard cron will launch the Thursday job regardless of the Tuesday job's status. To prevent concurrent executions, use locking mechanisms such as flock in Bash, a distributed lock (e.g., Redis), or set concurrencyPolicy: Forbid in Kubernetes.

How does day-of-week numbering work across different cron engines for 2,4?

In standard cron, 2 represents Tuesday and 4 represents Thursday. While most modern systems (like Vixie cron, Go, and Kubernetes) agree on this, some legacy systems might treat 1 as Sunday. Always verify your specific environment's cron documentation.

Can I run this job on Tuesdays and Thursdays only during specific months?

Yes, you can replace the fourth field (month) with specific months. For example, '0 8 * 1-6 2,4' will run the job at 8:00 AM on Tuesdays and Thursdays only from January through June.

* Explore

Related expressions you might need

Was this helpful?

Last verified: