DevToolsmith

Cron Job Every 5 Minutes During Business Hours

The cron expression */5 9-17 * * 1-5 runs a job every 5 minutes during business hours. Check its next run times below, then copy a ready-made line for crontab, Kubernetes, GitHub Actions, systemd or AWS.

Runs 100% in your browser — nothing is uploaded

Cron schedule

Schedule time zone

UTC

Cron expression for every 5 minutes during business hours

*/5 9-17 * * 1-5

Every 5 minutes, between 09:00 and 17:59, Monday through Friday. It runs 108 times on each matching day, on 261 days a year (28,188 runs).

Runs every 5 minutes from 09:00 to 17:55, Monday to Friday. Ranges in cron are inclusive, so 9-17 includes the whole 17:00 hour, and the last run of the day is at 17:55. Use 9-16 to stop at 16:55, or add a second line 0 17 * * 1-5 to finish exactly at 17:00.

Field by field

FieldValueMatches
minute */5 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55
hour 9-17 9–17
day of month * every value
month * every value
day of week 1-5 MON–FRI

Examples

crontab

Run crontab -e and add:

*/5 9-17 * * 1-5 /usr/local/bin/job.sh >> /var/log/job.log 2>&1

Kubernetes CronJob

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "*/5 9-17 * * 1-5"
  timeZone: "Etc/UTC"          # Kubernetes 1.27+
  concurrencyPolicy: Forbid    # skip a run if the last one is still going
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: job
              image: ghcr.io/acme/job:1.0
          restartPolicy: OnFailure

GitHub Actions

on:
  schedule:
    - cron: '*/5 9-17 * * 1-5'   # UTC

GitHub evaluates schedules in UTC, and runs can start several minutes late at busy times.

systemd timer

# /etc/systemd/system/job.timer
[Unit]
Description=Run job.service every 5 minutes during business hours

[Timer]
OnCalendar=Mon..Fri *-*-* 09..17:00/5:00
Persistent=true

[Install]
WantedBy=timers.target

Enable it with systemctl enable --now job.timer, and check the next runs with systemd-analyze calendar "Mon..Fri *-*-* 09..17:00/5:00". Persistent=true runs a missed job after downtime, which cron can’t do.

AWS EventBridge

cron(0/5 9-17 ? * MON-FRI *)

EventBridge cron has six fields (the last is the year), uses ? in either the day-of-month or the day-of-week field, and numbers weekdays from 1 (Sunday) to 7. Rules run in UTC; EventBridge Scheduler also accepts a time zone.

Similar schedules: every few minutes

Have a different schedule? Paste any expression into the Cron Expression Generator, or browse all cron examples.

Sources

Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.

Frequently asked questions

How do I run a cron job every 5 minutes during business hours?

Use */5 9-17 * * 1-5. It means “Every 5 minutes, between 09:00 and 17:59, Monday through Friday”. It runs 108 times on each matching day, on 261 days a year (28,188 runs).