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 input

Cron Schedule

Awaiting expression
Expression
Your cron expression will appear here.
Human-readableif available
Build or type an expression to see its description.
Next 5 runsfrom now
  • Run preview will appear here.
Fields
0
Status
Idle
Auto-updates: the expression, description, and run preview update automatically as you change the builder or type. Next runs are computed in your local timezone.

What 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:

FieldAllowed valuesSpecial characters
Minute0–59* , - /
Hour0–23* , - /
Day of month1–31* , - /
Month1–12* , - /
Day of week0–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

SymbolMeaningExample
*Any value* * * * * = every minute
,List of values0,15,30,45 * * * * = every 15 minutes at 0,15,30,45
-Range of values0 9-17 * * * = every hour from 9 AM to 5 PM
/Step value*/5 * * * * = every 5 minutes
@yearlyMacroEquivalent to 0 0 1 1 *
@monthlyMacroEquivalent to 0 0 1 * *
@weeklyMacroEquivalent to 0 0 * * 0
@dailyMacroEquivalent to 0 0 * * *
@hourlyMacroEquivalent to 0 * * * *

Common cron schedules

ScheduleCron expression
Every minute* * * * *
Every 5 minutes*/5 * * * *
Every hour at minute 00 * * * *
Every day at midnight0 0 * * *
Every day at 9 AM0 9 * * *
Weekdays at 9 AM0 9 * * 1-5
Every Sunday at midnight0 0 * * 0
First day of every month0 0 1 * *
Every 15 minutes during business hours*/15 9-17 * * 1-5

Frequently asked questions

A cron expression is a string of five or six fields separated by spaces that describes a recurring schedule. The fields represent minute, hour, day of month, month, and day of week (and optionally seconds as the first field). Each field uses symbols like *, -, /, and , to define which times match.
The standard Unix cron uses five fields: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6, where 0 is Sunday). Many modern schedulers such as Quartz and node-cron optionally prepend a seconds field (0-59) to create a six-field expression. This tool supports both.
The slash defines a step value. */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.
Use 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.
The most common causes are mismatched field counts (five vs six), unsupported syntax for your scheduler (for example, Quartz-specific 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.
These are Quartz-specific extensions. 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.
Yes. The tool is free, requires no signup, and runs entirely in your browser. The expressions you build and the schedules you preview are never uploaded to a server. Close the tab and the data is gone.