Launch Workspace
Standard Cron · 5 fields · Monday–Friday

Cron Every Weekday at 9 AM — 0 9 * * 1-5

Fires once per weekday (Monday through Friday) at 9:00 AM. 5 executions per week, 260–261 per year.

Dialect:
5 fields
Plain EnglishWeekday

Every weekday (Monday through Friday) at 9:00 AM

Runs every weekday (monday through friday) at 9:00 am. Evaluated according to STANDARD cron specifications.

Popular Presets:

How the day-of-week field works

The fifth field in standard POSIX cron is the day-of-week (0–7), where 0 and 7 both represent Sunday, and 1–6 represent Monday through Saturday respectively. The range 1-5 matches Monday, Tuesday, Wednesday, Thursday, and Friday — the standard five-day working week.

When the day-of-week field is constrained (not *) and the day-of-month field is left as *, cron uses only the day-of-week constraint. The job runs on any day that satisfies the weekday requirement, regardless of the calendar day of the month.

Common use cases for weekday schedules

Weekday-restricted cron jobs are ideal for business-hours automation: sending daily standup digests, triggering morning data pipelines, generating sales reports for trading-day close, refreshing business dashboards before business hours begin, or running end-of-day reconciliation jobs. Restricting to weekdays avoids wasted compute on Saturdays and Sundays when no staff are available to act on results.

Platform Examples for 0 9 * * 1-5

Ready-to-use snippets for all major platforms and schedulers.

Linux / Crontab5-field POSIX cron
# /etc/cron.d/my-schedule
MAILTO="admin@example.com"
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# Runs every weekday (Mon–Fri) at 9:00 AM
0 9 * * 1-5 www-data /usr/local/bin/my-script.sh >> /var/log/my-script.log 2>&1
Kubernetesbatch/v1 CronJob manifest
apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-scheduled-job
  labels:
    app: my-scheduled-job
spec:
  schedule: "0 9 * * 1-5"
  timeZone: "UTC"          # requires Kubernetes v1.27+
  concurrencyPolicy: Forbid
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: job
            image: alpine:latest
            command:
            - /bin/sh
            - -c
            - echo "Job executed at $(date)"
          restartPolicy: OnFailure
GitHub Actionsworkflow schedule trigger (UTC only)
name: Scheduled Workflow

on:
  schedule:
    # Runs every weekday (Mon–Fri) at 9:00 AM — evaluated strictly in UTC
    - cron: "0 9 * * 1-5"
  workflow_dispatch: # allow manual trigger

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

      - name: Run task
        run: echo "Workflow triggered at $(date)"
Spring Boot@Scheduled — 6-field cron with seconds
@Component
public class ScheduledTask {

    private static final Logger log = LoggerFactory.getLogger(ScheduledTask.class);

    // Runs every weekday (Mon–Fri) at 9:00 AM
    // Spring uses 6-field cron: sec min hr dom mon dow
    @Scheduled(cron = "0 0 9 * * MON-FRI", zone = "UTC")
    public void runTask() {
        log.info("Scheduled job started at: {}", LocalDateTime.now());
        // your business logic here
    }
}

Common Variations

Related expressions for similar scheduling needs.

ExpressionDescription
0 9 * * 1-5Every weekday at 9:00 AM
0 0 * * 1-5Every weekday at midnight
0 8 * * 1-5Every weekday at 8:00 AM
0 17 * * 1-5Every weekday at 5:00 PM (end of business day)
0 9,17 * * 1-5Weekdays at 9 AM and 5 PM
0 9 * * MON-FRIEvery weekday at 9 AM (using day names)
0 9 * * 0,6Every weekend day at 9 AM (Sat & Sun)

Frequently Asked Questions

Everything you need to know about Cron expressions, syntax rules, and platform nuances.

What is the cron expression for every weekday?

The cron expression "0 9 * * 1-5" runs every weekday (Monday through Friday) at 9:00 AM. The day-of-week field "1-5" means Monday=1 through Friday=5 in standard POSIX cron (0=Sunday, 6=Saturday).

Does "1-5" in cron mean Monday to Friday?

Yes, in standard POSIX cron the day-of-week field uses numeric codes where 0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday. So "1-5" is the range Monday through Friday inclusive. Note: 7 is also treated as Sunday in most cron implementations.

How do I change the weekday cron to run at midnight instead of 9 AM?

Change the hour and minute fields: "0 0 * * 1-5" runs every weekday at midnight (00:00). Use "0 0 * * MON-FRI" if your cron implementation supports day name abbreviations (most do).

Can I use day names instead of numbers?

Most cron implementations (Linux crond, Kubernetes, GitHub Actions) accept day name abbreviations: MON, TUE, WED, THU, FRI, SAT, SUN. So "0 9 * * MON-FRI" is equivalent to "0 9 * * 1-5". Spring Boot and Quartz also support day names in their extended dialects.

Does "0 9 * * 1-5" account for public holidays?

No. Standard cron has no concept of public holidays, company calendars, or regional non-working days. The expression fires every Monday through Friday regardless of holidays. If you need holiday-aware scheduling, use a dedicated scheduling library (Quartz JobStore with calendar support, APScheduler, or a cloud workflow service) that can exclude specific dates.

What is the Spring Boot cron for every weekday at 9 AM?

@Scheduled(cron = "0 0 9 * * MON-FRI", zone = "America/New_York") is the 6-field Spring equivalent. The leading "0" is the seconds field. Spring supports both numeric (1-5) and name-based (MON-FRI) day-of-week syntax.