Cron at End of Each Quarter

Schedule a cron job at the end of each fiscal quarter using 0 23 28-31 3,6,9,12 *. Field breakdown for quarterly close scheduling with date handling.

Cron Expression

0 23 28-31 3,6,9,12 *

Field Breakdown

FieldValueMeaning
Minute0At 0
Hour23At 23
Day of Month28-31From 28 to 31
Month3,6,9,12At March, June, September, December
Day of Week*Every day of the week (Sun–Sat)

Detailed Explanation

The cron expression 0 23 28-31 3,6,9,12 * schedules a task to run at 11 PM on the last few days of each quarter-ending month (March, June, September, December).

Field-by-field breakdown:

  • 0 (Minute): At minute 0. The task fires at the top of the hour.
  • 23 (Hour): At hour 23 (11 PM). The task runs near the end of the day to capture full-day data.
  • 28-31 (Day of Month): Days 28 through 31. This range covers the possible last days of the quarter-ending months.
  • 3,6,9,12 (Month): March, June, September, and December. These are the last months of Q1, Q2, Q3, and Q4 respectively.
  • * (Day of Week): Every day of the week. No restriction on the day.

This expression will fire on days 28-31 of each quarter-ending month, so you should add a shell guard to ensure it only runs on the actual last day: [ "$(date +\%d -d tomorrow)" = "01" ] && your_command. Without this guard, the task will run multiple times (e.g., on March 28, 29, 30, and 31). The quarter-ending months have different lengths: March has 31 days, June has 30, September has 30, and December has 31. The 11 PM timing ensures nearly complete data for the final day is captured. This expression is supported by standard cron on Linux/macOS, as well as cloud services like AWS CloudWatch, Google Cloud Scheduler, and GitHub Actions.

Use Case

Essential for triggering end-of-quarter financial close processes, generating quarterly earnings reports, and initiating quarterly tax filing preparation workflows.

Try It — Interactive Builder

at min 0, at hour 23, on day 28-31, in month 3,6,9,12

**/5*/10*/15*/300
**/2*/3*/6*/120
*1151,15*/2
*11,4,7,101,7
*1-50,615

Next 10 Executions

1.Sat, Mar 28, 2026, 11:00 PM
2.Sun, Mar 29, 2026, 11:00 PM
3.Mon, Mar 30, 2026, 11:00 PM
4.Tue, Mar 31, 2026, 11:00 PM
5.Sun, Jun 28, 2026, 11:00 PM
6.Mon, Jun 29, 2026, 11:00 PM
7.Tue, Jun 30, 2026, 11:00 PM
8.Mon, Sep 28, 2026, 11:00 PM
9.Tue, Sep 29, 2026, 11:00 PM
10.Wed, Sep 30, 2026, 11:00 PM

Ctrl+Shift+C to copy expression

Customize this expression