Cron for 1 september at midnight
0 0 1 9 *At 12:00 AM, on day 1 of the month, only in September
What this schedule does
Once a year on 1 september at 00:00: 0 0 1 9 *. Fiscal-year jobs, license renewals, and “remember this anniversary” mailers use a month field instead of a calendar product. Combine with a timezone selector; January 1 at midnight UTC is still 31 December evening in the Americas.
Next 5 runs (UTC)
Times below are computed for UTC. Open the builder to preview another timezone.
- Tue, 01 Sept 2026, 00:00 UTC
- Wed, 01 Sept 2027, 00:00 UTC
- Fri, 01 Sept 2028, 00:00 UTC
- Sat, 01 Sept 2029, 00:00 UTC
- Sun, 01 Sept 2030, 00:00 UTC
Copy-paste snippets
GitHub Actions
UTC only. Quote the expression so YAML keeps the stars.
on:
schedule:
- cron: '0 0 1 9 *'Kubernetes
CronJob spec.schedule. Kubernetes uses the timezone of the kube-controller-manager unless you set .spec.timeZone.
apiVersion: batch/v1
kind: CronJob
metadata:
name: job
spec:
schedule: "0 0 1 9 *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: job
image: busybox
args: ["echo", "run"]AWS EventBridge
Six fields: minutes hours day-of-month month day-of-week year. Use ? in either day-of-month or day-of-week.
cron(0 0 1 9 ? *)Quartz
Quartz is seconds-first (6 or 7 fields). Day-of-week names are MON, TUE, … and ? is required in one of the day fields.
0 0 0 1 9 *Vercel Cron
{
"crons": [
{
"path": "/api/cron",
"schedule": "0 0 1 9 *"
}
]
}crontab
0 0 1 9 * /usr/local/bin/jobnode-cron
import cron from 'node-cron';
cron.schedule('0 0 1 9 *', () => {
// job
});Spring @Scheduled
Spring uses 6 fields by default (seconds first) unless you set spring.task.scheduling.cron.expression.
@Scheduled(cron = "0 0 0 1 9 *")
public void run() {
// job
}