Quick answer
The cron expression for every Friday at 5pm is 0 17 * * 5. Cron uses a 24-hour clock, so 5 PM is hour 17, and 5 in the day-of-week field is Friday. With minute 0, the job runs once a week at 17:00 on Fridays, in the time zone of whatever evaluates the schedule. Writing 0 5 * * 5 would run at 5 in the morning.
- Live next runs
- Any time zone
- Field-by-field breakdown
- Seven platform snippets
- Daylight saving aware
How to use this schedule
- 1Copy
0 17 * * 5with the Copy expression button. - 2Check Next runs in your time zone to confirm it fires when you expect, including around daylight saving changes.
- 3Pick your platform under Use it on your platform and copy the ready-made crontab line, workflow, manifest or timer.
- 4Need a different time or day? Click Customize to open it in the cron expression generator and change any field.
What do teams run at 5 PM on Friday?
End-of-week jobs: a weekly summary email, a timesheet reminder, a snapshot of the week's metrics, or the switch that starts a deploy freeze for the weekend. Some teams also schedule the opposite, a Friday evening backup or an extra test run, so there is a known-good state before the quiet days.
Two details make this schedule different from a midnight job. First, 17:00 is still working hours for the people who receive the result, so a failure is noticed right away, and so is a duplicate. Second, it is a local time by nature: "5 PM Friday" means something to a team in one office, and nothing in particular to a server running in UTC.
How do I keep 5 PM Friday in local time on a UTC scheduler?
Convert it, and watch for daylight saving time. 5 PM in London is 16:00 UTC in summer (0 16 * * 5) and 17:00 UTC in winter (0 17 * * 5). 5 PM in New York is 21:00 UTC in summer (0 21 * * 5) and 22:00 UTC in winter (0 22 * * 5).
Further west, the conversion can change the day itself: 5 PM Friday in Honolulu is 03:00 on Saturday in UTC, so the expression there is 0 3 * * 6. If your scheduler supports time zones (the timezone: field in GitHub Actions, the Kubernetes timeZone field, EventBridge Scheduler, systemd or cronie's CRON_TZ), set the zone and keep 0 17 * * 5 exactly as written.
What does each field in 0 17 * * 5 mean?
| Field | Value | Allowed | Meaning |
|---|---|---|---|
| Minute | 0 | 0–59 | at minute 0 (on the hour) |
| Hour | 17 | 0–23 | at hour 17 (5 PM) |
| Day of month | * | 1–31 | every day of the month |
| Month | * | 1–12, JAN–DEC | every month |
| Day of week | 5 | 0–7 (0 and 7 are Sunday), SUN–SAT | only on Friday |
Read together: At 17:00 every Friday, once a week.
How do I adjust 0 17 * * 5 to my own schedule?
Small edits to 0 17 * * 5 cover most real-world needs:
| Expression | What it does |
|---|---|
0 16 * * 5 | 5 PM in London during British Summer Time, written in UTC |
0 17 * * 1-5 | 5 PM every weekday |
30 16 * * 5 | Friday at 4:30 PM, before people leave |
0 17 * * 4 | Thursday at 5 PM, for teams with Fridays off |
0 9 * * 1 | Monday at 9 AM, the natural end of a weekend deploy freeze |
Need something else? Click Customize at the top of the page to open this schedule in the cron expression generator and change any field.
Related schedules: Every weekday at 9am · Every Monday · Every week · Every weekend
Browse all schedules in the cron schedule library.
How do I run 0 17 * * 5 in crontab, GitHub Actions, Kubernetes and the cloud?
| Platform | Write it as | Time zone |
|---|---|---|
| Linux crontab | 0 17 * * 5 | Server's time zone; CRON_TZ= in cronie |
| GitHub Actions | - cron: "0 17 * * 5" | UTC by default; add timezone: (IANA name) |
| Kubernetes CronJob | schedule: "0 17 * * 5" | Set timeZone: (1.27+) |
| Cloudflare Workers | 0 17 * * FRI | UTC only; numbers weekdays from 1 = Sunday, so use names |
| Vercel Cron Jobs | 0 17 * * 5 | UTC only; Hobby runs it within the hour (±59 min) |
| AWS EventBridge Scheduler | cron(0 17 ? * FRI *) | Takes a time zone; legacy scheduled rules are UTC only |
| systemd timer | OnCalendar=Fri *-*-* 17:00:00 | Add a zone after the time, e.g. Europe/London |
In a crontab (crontab -e), the full line looks like this:
0 17 * * 5 /path/to/job.sh >> /var/log/job.log 2>&1The live panel at the top of the page builds complete, copy-ready files for each platform (workflow, CronJob manifest, wrangler.toml, vercel.json, AWS CLI and systemd units) and can shift the schedule to UTC for platforms that need it.
What can go wrong with 0 17 * * 5?
0 5 * * 5is 5 AM, not 5 PM. Cron hours run from 0 to 23 with no AM or PM.- On UTC-only platforms the local time moves by an hour when daylight saving time starts or ends, so a 5 PM reminder becomes 4 PM or 6 PM for part of the year.
- Converting a late-afternoon time in the Americas to UTC can push it into Saturday. Re-check the day-of-week field after converting.
- Messages to people should be idempotent. If a failed Friday run is retried, recipients shouldn't get the weekly email twice.
- On UTC-only platforms (Cloudflare Workers, Vercel, legacy EventBridge rules), the local time this runs at moves by an hour when daylight saving time starts or ends. Use GitHub's
timezone:, KubernetestimeZone, EventBridge Scheduler or cronie'sCRON_TZto pin it to local time.
Frequently asked questions
Last updated by the Playxoft engineering team.