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
*
How it works

Next 5 Runs

  • in 67d 3h
  • in 159d 3h
  • in 249d 3h
  • in 340d 3h
  • in 432d 3h

* Tools

Code & Implementations

Bash
#!/usr/bin/env bash
# Ensure script is executable and fails fast on errors
set -euo pipefail

# Validate that the cron entry exists in the user's crontab
CRON_JOB="0 0 1 1,4,7,10 * /usr/local/bin/run-quarterly-audit.sh"
(crontab -l 2>/dev/null | grep -F "$CRON_JOB") || {
    echo "Installing quarterly cron job..."
    (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab -
}
Setup notes

Save this script as setup-cron.sh, run chmod +x setup-cron.sh, and execute it to register the standard quarterly task in the system crontab.

Last verified:

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

Last verified:

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

Last verified:

Was this helpful?