Cron expression for every Friday at 5 PM
At 17:00, on Friday.
Five fields for Linux, GitHub Actions and Kubernetes (minute hour day month weekday). Six or seven for Quartz. Nothing you type leaves your device.
What it means and when to use it
Friday is day number 5, and 5 PM is hour 17. A weekly end-of-week schedule is a good rhythm for a weekly summary, a weekly backup copy that is kept for months, or a reminder to send invoices. If you prefer words, 0 17 * * FRI is identical.
Watch out for this
Do not combine a day of the month with a day of the week unless you really want "either". 0 17 13 * 5 does not mean "Friday the 13th": cron runs it on every 13th of the month and also on every Friday, because when both day fields are set the job runs when either one matches. For "Friday the 13th" put a check inside the job: run every Friday and let the script exit unless the date is the 13th. The page on the day-of-month and day-of-week rule explains this.
What each field says
| Field | Written | Means |
|---|---|---|
| Minute | 0 | 0 |
| Hour | 17 | 17 |
| Day of month | * | every day of the month |
| Month | * | every month |
| Day of week | 5 | Fri |
An example of the next runs
If it were Friday 13 November 2026 at 10:20 UTC, the next six runs would be these. Times are shown in UTC and in India time (UTC+5:30).
| UTC | India time |
|---|---|
| Fri 13 Nov, 17:00 | Fri 13 Nov, 22:30 |
| Fri 20 Nov, 17:00 | Fri 20 Nov, 22:30 |
| Fri 27 Nov, 17:00 | Fri 27 Nov, 22:30 |
| Fri 4 Dec, 17:00 | Fri 4 Dec, 22:30 |
| Fri 11 Dec, 17:00 | Fri 11 Dec, 22:30 |
| Fri 18 Dec, 17:00 | Fri 18 Dec, 22:30 |
The same schedule in other places
Quartz
Quartz has a seconds field in front, uses ? in one day field, and counts Sunday as 1:
0 0 17 ? * 6GitHub Actions
Scheduled workflows run in UTC unless you add a time zone. In the workflow file:
on:
schedule:
- cron: '0 17 * * 5'Kubernetes CronJob
In a CronJob manifest the schedule goes in spec.schedule. Without spec.timeZone, it is read in the time zone of the cluster's controller:
spec:
schedule: "0 17 * * 5"
timeZone: "Etc/UTC"A crontab line to copy
The command is made up. Replace it with your own and use full paths:
0 17 * * 5 /home/me/bin/weekly-summary.sh >> /home/me/weekly.log 2>&1Questions
How do I run on the last Friday of the month?
Standard cron cannot say it in one line. Quartz can: 0 0 17 ? * 6L. In plain cron, run every Friday and let the script check that the date is in the last seven days of the month.
This is an independent guide and tool. It is not connected with crontab.guru, Quartz, GitHub, Kubernetes, Spring or the Linux projects named here. Product names belong to their owners.