Cron Expression Generator

Build cron expressions visually, get a plain-English description, and preview the next 5 run times โ€” all in your browser.

Cron tool ยท 100% client-side ยท 0 bytes uploaded
*
Minute
ยท
*
Hour
ยท
*
Day
ยท
*
Month
ยท
*
Weekday
* * * * *
Minute
Hour
Day of Month
Month
Weekday
Runs every minute.
Next 5 Scheduled Runs
Common Expressions

How to Generate Cron Expressions

Understanding Cron Syntax

A cron expression is a string of five fields separated by spaces, each controlling a different time unit. The format is minute hour day month weekday, and every field accepts values, ranges, step intervals, or wildcards.

  • Minute (0โ€“59) โ€” use */5 to run every 5 minutes, 0 to run at the start of each hour
  • Hour (0โ€“23) โ€” use 8 for 8 AM, */6 for every 6 hours
  • Day of Month (1โ€“31) โ€” use 1 for the first, L for the last day of the month
  • Month (1โ€“12) โ€” use */3 for quarterly, 1 for January only
  • Weekday (0โ€“6, Sunday=0) โ€” use 1-5 for weekdays, 6,0 for weekends

Using This Tool

Type directly into the five field inputs or click the preset buttons to build your expression. The live display at the top updates instantly. You can also paste a full cron expression into the copy bar and the fields will sync automatically. Click Copy to grab the expression for your crontab or scheduler configuration.

The plain-English description below the fields explains exactly when the job will run, and the "Next 5 Scheduled Runs" section shows upcoming execution times relative to now โ€” so you can verify your schedule at a glance.

FAQ

What does * * * * * mean?

Five asterisks mean "every minute of every hour of every day" โ€” the job runs once per minute, non-stop. It is the most permissive cron expression and is often used as a starting template when learning cron syntax.

How do I run a job every weekday at 9 AM?

Use 0 9 * * 1-5. The 0 sets the minute to zero (on the hour), 9 sets the hour to 9 AM, and 1-5 restricts the weekday to Monday through Friday. Asterisks in the day and month fields mean "every day and every month, within the weekday constraint."

Can I run a job on both the 1st and 15th each month?

Yes โ€” use 0 0 1,15 * *. Comma-separated values in any field create a list. This expression fires at midnight on the 1st and 15th of every month. You can combine commas with ranges and step intervals in the same field.

What is the difference between ? and *?

In most cron implementations the two are interchangeable โ€” both mean "any value." Some advanced schedulers (Quartz, AWS EventBridge) require ? instead of * in the day-of-month or day-of-week field when the other is specified, to avoid ambiguity. Standard Unix/Linux cron treats them identically.

What is the maximum cron frequency?

Standard Unix cron resolution is one minute โ€” the expression * * * * * fires at most once every 60 seconds. For sub-minute scheduling (e.g., every 10 seconds) you need a custom scheduler such as a daemon, a message queue consumer, or a language-level interval timer rather than cron itself.

Related Tools