Cron example
Cron Every Quarter
0 0 1 1,4,7,10 *At 12:00 AM, on day 1 of the month, only in January, April, July, and October
Open in the cron expression generatorThe same four dates a month step produces, written as a list: 1 January, 1 April, 1 July and 1 October. Spelling the months out costs a few characters and buys two things — the reader sees the actual quarters without doing arithmetic, and the schedule survives being moved to a fiscal year that starts somewhere else.
By NaveenKumar T · Updated · 5-field crontab expression
What each field means
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | Minute 0 |
| Hour | 0 | Hour 0 |
| Day of month | 1 | Day 1 |
| Month | 1,4,7,10 | January, April, July and October |
| Day of week | * | Every day of the week |
Next 5 run times
Computing the next runs in your timezone…
Why the list form is worth the extra characters
A month step and this list are functionally identical for calendar quarters, and cron treats them the same way. The difference is entirely about the humans who maintain the crontab: a list makes the four months explicit, so nobody has to remember that steps count from January or verify that the phase is what they expected.
It also degrades better under edits. Changing a fiscal year start in a list means editing the four numbers; doing it with a step means switching to an offset range and re-reasoning about where the sampling begins. For a job that runs four times a year, clarity is worth more than brevity.
Fiscal quarters that do not start in January
A fiscal year beginning in April is 0 0 1 1,4,7,10 * shifted by nothing at all — the months happen to coincide. A fiscal year beginning in February is 2,5,8,11; one beginning in March is 3,6,9,12. Most crons also accept three-letter month names, so 0 0 1 JAN,APR,JUL,OCT * is legal and reads unambiguously.
Keep the day of month at 1. Quarterly work is nearly always about the period that just ended, and computing that range inside the job — rather than encoding it in the schedule — means the same command works whether it runs at the start of the quarter, a day late after an outage, or manually during a backfill.
Making four-times-a-year jobs reliable
A quarterly job has almost no opportunities to prove it still works. Credentials expire, paths move, a dependency is upgraded, and the next run is three months away. Treat every execution as a deployment: alert on both failure and absence, keep the job runnable by hand with the same arguments, and test it against a dry-run flag whenever the surrounding code changes.
If the reporting cadence is monthly rather than quarterly, the first of the month is the schedule to use. If it is annual, January 1 applies the same principles with even fewer chances to catch a problem.
Build a variant of this schedule with dropdowns and check the next ten runs before you install it.
Open the cron generatorRelated cron examples
Browse every schedule on the cron expression generator, read the cron expression syntax guide for the rules behind the five fields, or the developer tools guides for the longer explanations.