Cron Expression Generator – Build, Validate & Preview Cron Schedules
Build cron expressions visually or type them directly. Validate syntax, see a human-readable description, and preview the next 5 run times. Supports standard 5-field and 6-field (with seconds) cron syntax. Everything runs in your browser.
Build Expression
Visual builder or raw inputCron Schedule
Awaiting expressionWhat is a cron expression?
A cron expression is a compact string that describes a recurring schedule. It is used by Unix cron, Kubernetes CronJobs, GitHub Actions schedules, AWS EventBridge, Quartz Scheduler, node-cron, and countless other systems. The expression is a set of fields separated by spaces, each field controlling one unit of time.
Standard Unix cron uses five fields:
| Field | Allowed values | Special characters |
|---|---|---|
| Minute | 0–59 | * , - / |
| Hour | 0–23 | * , - / |
| Day of month | 1–31 | * , - / |
| Month | 1–12 | * , - / |
| Day of week | 0–6 (0 = Sunday) | * , - / |
Many modern schedulers optionally add a seconds field as the first field, creating a six-field expression. This tool supports both five-field and six-field syntax.
Cron syntax cheat sheet
| Symbol | Meaning | Example |
|---|---|---|
* | Any value | * * * * * = every minute |
, | List of values | 0,15,30,45 * * * * = every 15 minutes at 0,15,30,45 |
- | Range of values | 0 9-17 * * * = every hour from 9 AM to 5 PM |
/ | Step value | */5 * * * * = every 5 minutes |
@yearly | Macro | Equivalent to 0 0 1 1 * |
@monthly | Macro | Equivalent to 0 0 1 * * |
@weekly | Macro | Equivalent to 0 0 * * 0 |
@daily | Macro | Equivalent to 0 0 * * * |
@hourly | Macro | Equivalent to 0 * * * * |
Common cron schedules
| Schedule | Cron expression |
|---|---|
| Every minute | * * * * * |
| Every 5 minutes | */5 * * * * |
| Every hour at minute 0 | 0 * * * * |
| Every day at midnight | 0 0 * * * |
| Every day at 9 AM | 0 9 * * * |
| Weekdays at 9 AM | 0 9 * * 1-5 |
| Every Sunday at midnight | 0 0 * * 0 |
| First day of every month | 0 0 1 * * |
| Every 15 minutes during business hours | */15 9-17 * * 1-5 |
Frequently asked questions
*/5 in the minute field means every 5 minutes. In general, */N means every N units starting from the minimum value of that field. You can also use ranges with steps such as 10-30/5, which means every 5 units between 10 and 30 inclusive.@yearly or @annually runs once a year at midnight on January 1. @monthly runs at midnight on the first day of every month. @weekly runs at midnight on Sunday. @daily or @midnight runs at midnight every day. @hourly runs at the start of every hour. These are shorthand for the equivalent five-field expressions.0 9 * * 1-5 to run at 9:00 AM Monday through Friday. The day-of-week field accepts 1-5 for Monday through Friday. Some systems use 1 for Monday and 7 for Sunday, while others use 0 for Sunday. This tool uses the standard 0-6 range where 0 and 7 both mean Sunday.L and W characters), timezone differences between the server and the schedule, and the day-of-month and day-of-week fields interacting. When both are restricted, most cron implementations run the job if either field matches, not both. Verify the expression against your scheduler's documentation.L in day-of-month means the last day of the month. W means the nearest weekday. # means the nth weekday of the month, for example 5#2 means the second Friday. Standard Unix cron does not support these characters, and this tool focuses on the portable subset.