CronTools

Cron pattern

Cron Expression for Weekdays Only

0 9 * * 1-5 runs a job at 9:00 AM Monday through Friday, skipping the weekend. The range syntax in the last field is the key to weekday scheduling.

0 9 * * 1-5

This schedule fires on the pattern shown above; see the field-by-field breakdown below.

Next 5 run times

Computed in your browser, in your local timezone.

  1. your local time
  2. your local time
  3. your local time
  4. your local time
  5. your local time

What 0 9 * * 1-5 means

A cron expression has five fields — minute, hour, day of month, month, day of week. In 0 9 * * 1-5:

The dash in 1-5 is cron's range operator: it expands to 1,2,3,4,5. Because weekday numbering starts at Sunday (0), Monday is 1 and Friday is 5 — so 1-5 is exactly “the work week”. The schedule fires once per weekday at 9 AM and is silent on Saturday and Sunday.

Business-hours scheduling

Restricting the weekday is how you keep jobs aligned with the business rather than the calendar. Reports that only make sense on trading days, “good morning” digests, and integrations into office-hours APIs (payment rails, support desks, bank feeds) all belong on a schedule like this. You can layer the range onto any time: 0 9 * * 1-5 is the weekday version of the daily midnight job, while hourly jobs become 0 * * * 1-5 for work-hour-only runs.

Ranges, lists and gotchas

The range operator works in any field — 9-17 in the hour field means 9 AM through 5 PM, and JAN-MAR in the month field means the first quarter. It also composes with steps, so 0 9-17/2 * * 1-5 runs every other hour across the workday. A common alternative to 1-5 is the explicit list 1,2,3,4,5, which uses the comma operator; the two are interchangeable. For the weekend version, see the Sunday schedule and the every-Monday expression. Remember that cron numbers the week with Sunday at 0, so “weekend” is 0,6, not 6,7 — details like this and every other operator are covered in the complete cron syntax guide.

Understanding the syntax of 0 9 * * 1-5

In plain English, this schedule at 9:00 am, on weekdays (monday to friday). Here is each of the five fields and what it controls:

Field Value Meaning
Minute 0 at minute 0
Hour 9 at 9:00 AM
Day of month * every day of the month
Month * every month
Day of week 1-5 on weekdays (Monday to Friday)

The expression has five space-separated fields: minute hour day-of-month month day-of-week. Any field set to * means “every”.

Explore more cron patterns

Fine-tune your schedule with a related pattern, or start from scratch in the builder.