About
A cron expression is five space-separated fields that tell a scheduler when to run a job. In order, they are minute (0-59), hour (0-23), day of the month (1-31), month (1-12 or JAN-DEC) and day of the week (0-6 or SUN-SAT, where 0 and 7 both mean Sunday).
An asterisk (*) means “every value”. A slash adds a step - */5in the minute field means “every 5 minutes”. You can also use ranges (1-5) and lists (1,15,30). So 0 9 * * 1-5reads as “at 09:00, Monday through Friday”. This generator builds expressions field by field, translates any expression into plain English, validates the syntax, and previews the next few run times in UTC.
100% client-side: parsing happens entirely in your browser - nothing is sent to a server.
Popular cron expressions
* * * * *Every 5 minutes*/5 * * * *Every 10 minutes*/10 * * * *Every 15 minutes*/15 * * * *Every 30 minutes*/30 * * * *Every hour0 * * * *Every 2 hours0 */2 * * *Every 6 hours0 */6 * * *Daily at midnight0 0 * * *Daily at 9 AM0 9 * * *Every Monday0 0 * * 1Every Sunday0 0 * * 0Every weekday0 0 * * 1-5Every weekend0 0 * * 6,0First of the month0 0 1 * *Yearly (Jan 1)0 0 1 1 *Frequently Asked Questions
About cron expressions and this generator.
A cron expression is a string of five fields - minute, hour, day of month, month, and day of week - that tells a scheduler (cron) when to run a job. For example, "0 9 * * 1-5" means "at 09:00, Monday through Friday".
Reading left to right: minute (0–59), hour (0–23), day of month (1–31), month (1–12 or JAN–DEC), and day of week (0–6 or SUN–SAT, where both 0 and 7 mean Sunday). An asterisk (*) in a field means "every value".
The slash is the step operator. "*/5" in the minute field means "every 5th minute" - i.e. 0, 5, 10, 15 … 55. You can combine it with ranges too: "0-30/10" means every 10 minutes from minute 0 to 30.
This tool evaluates your expression against the calendar minute by minute (in UTC) and lists the next few matching times. The preview is illustrative - your server may run in a different timezone, so always confirm against your scheduler's configured zone.
Standard Unix cron uses OR when both day-of-month and day-of-week are restricted: the job runs if either matches. If only one of the two is set (the other is *), only that one has to match. This tool follows the same rule.
No. The parser, the natural-language explanation and the next-run preview all run entirely in your browser. Nothing about your expressions is uploaded or stored on a server.
From the blog
Cron Expressions Explained: A 5-Field Cheatsheet
A technical reference for POSIX cron expressions: the 5-field syntax, step-value math traps, and the Day-of-Month vs. Day-of-Week OR-behavior that catches everyone.
Read →cronCron Syntax Across Schedulers: Unix vs. Quartz vs. AWS EventBridge
Why your cron expression failed in the cloud. A technical breakdown of the differences between POSIX, Java Quartz, AWS, and Node.js schedulers.
Read →cronWhy Your Cron Job Failed: Debugging Timezones, PATH Variables, and Overlaps
A practical guide to diagnosing standard runtime failure modes in cron daemons. Learn why your script works in the terminal but fails silently in the background.
Read →