Weekdays at 5 PM
0 17 * * 1-5 0 0 17 ? * MON-FRI 0 17 * * 1-5 0 17 ? * MON-FRI * 0 0 17 * * MON-FRI 0 17 * * 1-5 Runs at 17:00 (5 PM) Monday through Friday — 5 invocations per week, skipping weekends.
Use in your stack
# Weekdays at 5 PM, server timezone
0 17 * * 1-5 /usr/local/bin/end-of-day.sh
# Pin to US Eastern time
CRON_TZ=America/New_York
0 17 * * MON-FRI /usr/local/bin/end-of-day.sh
{ "cron": "0 0 17 ? * MON-FRI", "timezone": "America/New_York" }
apiVersion: batch/v1
kind: CronJob
metadata:
name: end-of-day
spec:
schedule: "0 17 * * 1-5"
timeZone: "America/New_York"
jobTemplate:
spec:
template:
spec:
containers:
- name: eod
image: my-image:latest
restartPolicy: OnFailure
cron(0 17 ? * MON-FRI *)
@Scheduled(cron = "0 0 17 * * MON-FRI", zone = "America/New_York")
public void weekdayEvening() { /* ... */ }
on:
schedule:
- cron: '0 17 * * 1-5' # 17:00 UTC, Mon-Fri
Next runs
Pick a timezone to see when this expression fires next.
Next 10 runs
- 012026-07-03T17:00:00.000Z
- 022026-07-06T17:00:00.000Z
- 032026-07-07T17:00:00.000Z
- 042026-07-08T17:00:00.000Z
- 052026-07-09T17:00:00.000Z
- 062026-07-10T17:00:00.000Z
- 072026-07-13T17:00:00.000Z
- 082026-07-14T17:00:00.000Z
- 092026-07-15T17:00:00.000Z
- 102026-07-16T17:00:00.000Z
Variations
Common use cases
- End-of-day summary reports or digests.
- Close-of-business data syncs or exports.
- Daily wrap-up notifications to teams.
- Triggering overnight batch prep at end of workday.
Gotchas
- 5 PM is hour `17` in 24-hour cron time — there's no AM/PM, so `0 5 * * 1-5` would be 5 AM.
- Day-of-week numbering: Unix uses `1-5` (Mon-Fri). Quartz uses `MON-FRI` or `2-6`. Use name form to avoid the off-by-one.
- Timezone matters — pin it so "5 PM" fires at end-of-day local time.
- AWS EventBridge: `0 17 ? * MON-FRI *`.
0 17 * * 1-5 is the end-of-workday schedule — the 5 PM bookend to the 9 AM weekdays-at-9am kickoff. Remember the 24-hour clock (17, not 5) and pin the timezone so it fires at close of business where your users are.
Frequently asked questions
What does `0 17 * * 1-5` mean?
Minute `0`, hour `17` (5 PM in 24-hour time), day-of-month `*` (any), month `*` (any), day-of-week `1-5` (Monday through Friday). So the job fires at 5:00 PM on every weekday.
Why is 5 PM written as `17`?
Cron uses 24-hour time with no AM/PM. 5 PM is 17:00, so the hour field is `17`. Writing `5` would schedule 5:00 AM instead. Common conversions: 1 PM = 13, 3 PM = 15, 6 PM = 18, 11 PM = 23.
How do I make it fire at 5 PM local time instead of UTC?
Linux crontab: add `CRON_TZ=America/New_York`. Kubernetes: `spec.timeZone: "America/New_York"` (K8s 1.27+). Spring: the `zone` parameter. AWS EventBridge and GitHub Actions are UTC-only — offset the hour manually (e.g., 22:00 UTC for 5 PM US Eastern in winter).
Will this skip holidays?
No. Standard cron only knows weekdays vs weekends via day-of-week — it has no holiday calendar. Gate inside your script with a holiday check, or use a holiday-aware scheduler like Apache Airflow if that matters.
Browse all cron patterns
Every schedule Cronuru documents, with its expression and code snippets for six dialects.