ShareYourGroupShareYourGroupCron Helper

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

FieldWrittenMeans
Minute00
Hour1717
Day of month*every day of the month
Month*every month
Day of week5Fri

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).

UTCIndia time
Fri 13 Nov, 17:00Fri 13 Nov, 22:30
Fri 20 Nov, 17:00Fri 20 Nov, 22:30
Fri 27 Nov, 17:00Fri 27 Nov, 22:30
Fri 4 Dec, 17:00Fri 4 Dec, 22:30
Fri 11 Dec, 17:00Fri 11 Dec, 22:30
Fri 18 Dec, 17:00Fri 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 ? * 6

GitHub 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>&1

Questions

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.