ToolHub

Cron Expression Generator

Build and understand cron schedules in plain English

Cron expression

0 9 * * 1

Runs at 09:00, on Monday.

0-59

0-23

1-31

1-12

0-6 (Sun=0)

Use * for any, */5 for steps, 1-5 for ranges, and 1,3,5 for lists.

Common schedules

Overview

What this tool does

Build cron expressions by filling in five simple fields, and read a plain-English description of exactly when the schedule runs. Common presets fill the fields for you, and the tool supports steps, ranges, and lists. It runs entirely in your browser.

How it's structured

The five cron fields

A cron expression has five space-separated fields, in this order:

FieldAllowed values
1. Minuteminute of the hour0-59
2. Hourhour of the day0-23
3. Day of monthcalendar date1-31
4. Monthmonth1-12
5. Day of weekweekday (Sun=0)0-6

So 30 8 * * 1-5 reads as: minute 30, hour 8, any day of month, any month, Monday through Friday — i.e. 8:30 AM on weekdays.

Building schedules

The special characters

  • * (asterisk) — every value. '* * * * *' runs every minute.
  • */n (step) — every n units. '*/15 * * * *' runs every 15 minutes.
  • a-b (range) — from a to b. '0 9-17 * * *' runs hourly from 9 AM to 5 PM.
  • a,b,c (list) — specific values. '0 0 1,15 * *' runs on the 1st and 15th.

Quick reference

Common cron examples

ExpressionMeaning
Every minute* * * * *1,440 times a day
Every 5 minutes*/5 * * * *12 times an hour
Hourly0 * * * *at the top of each hour
Daily at midnight0 0 * * *once a day
Weekdays 9 AM0 9 * * 1-5Mon-Fri only
1st of month0 0 1 * *monthly
Every Sunday0 0 * * 0weekly

A common mistake

The day-of-month vs day-of-week gotcha

Setting both can surprise you

If you specify BOTH a day of month and a day of week (neither is *), most cron implementations run the job when EITHER condition matches, not both. For example, 0 0 13 * 5 runs on the 13th of the month AND every Friday. To target a specific weekday, leave day-of-month as *.

Beyond Unix

Where cron is used

  • Unix/Linux crontab — the original scheduler
  • GitHub Actions and other CI/CD pipelines (scheduled workflows)
  • Cloud schedulers — AWS EventBridge, Google Cloud Scheduler, Azure
  • App frameworks and job queues (Laravel, Spring, node-cron, and more)

The five-field syntax is nearly identical across these systems, so a cron expression you build here works almost anywhere.

Behind the scenes

Privacy and how it runs

Runs in your browser

Expressions are generated and explained locally. Nothing is sent anywhere.

Common questions

What does '0 0 * * *' mean?

Run at minute 0 of hour 0 — midnight — every day. A daily midnight job.

How do I run a job every 30 minutes?

Use */30 * * * *. The */30 in the minute field means "every 30 minutes", so it runs at :00 and :30 of every hour.

How do I schedule something for weekdays only?

Set the day-of-week field to 1-5 (Monday through Friday). For 9 AM weekdays: 0 9 * * 1-5.

Is Sunday 0 or 7?

Both — most cron systems accept 0 or 7 for Sunday. Monday is 1 through Saturday is 6. This tool uses 0 for Sunday.

What's the most frequent cron can run?

Standard cron runs at most once per minute (* * * * *). For sub-minute schedules you need a different mechanism, since cron's smallest unit is the minute.

Related tools

Quick steps

1

Set the five fields

Minute, hour, day of month, month, and day of week. The expression and a plain-English description update live.

2

Or pick a preset

Tap a common schedule like 'every day at 9 AM' to fill the fields instantly.

3

Copy the expression

Copy the cron string into your crontab, CI config, or scheduler.

Frequently asked questions

What is a cron expression?

A compact way to define a repeating schedule, made of five fields: minute, hour, day of month, month, and day of week. For example, '0 9 * * 1' means 9:00 AM every Monday. It's used by Unix cron, CI systems, and many schedulers.

What do the symbols mean?

An asterisk (*) means 'every'. A slash (*/5) means 'every 5 units'. A dash (1-5) is a range. A comma (1,3,5) is a list of specific values. Combine them to build precise schedules.

What does '* * * * *' mean?

Every minute of every hour of every day — the most frequent standard cron schedule. Use it carefully, since it runs 1,440 times a day.

How is day-of-week numbered?

0 to 6, where 0 (and sometimes 7) is Sunday, 1 is Monday, through 6 for Saturday. So '0 0 * * 0' runs at midnight every Sunday.

What's the difference between day of month and day of week?

Day of month (1-31) is the calendar date; day of week (0-6) is the weekday. If you set both, most cron systems run when EITHER matches, which can be surprising — usually leave one as *.

Where can I use cron expressions?

Unix/Linux crontab, GitHub Actions and other CI schedules, cloud schedulers (AWS EventBridge, Google Cloud Scheduler), and many app frameworks. Syntax is mostly identical across them.