Cron Generator: Build Cron Expressions
Cron expression builder: create schedules visually, get plain-English explanations, and preview the next 10 run times. Free, no signup.
What Is Cron Generator?
Cron Generator is a free online tool for building, validating, and understanding cron expressions — the five-field schedule syntax used by Unix cron daemons, CI/CD platforms, cloud schedulers, and countless other automation systems. You can construct a schedule visually using dropdowns, type an expression directly, or paste an existing one to get an instant human-readable explanation.
The tool solves two distinct problems. Writing a new schedule from scratch is error-prone when you have to remember the exact field order and allowed special characters. Inheriting an existing expression like 0 9 1-5 is equally confusing if you are not sure whether it fires every nine minutes or at 9 AM on weekdays. Cron Generator handles both directions: build to expression, and expression to English. Everything runs client-side, so you can use it freely with internal schedule configurations that should not leave your network.
Key Features
- Visual cron expression builder — Five dropdown selectors for Minute, Hour, Day of Month, Month, and Day of Week let you construct a schedule without memorising syntax. Each field also has a custom text input for values outside the preset list.
- Human-readable explanations — The
cronstruelibrary translates any valid expression into plain English instantly. The Builder tab shows a 24-hour explanation; the Human Readable tab shows a 12-hour format description in a large, prominent display. - Preview next execution times — The Builder tab shows the next 5 run times. The Human Readable tab shows the next 10 run times with the immediate next execution highlighted in the primary colour.
- Validate cron expressions — The input field turns red and the explanation area switches to a destructive background when
cron-parsercannot parse the expression. Valid expressions show a neutral secondary background. - 10 built-in presets — Click any preset button to load a common schedule: every minute, every hour, daily at midnight, daily at 9 AM, every Sunday at midnight, first of every month, January 1st, weekdays at 9 AM, every 5 minutes, and every 2 hours.
- Copy expression to clipboard — One click copies the current expression string and logs it to the history panel.
- Batch mode — Paste multiple cron expressions, one per line, to explain all of them at once and export the results.
- Shareable URLs — The expression is encoded into the URL, so you can share a specific schedule with a teammate by copying the address bar.
How to Use Cron Generator
Step 1: Enter or build your expression
The expression input field is always visible at the top of the tool. It starts with 0 0 * (daily at midnight). You can:
- Type directly — Edit the field to any five-field cron expression. The tool parses it character by character and updates the dropdowns, explanation, and next-run preview in real time.
- Use the Builder — Click the "Builder" tab below the expression input to reveal five dropdowns labelled Minute, Hour, Day of Month, Month, and Day of Week. Selecting a value from any dropdown updates the expression field automatically.
- Select a preset — Click any of the 10 preset buttons (Every Minute, Every Hour, etc.) to load that expression with a single click.
Step 2: Check the explanation
Immediately below the expression input, a status panel displays the plain-English meaning. For the expression 0 9 1-5, the tool shows "At 09:00, Monday through Friday" in 24-hour format. The panel uses a green-tinted secondary background for valid expressions and a red destructive background when the expression cannot be parsed.
Step 3: Review next execution times
In the Builder tab, a "Next Executions" panel lists the next 5 scheduled times using your local toLocaleString() format. Switch to the Human Readable tab to see the next 10 run times. The first (soonest) entry is highlighted with a "Next" badge in the primary colour, making it easy to confirm the schedule is correct before deploying.
Step 4: Use custom values for advanced expressions
The Minute and Hour fields each have a plain text input below the dropdown labelled "Custom". Type any valid cron field value here — for example 0,15,30,45 for every quarter-hour, or 8-17 for hours 8 through 17. The custom value takes precedence over the dropdown selection and updates the expression immediately.
Step 5: Copy and use the expression
Click "Copy" in the action bar to copy the expression to your clipboard. The expression is ready to paste into a crontab file, a GitHub Actions schedule trigger, an AWS EventBridge rule, or any other cron-compatible field.
Example expression for a weekday morning report job:
0 8 * * 1-5
Explanation: "At 08:00, Monday through Friday"
Next executions (from a Monday):
- Mon, 3 Mar 2026, 08:00:00
- Tue, 4 Mar 2026, 08:00:00
- Wed, 5 Mar 2026, 08:00:00
Practical Examples
Scheduling a database backup
A backend engineer needs a job that runs every night at 2 AM. They select "At midnight" from the Hour dropdown, switch it to a custom value of 2, keep Day of Month and Month as , and keep Day of Week as . The expression becomes 0 2 *. The explanation confirms "At 02:00" and the next execution list shows five consecutive nights at 02:00:00. The engineer copies the expression and pastes it into their crontab.
Setting up a quarterly report
A data analyst needs a job on the first day of every quarter (January, April, July, October) at 6 AM. They type 0 6 1 /3 directly into the expression field. The tool confirms "At 06:00, on day 1 of the month, every 3 months" and shows the next four quarterly dates. The analyst shares the URL with their team so everyone can verify the schedule.
Auditing inherited schedules
A developer inherits a microservice with five cron jobs defined in a YAML file. They switch to Batch Mode, paste all five expressions (one per line), and click "Process All". The results table shows each expression alongside its plain-English description. One expression, /10 9-17 * 1-5, is immediately clear: "Every 10 minutes, between 09:00 and 17:00, Monday through Friday."
Tips and Best Practices
Use the Human Readable tab to confirm intent, not just syntax. An expression can be syntactically valid but semantically wrong — for example, 0 0 31 fires on the 31st of every month, meaning it never runs in February, April, June, September, or November. The next-run preview makes this gap obvious.
The L special character means "last day of the month." The Day of Month dropdown includes a "Last Day" option which produces the L value. This is supported by cron-parser and useful for end-of-month billing or reporting jobs. Check whether your target cron implementation also supports L before deploying.
Minute and Hour custom fields accept step expressions. Enter */5 in the custom Minute field to run every 5 minutes. Enter 8-17 in the custom Hour field to constrain a job to business hours. These values are not available in the dropdown but the tool validates them correctly.
Day of Week 0 and 7 both mean Sunday. The syntax reference table in the Builder tab documents that Day of Week accepts 0-6, but many implementations also accept 7 as Sunday. Use 0 for consistency.
Share URLs encode the expression. When you load a shared URL, a toast notification confirms the expression was loaded from the URL. This is useful for code review comments where you want teammates to validate a schedule interactively.
Common Issues and Troubleshooting
Red border on the expression field. The cron-parser library could not parse the value. Common causes include: fewer or more than five space-separated fields, an out-of-range value (e.g., month 13 or minute 60), or an unsupported special character. The explanation panel will also show "Invalid expression" when this occurs.
"Invalid cron expression" in Batch Mode. Each line in batch mode is independently validated. Lines that fail parsing show the error message in the Output column in red. Fix each expression and re-run.
Dropdowns do not reflect a manually typed expression. The parser updates the dropdowns only when the typed value exactly matches one of the preset dropdown options (, 0, 15, etc.). If you type a custom value like /5, the dropdown stays on whatever it was previously — but the expression field itself and the explanation are always the authoritative source of truth.
Next execution times show in local time. The cron-parser library uses the client's system time zone. If you are scheduling jobs in UTC, verify your local offset. The Human Readable tab labels the times as "UTC local time" to remind you of this distinction.
Clearing resets to . The Clear button resets all five fields to (every minute), not back to the initial 0 0 *. Use the "Every day at midnight" preset to restore the daily default quickly.
Privacy and Security
All cron parsing and explanation happens in your browser using the cronstrue and cron-parser JavaScript libraries. No expression you enter is sent to any server. The tool works fully offline after the initial page load. This makes it safe to use with internal scheduling configurations, proprietary job names embedded in expressions, and any other sensitive automation details.
Frequently Asked Questions
Is Cron Generator free? Yes, fully free with no usage restrictions. No account or payment is required to build, explain, or copy cron expressions.
Does it work offline? After the page loads, all functionality — building, explaining, previewing next runs — works without a network connection. The expression is never sent to a server.
Is my data safe? Your expressions are processed locally in JavaScript and are never transmitted to Glyph Widgets servers. It is safe to use with internal job configurations and proprietary system schedules.
What cron syntax does it support? The tool uses standard five-field Unix cron syntax: Minute (0-59), Hour (0-23), Day of Month (1-31), Month (1-12), Day of Week (0-6). Special characters supported are * (wildcard), , (list), - (range), / (step), L (last) for Day of Month, and # for Day of Week. Six-field expressions with a seconds field (used by some platforms like Quartz) are not supported.
What is the difference between the Builder tab and the Human Readable tab? The Builder tab provides the visual dropdown interface, the preset buttons, the next 5 run times, and a syntax reference table. The Human Readable tab focuses on explanation: it shows the plain-English description prominently, a field breakdown grid showing which fields are wildcards and which are specific, and the next 10 run times.
Can I explain multiple expressions at once? Yes. Toggle Batch Mode on using the button at the top of the tool. Paste one cron expression per line, click "Process All", and view a table with each expression and its plain-English explanation. Use "Copy All Results" to export the full table.
What does /5 mean in the minute field? The / character means "step". /5 means "every 5 units starting from 0", so in the minute field it fires at minutes 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, and 55 — 12 times per hour.
Can I share a specific cron expression with a link? Yes. The tool encodes the current expression into the URL query string. Copy the address bar and share it. When the recipient opens the link, a toast notification confirms the expression was loaded from the shared URL.
Why does my monthly job on the 31st not run every month? Not all months have 31 days. A schedule of 0 0 31 will only fire in January, March, May, July, August, October, and December. Use the next-run preview to confirm gaps in your schedule. Consider 0 0 L (last day of every month) if you want end-of-month behaviour regardless of month length.
What is 0 9 1-5 in plain English? "At 09:00, Monday through Friday." The 1-5 range in the Day of Week field selects Monday (1) through Friday (5).
Related Tools
Unix Timestamp — Convert between Unix timestamps and human-readable dates to verify when your scheduled jobs last ran.
Date Calculator — Calculate the interval between two dates when planning how often a periodic cron job should fire.
World Clock — Check the current time in multiple time zones to schedule cron jobs correctly across regions.
Try Cron Generator now: Cron Generator