Quarterly Cron Schedule: 0 0 1 1,4,7,10 * | CronBase

cron expression Standard
$ 0 0 1 1,4,7,10 *

At midnight on the first day of January, April, July, and October, marking the exact start of each calendar quarter.

This cron expression executes a task at midnight on the first day of January, April, July, and October. It is the standard industry schedule for triggering quarterly operations, including financial reporting, taxation calculations, long-term database archiving, and compliance audits, ensuring tasks run precisely at the beginning of each fiscal quarter.

Minute
0
Hour
0
Day of Month
1
Month
1,4,7,10
Day of Week
*

Next 5 Runs

  • in 19d 13h
  • in 111d 13h
  • in 201d 13h
  • in 292d 13h
  • in 384d 13h

* Tools

Code & Implementations

nodejs
const cron = require('node-cron');
const logger = require('./logger');

// Schedule quarterly task: midnight on the 1st of Jan, Apr, Jul, Oct
cron.schedule('0 0 1 1,4,7,10 *', async () => {
    logger.info('Starting scheduled quarterly data archival process...');
    try {
        await runQuarterlyArchival();
        logger.info('Quarterly archival completed successfully.');
    } catch (error) {
        logger.error('Failed to execute quarterly task:', error);
        notifyOnCallTeam(error);
    }
}, {
    scheduled: true,
    timezone: "UTC"
});
Setup notes

Install node-cron via npm, then integrate this code block into your main server file to trigger background processing at the start of each quarter.

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 0 1 1,4,7,10 ? *)

Systemd Timer

OnCalendar*-01,04,07,10-01 00:00:00

my-task.timer
[Unit]
Description=Timer for cron expression: 0 0 1 1,4,7,10 *

[Timer]
OnCalendar=*-01,04,07,10-01 00:00:00
Persistent=true

[Install]
WantedBy=timers.target

Frequently Asked Questions

How do I handle timezone changes and Daylight Saving Time with this quarterly schedule?

To avoid skipped or duplicated executions during Daylight Saving Time transitions, configure your cron daemon or orchestrator to run in UTC. If local time must be used, ensure your execution logic is idempotent to handle potential double-runs safely.

What is the best way to monitor a job that runs only four times a year?

Do not rely solely on reactive alerts. Implement a 'dead-man's switch' heartbeat monitor that alerts you if the job fails to report execution within a narrow window around midnight of the target months, and run mock quarterly dry-runs in staging.

How can I prevent database lockups during heavy quarterly data aggregation?

Avoid running heavy aggregations on your primary transactional database. Stream data in small chunks, use pagination, or offload the processing entirely to a dedicated read-replica or analytical database to protect production availability.

Can I adjust this expression to run on the last day of the quarter instead?

Standard cron does not natively support 'last day of month' easily across different months (since March, June, September, and December have different lengths). It is highly recommended to run on the first day of the following month (January 1, April 1, July 1, October 1) as this expression does.

What happens if the server is offline when the quarterly execution time passes?

Standard cron will skip the execution entirely. For critical quarterly tasks, use an enterprise scheduler, Kubernetes CronJobs with a startingDeadlineSeconds policy, or an external queue system that can detect missed runs and trigger them manually.

* Explore

Related expressions you might need

Was this helpful?

Last verified: