MIN HOUR DOM MON DOW0MIN9HOUR*DOM*MON1-5DOW09**1-5*Any / every value*/NEvery N unitsA-BRange from A to BA,B,CList of specific valuesA-B/NRange with step N?No specific value (alias for *)0 – 590 – 231 – 311 – 120 – 6 (0 = Sun)Also accepts: @hourly @daily @weekly @monthly @yearly
Cron Expression Builder — Visual Cron Generator & Scheduler
What's included
Features
About this tool
Build a Cron Expression Visually — See Next Run Times Before Deploying
You need to schedule a job to run every weekday at 9 AM, or every 15 minutes during business hours, or on the 1st and 15th of every month — but cron syntax is easy to get wrong. A misplaced * or an off-by-one in a range can silently cause a job to fire too often, too rarely, or never at all. Use this visual builder to construct the expression by clicking, then verify the next 6 run times before the expression touches production.
The builder breaks each of the five fields (minute hour day-of-month month day-of-week) into a dedicated panel. Instead of remembering whether Monday is 1 or 0, you click "Monday" and the tool writes the correct value. Choose Every to use *, Every N for step notation like */5, Range for a 1-5 span, or Specific to pick individual values from a named grid. The expression at the top updates in real time — power users can also type directly into the expression input and the builder panels will sync.
The human-readable description converts any valid expression to plain English: "Every 15 minutes", "At 9:00 AM, Monday through Friday", "First day of every quarter at midnight". It first checks the expression against a lookup table of common canonical forms for an exact, hand-written phrase, and only falls back to a rule-based sentence builder — one clause per field — for anything less common, which is why the frequent presets read especially naturally while rarer combinations still get a correct, if plainer, description.
The Next Run Times panel doesn't solve for run times mathematically — it walks forward minute by minute from now, checking each candidate against all five parsed fields, but jumps ahead intelligently when a whole unit fails to match: a non-matching month skips straight to the 1st of the next month, a non-matching day jumps to midnight the next day, and so on, rather than stepping one minute at a time through months that can never match. That walk is capped at roughly 700,000 iterations — about a year and a half of minutes — so an expression that only fires on February 29th, or another rare combination, resolves to an explicit warning instead of hanging the browser. When both the day-of-month and day-of-week fields are restricted at the same time, the calculator follows the same OR-logic convention as standard Vixie cron: a day counts as a match if *either* field's condition is satisfied, not only when both are — the same field-7-means-Sunday normalization is applied too, since some cron dialects use 7 as an alternate for Sunday alongside 0. Catches off-by-one errors before they reach production. Supports @hourly, @daily, @weekly, @monthly, and @yearly aliases, plus 16 common presets for instant loading. All calculations run in your browser — no data is sent to any server.
Step by step
How to Use
- 1Use the visual field builder or start from a presetEach of the five cron fields (Minute, Hour, Day-of-Month, Month, Day-of-Week) has its own panel. Click any preset in the Common Presets grid to load a common schedule instantly, or start building from scratch by clicking the mode buttons in each field panel.
- 2Set each field modeChoose Every (*) for no restriction, Every N for step notation like */5 (every 5 minutes), Range for A-B spans like 1-5 (Monday to Friday), or Specific to pick individual values from a named grid. For Month and Day-of-Week, values are shown as names (Jan, Feb, Sun, Mon).
- 3Read the expression and descriptionThe large input at the top shows the current expression. The five colored badges below show each field value. The description box beneath translates the full expression into plain English — for example, "At 9:00 AM, Monday through Friday."
- 4Paste or type an existing expressionClick into the expression input and paste or type any 5-field cron expression. The Visual Builder panels update immediately. You can also type @daily, @hourly, or any named alias — the tool expands it to the full 5-field notation automatically.
- 5Verify with next run timesThe Next Run Times panel always shows the next 6 scheduled executions with full timestamps and relative labels like "in 3 hours." Check this before deploying — it catches off-by-one errors and expressions that fire more or less frequently than intended.
Real-world uses
Common Use Cases
Got questions?
Frequently Asked Questions
A cron expression is a five-field string (minute hour day-of-month month day-of-week) that defines a recurring schedule for automated tasks. It is the standard scheduling syntax on Unix/Linux systems and is used by Kubernetes, GitHub Actions, AWS EventBridge, and most cloud schedulers.
* means "every valid value" for that field. * * * * * means every minute. * * * * 1 means every minute on Mondays only. In the minute field alone, * means at every minute of every hour.
*/5 is step notation meaning "every 5 units." In the minute field, */5 means at minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55. In the hour field, */3 means at hours 0, 3, 6, 9, 12, 15, 18, 21.
Use 0 9 * * 1-5. This means: minute=0, hour=9, any day-of-month, any month, days 1 through 5 (Monday through Friday). The tool's "Weekdays 9 AM" preset loads this expression with one click.
Day-of-month (field 3) specifies a numbered day in the calendar month (1–31). Day-of-week (field 5) specifies a day of the week (0=Sun, 1=Mon … 6=Sat). When both are non-wildcard, standard cron uses OR logic — the job fires if either condition matches.
Yes. This tool accepts @hourly, @daily, @midnight, @weekly, @monthly, @yearly, and @annually as aliases. They are expanded to their 5-field equivalents automatically. @daily = 0 0 * * *, @hourly = 0 * * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *.
Use a comma in the day-of-month field: 0 0 1,15 * *. This runs at midnight on the 1st and 15th of every month. You can use commas in any field to specify multiple specific values.
No. All parsing, validation, description generation, and next-run calculations happen entirely in your browser using JavaScript. No data is sent anywhere. The tool works offline once the page has loaded.
This tool targets standard 5-field POSIX cron used by Linux crontab, Kubernetes CronJobs, GitHub Actions, and most schedulers. Quartz uses 6–7 fields (with Seconds and optionally Year). AWS EventBridge uses 6 fields (with Year). The visual builder is designed for the universal 5-field format.
The Next Run Times calculator searches up to one full year forward. If no valid run time is found in that window, it shows a warning rather than hanging or returning incorrect results. Expressions that fire very rarely (e.g., Feb 29) will show no upcoming runs if the next occurrence is more than a year away.