Cron expression for Every Friday
0 0 * * 5
Runs once a week, at midnight every Friday.
Next 5 runs (your local time)
These are shown in your browser’s timezone. The job itself runs in the scheduler’s timezone — often UTC — so the real run time can differ.
What people actually schedule with 0 0 * * 5
- Producing an end-of-week summary report that captures the full work week's activity before everyone logs off
- Triggering a weekly off-site backup sync timed to finish over the lower-traffic weekend that follows
- Running a Friday reconciliation of the week's transactions so discrepancies are flagged before the books close
Use 0 0 * * 5 on your platform
It’s the same 5-field expression everywhere — what changes is where you put it and which timezone it runs in.
Linux / crontab
0 0 * * 5 /path/to/your-command
Runs in the server’s local timezone — check it with timedatectl.
Full field reference: crontab(5) man page.
GitHub Actions
on:
schedule:
- cron: "0 0 * * 5"
GitHub Actions always runs scheduled jobs in UTC — there is no timezone setting, and runs can be delayed under load (official docs).
Kubernetes CronJob
spec:
schedule: "0 0 * * 5"
Defaults to UTC. Set spec.timeZone (Kubernetes 1.27+)
for a specific zone — see the
CronJob docs.
Quartz / Spring @Scheduled
Quartz uses 6 fields (seconds first): 0 0 0 * * 5. Watch out:
Quartz day-of-week is 1=SUN … 7=SAT (not 0–6), and day-of-month /
day-of-week use ? — double-check if your schedule touches those fields
(Quartz cron reference).
Gotchas with every friday schedules
- Friday is
5, and midnight Friday is Thursday-night data — the opposite of an "end of week" report.0 0 * * 5fires at 00:00 Friday, before Friday happens, so a weekly wrap-up built here misses an entire business day. Use0 17 * * 5(5pm Friday) to actually capture the week. - Friday-night jobs that fail go unnoticed until Monday. A
0 0 * * 5backup that errors at midnight Friday sits broken across an unstaffed weekend — two-plus days of silent exposure. Wire failures to an on-call channel (... || curl -fsS https://hc-ping.com/), not just cron mail nobody reads till Monday./fail - "Last Friday of the month" is not what
0 0 * * 5means. This fires every Friday, including four or five times a month. For a month-end Friday run, cron can't express it directly — combine day-of-month and day-of-week and test inside:[ $(date +%m -d '+7 days') != $(date +%m) ] || exit 0to keep only the final Friday.
Will you know if this job silently fails?
Cron jobs fail quietly — a server reboots, a path changes, or an error code is ignored — and nobody notices until the data is missing. A cron monitor (a dead-man’s-switch) alerts you when a scheduled job does not check in on time.
Monitor your cron jobs with UptimeRobot →
Disclosure: this is an affiliate link — we may earn a commission if you sign up, at no extra cost to you.
Is 0 0 * * 5 the right schedule?
If you need the very last Friday of each month rather than all of them, see every last Friday for the day-of-month trick that plain 0 0 * * 5 can't do on its own.
Or use the interactive cron generator & explainer, read the complete cron syntax guide, or pick another common schedule: