Free Converter

Cron Expression Generator

Generate, explain, and validate cron expressions instantly in your browser. Visual builder and expression parser — free, private, and client-side.

Cron Expression
0 */6 * * *
Human-readable Description
Every minute
Next 5 Scheduled Runs
Calculating...

About Cron Expression Generation

Cron expressions are five (or six, depending on the system) space-separated fields that describe a schedule: minute, hour, day-of-month, month, and day-of-week. Each field accepts numeric values, ranges, lists, increments, and wildcards. Cron has been the de facto Unix scheduling format since the late 1970s and is now used far beyond Unix — by Kubernetes CronJobs, GitHub Actions, AWS EventBridge rules, Jenkins jobs, and almost every other scheduling system in production.

Reading and writing cron expressions by hand is error-prone. The fields are positional, the day-of-month and day-of-week interaction is non-obvious (a value in either field triggers the job, not both), and mistakes silently produce schedules that look right but fire at wrong times. A generator that translates plain-English schedules into correct cron syntax avoids these mistakes.

This tool offers two directions: building a cron expression from a friendly form (every Monday at 9 AM, every 5 minutes during business hours), and explaining an existing cron expression in human terms. Both run in your browser without any server interaction.

Why Use a Cron Generator

Cron syntax is dense and unforgiving. Common mistakes include confusing day-of-week numbering (Sunday is 0 or 7 depending on the system), forgetting that day-of-month and day-of-week use OR semantics, and misunderstanding the increment syntax (*/5 means every 5 starting at 0). A generator catches these by construction — produced expressions match what you described in the form.

Reading existing expressions is equally hard. A schedule like 0 9 * * 1-5 reads as every weekday at 9 AM once you know the syntax, but anyone unfamiliar with cron has to look up each field. Explaining the expression in human terms is faster than learning the syntax for one-off interactions.

How to Use the Cron Generator

Pick a schedule pattern, get the cron expression.

  1. Choose generation mode: Build a cron expression from form inputs (frequency, time, days), or explain an existing expression in human terms.
  2. Configure the schedule: Pick the frequency (every minute, every hour, every day, every week, every month, custom). Specify times, days, and intervals as needed. The form constrains inputs to valid combinations.
  3. Generate or explain: Generation produces standard cron syntax (5 fields). The explanation breaks down each field and gives a human-readable summary.
  4. Use in your scheduler: Paste the generated expression into Kubernetes CronJob spec, GitHub Actions schedule, AWS EventBridge, or your platform's scheduler.

Common Use Cases

Technical Details

Standard cron has five fields: minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–6 or 0–7, both Sunday). Each field accepts a single value, comma-separated list, range with hyphen, increment with /, or wildcard with *.

Day-of-month and day-of-week use OR semantics: if either is set to a non-wildcard value, the job runs when either matches. This is counterintuitive but matches POSIX cron behavior. Setting both fields produces a wider schedule, not a narrower one.

Extensions vary by implementation. Some accept a sixth field for seconds (Quartz, Spring); some accept ? as a wildcard alternative; some include @yearly, @monthly, @daily shortcuts. The generator produces standard 5-field cron suitable for most systems.

Best Practices

Frequently Asked Questions

What does each field in cron mean?
Standard 5-field cron: minute (0–59), hour (0–23), day of month (1–31), month (1–12), day of week (0–6 with Sunday as 0). Some systems add seconds as a 6th field at the start or year as a 6th field at the end.
Why does my job fire at unexpected times?
Most commonly: timezone mismatch between the system and your expectation, or day-of-month and day-of-week both set to non-wildcard values (which triggers the OR semantics). Run the expression through an explainer to confirm intended behavior.
What does */5 mean?
Every 5 units of the field, starting from the field's minimum. In the minute field, */5 means at 0, 5, 10, 15, ... 55 minutes past the hour.
Can I schedule once a year?
Yes — set the month and day-of-month to specific values and the others to wildcards or fixed times. For example, 0 12 25 12 * runs at noon on December 25th every year.
What's the difference between 0 in day-of-week and 7?
Both mean Sunday. POSIX cron accepts 0–6 or 0–7. Use whichever your specific cron implementation prefers; most accept both.
Is the explainer accurate for non-standard cron?
It targets standard 5-field cron. Quartz extensions (with seconds), AWS EventBridge variants, and other dialects may not parse correctly. Confirm against the destination system's documentation.
Is my expression sent to a server?
No. Generation and explanation happen in your browser.
What about the @yearly, @monthly shortcuts?
Common cron implementations support @yearly, @monthly, @weekly, @daily, @hourly, and @reboot as shortcuts for common schedules. The generator produces standard 5-field expressions; you can manually substitute shortcuts if your scheduler accepts them.