Every Thursday
0 0 * * 4 0 0 0 ? * THU 0 0 * * 4 0 0 ? * THU * 0 0 0 * * THU 0 0 * * 4 Runs at 00:00 every Thursday — 1 invocation per week, on Unix day-of-week 4 (Thursday).
Use in your stack
# Every Thursday at midnight
0 0 * * 4 /usr/local/bin/weekly-job.sh
# Or with name form
0 0 * * THU /usr/local/bin/weekly-job.sh
{ "cron": "0 0 0 ? * THU", "timezone": "UTC" }
apiVersion: batch/v1
kind: CronJob
metadata:
name: thursday-job
spec:
schedule: "0 0 * * 4"
timeZone: "UTC"
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: my-image:latest
restartPolicy: OnFailure
cron(0 0 ? * THU *)
@Scheduled(cron = "0 0 0 * * THU")
public void everyThursday() { /* ... */ }
on:
schedule:
- cron: '0 0 * * 4'
Next runs
Pick a timezone to see when this expression fires next.
Next 10 runs
- 012026-07-09T00:00:00.000Z
- 022026-07-16T00:00:00.000Z
- 032026-07-23T00:00:00.000Z
- 042026-07-30T00:00:00.000Z
- 052026-08-06T00:00:00.000Z
- 062026-08-13T00:00:00.000Z
- 072026-08-20T00:00:00.000Z
- 082026-08-27T00:00:00.000Z
- 092026-09-03T00:00:00.000Z
- 102026-09-10T00:00:00.000Z
Variations
Common use cases
- Late-week status reports or digests.
- Pre-weekend preparation jobs.
- Thursday recurring data pulls or syncs.
- Weekly review automation timed for end-of-week.
Gotchas
- Day-of-week numbering: Unix uses Thursday = 4 (Sun=0). Quartz uses Thursday = 5 (Sun=1). Use name form (`THU`) to avoid the off-by-one.
- AWS EventBridge: `0 0 ? * THU *` — uses `?` for day-of-month.
- Pin the timezone so "midnight Thursday" fires when you intend.
0 0 * * 4 is the Thursday weekly schedule. As with all day-of-week crons, prefer the name form THU and an explicit timezone so it ports cleanly and fires when you expect.
Frequently asked questions
What does `0 0 * * 4` mean?
Minute `0`, hour `0` (midnight), day-of-month `*` (any), month `*` (any), day-of-week `4` (Thursday in Unix where Sun=0). So the job fires at midnight every Thursday — one invocation per week.
Why is Thursday `4` in Unix but `5` in Quartz?
Unix cron numbers days 0–6 with Sunday at 0 (so Thursday is 4). Quartz numbers days 1–7 with Sunday at 1 (so Thursday is 5). Use the name form `THU` — unambiguous across every dialect.
How do I run every other Thursday?
Standard cron can't express "every other" week directly — it has no concept of week parity. Schedule every Thursday and gate inside your script with a week-number check (e.g., `[ $(($(date +%V) % 2)) -eq 0 ]`), or use a scheduler with interval support.
Browse all cron patterns
Every schedule Cronuru documents, with its expression and code snippets for six dialects.