Cron job every quarter (Jan, Apr, Jul, Oct 1st)

0 0 1 1,4,7,10 * At 12:00 AM, on day 1 of the month, only in January, April, July, and October

Typical use: quarterly reports and tax reminders. Try it below — change any field and see the next runs in your timezone.

At 12:00 AM, on day 1 of the month, only in January, April, July, and October

Valid

Next 10 executions

  1. 1Thu, Oct 1, 2026, 12:00 AM
  2. 2Fri, Jan 1, 2027, 12:00 AM
  3. 3Thu, Apr 1, 2027, 12:00 AM
  4. 4Thu, Jul 1, 2027, 12:00 AM
  5. 5Fri, Oct 1, 2027, 12:00 AM
  6. 6Sat, Jan 1, 2028, 12:00 AM
  7. 7Sat, Apr 1, 2028, 12:00 AM
  8. 8Sat, Jul 1, 2028, 12:00 AM
  9. 9Sun, Oct 1, 2028, 12:00 AM
  10. 10Mon, Jan 1, 2029, 12:00 AM

Field by field

FieldValueMeaning
Minute0minute 0
Hour0hour 0
Day of month1day 1
Month1,4,7,10months January, April, July, October
Day of week*every day

The same schedule on every platform

The five fields mean the same thing everywhere, but each scheduler wraps them differently — and AWS and Quartz number weekdays from 1 (Sunday), not 0.

0 0 1 1,4,7,10 * /path/to/script.sh >> /var/log/job.log 2>&1
spec:
  schedule: "0 0 1 1,4,7,10 *"
GitHub ActionsRuns in UTC.
on:
  schedule:
    - cron: '0 0 1 1,4,7,10 *'
AWS EventBridgeEventBridge weekdays are 1–7 (1 = Sunday) and one day field must be ?.
cron(0 0 1 1,4,7,10 ? *)
Quartz (Java)Seconds first; weekdays 1–7 with 1 = Sunday.
0 0 0 1 1,4,7,10 ?
Spring @ScheduledSpring adds a seconds field but keeps Unix weekday numbers.
@Scheduled(cron = "0 0 0 1 1,4,7,10 *")
[TimerTrigger("0 0 0 1 1,4,7,10 *")]

Running a job every quarter (Jan, Apr, Jul, Oct 1st)

What is the cron expression for every quarter (Jan, Apr, Jul, Oct 1st)?
0 0 1 1,4,7,10 *. In plain English: at 12:00 AM, on day 1 of the month, only in January, April, July, and October. It works in standard 5-field cron — Linux crontab, Kubernetes and GitHub Actions.
How do I schedule a job every quarter (Jan, Apr, Jul, Oct 1st) in AWS EventBridge?
Use cron(0 0 1 1,4,7,10 ? *). EventBridge needs six fields (a year at the end), a ? in one of the day fields, and numbers weekdays 1–7 starting on Sunday.
What timezone does "0 0 1 1,4,7,10 *" run in?
Cron uses the server's timezone. Kubernetes CronJobs default to the controller's timezone (set spec.timeZone on 1.27+), GitHub Actions and AWS EventBridge rules always use UTC. Use the timezone picker above to see the next runs in your own time.