Cron Expression Generator
Build cron expressions visually, get a plain-English description, and preview the next 5 run times โ all in your browser.
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
*/5to run every 5 minutes,0to run at the start of each hour - Hour (0โ23) โ use
8for 8 AM,*/6for every 6 hours - Day of Month (1โ31) โ use
1for the first,Lfor the last day of the month - Month (1โ12) โ use
*/3for quarterly,1for January only - Weekday (0โ6, Sunday=0) โ use
1-5for weekdays,6,0for 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.