HTTPfy

Every minute during business hours

Every minute from 09:00 to 17:59, Monday to Friday: 540 runs a weekday.

* 9-17 * * 1-5 Open in Crontab Generator
140,940runs in the next 365 days
2,700runs per week
1 min / 63 h 1 minshortest / longest gap between runs
09:00next run, Wed 11 Nov UTC

What it is used for

Near-real-time monitoring that only matters while people are working.

Field by field

FieldValueMatches
Minute*every value
Hour9-179, 10, 11, 12, 13, 14, 15, 16, 17
Day of month*every value
Month*every value
Day of week1-5Monday, Tuesday, Wednesday, Thursday, Friday
* 9-17 * * 1-5 /path/to/job

Next 10 run times

Computed when this page loaded (2026-11-11 02:24 UTC), assuming the scheduler runs in UTC.

#UTCYour local time
1Wed 2026-11-11 09:00
2Wed 2026-11-11 09:01
3Wed 2026-11-11 09:02
4Wed 2026-11-11 09:03
5Wed 2026-11-11 09:04
6Wed 2026-11-11 09:05
7Wed 2026-11-11 09:06
8Wed 2026-11-11 09:07
9Wed 2026-11-11 09:08
10Wed 2026-11-11 09:09

Things to watch with this schedule

  • The range 9-17 includes the whole 17:00 hour, so the last run is 17:59.

Kubernetes CronJob

Kubernetes uses the same five fields. Set spec.timeZone (stable since Kubernetes 1.27), otherwise the schedule follows the time zone of kube-controller-manager.

apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-minute-during-business-hours
spec:
  schedule: "* 9-17 * * 1-5"
  timeZone: "Etc/UTC"
  concurrencyPolicy: Forbid
  startingDeadlineSeconds: 300
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: job
              image: debian:bookworm-slim
              command: ["/bin/sh", "-c", "/app/run-job.sh"]

GitHub Actions

Workflow schedules use five-field cron in UTC and run only from the default branch. GitHub's shortest interval is 5 minutes, so runs closer together than that are not honoured; this schedule will fire less often than written. Runs at minute 0 are the most likely to be delayed or dropped when GitHub is busy; an odd minute such as 7 or 23 starts more reliably.

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

jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ./run-job.sh

systemd timer

The equivalent OnCalendar= value is Mon..Fri *-*-* 09..17:*:00. Check it with systemd-analyze calendar 'Mon..Fri *-*-* 09..17:*:00', which prints the next elapse time. Persistent=true runs a missed job after downtime, which classic cron never does.

[Unit]
Description=Every minute during business hours

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

[Install]
WantedBy=timers.target

AWS EventBridge

EventBridge rules take six fields (minute, hour, day-of-month, month, day-of-week, year) in UTC; EventBridge Scheduler can use a time zone. One of day-of-month and day-of-week must be ?, and day-of-week runs 1-7 from Sunday, so names are used here.

cron(* 9-17 ? * MON-FRI *)

Quartz Scheduler (Java)

Quartz adds a leading seconds field and needs ? in either day field; days of the week are 1 (SUN) to 7 (SAT).

0 * 9-17 ? * MON-FRI

Spring's @Scheduled(cron = ...) also uses six fields, but numbers days of the week 0-7 with Sunday as 0 or 7, like Unix cron; the names shown above work in both.

Related schedules