Free Cron Expression Generator & Explainer
Build and decode cron expressions with a visual editor. Get a plain-English explanation and the next run times as you type. Free crontab tool for developers, no signup.
Minute
0-59
Hour
0-23
Day (month)
1-31
Month
1-12
Day (week)
0-7
0 9 * * 1-5In plain English
At 09:00, on 5 selected values.
Next 5 run times (your local time)
- 1Mon, Jun 29, 2026, 09:00 AM
- 2Tue, Jun 30, 2026, 09:00 AM
- 3Wed, Jul 1, 2026, 09:00 AM
- 4Thu, Jul 2, 2026, 09:00 AM
- 5Fri, Jul 3, 2026, 09:00 AM
Quick Answer
A cron expression generator builds and explains the five-field schedule strings (minute, hour, day-of-month, month, day-of-week) used by cron, crontab, and most schedulers. Pick a preset or edit each field, and the tool shows the expression, a plain-English description, and the next run times. The U2L Cron Expression Generator runs entirely in your browser. Free, no signup.
Quick Facts
- Standard cron format: five fields - minute (0-59), hour (0-23), day-of-month (1-31), month (1-12), day-of-week (0-7, where 0 and 7 are Sunday).
- Special characters: * (every value), */n (every n), a-b (range), a,b,c (list). Example: */15 9-17 * * 1-5 runs every 15 minutes, 9am-5pm, weekdays.
- When both day-of-month and day-of-week are restricted, cron runs when EITHER matches, not both.
- Omitting seconds is standard Unix cron; some schedulers (Quartz, some clouds) add a 6th seconds field.
- The plain-English explainer and next-run preview update live as you edit any field.
- Browser-only and instant - your schedule is parsed locally and never sent to U2L servers.
- Use presets (every 15 minutes, weekdays at 9am, first of the month) to start, then fine-tune each field.
How to build a cron expression
Start from a preset or edit the five fields directly.
- 1
Pick a preset or start editing
Choose a common schedule like 'Weekdays at 9:00 AM' to populate the fields, or type directly into the five field boxes for full control.
- 2
Adjust the five fields
Edit minute, hour, day-of-month, month, and day-of-week. Use *, ranges (1-5), lists (1,3,5), and steps (*/15). The expression updates instantly.
- 3
Read the explanation and next runs
Confirm the plain-English description matches your intent and check the next run times. When it looks right, copy the expression into your crontab or scheduler.
What is a Cron Expression Generator?
Cron Expression Generator is a tool that builds, validates, and explains cron expressions - the compact five-field strings that tell cron and crontab when to run a job. Instead of memorizing the field order and syntax, you edit each field (or pick a preset) and the tool shows the resulting expression, a human-readable description, and the upcoming run times.
Cron is the time-based job scheduler built into Unix and Linux systems, and its expression syntax has become the de facto standard far beyond Unix - GitHub Actions, Kubernetes CronJobs, cloud schedulers, and countless app frameworks all accept the same five-field format. A cron expression like 0 9 * * 1-5 reads as 'at 09:00, Monday through Friday'.
The syntax is powerful but error-prone. The five fields are easy to mix up, the day-of-month / day-of-week interaction surprises even experienced engineers, and a single wrong character can mean a backup that never runs or a report that fires every minute. A generator removes the guesswork by showing exactly what an expression means before you ship it.
Developers, DevOps engineers, and sysadmins use this to author new schedules, decode an inherited crontab line, and sanity-check an expression's next run times before deploying it to production.
How does a Cron Expression Generator work?
A cron expression has five space-separated fields: minute, hour, day-of-month, month, and day-of-week. Each field accepts a specific value (5), a wildcard (*), a step (*/15 = every 15 units), a range (1-5), a list (1,3,5), or combinations of those. The generator parses each field independently, validating that values fall within the allowed bounds.
To produce the plain-English description, the tool expands each field into the set of values it matches, then composes a sentence: it recognizes common shapes ('every minute', 'at 09:00', 'weekdays') and falls back to listing values for unusual ones. This makes the meaning unambiguous without you having to mentally expand the syntax.
For the next run times, the tool walks forward from the current minute, checking each candidate minute against all five fields, and collects the first matches. It applies the real cron rule for the day fields: if both day-of-month and day-of-week are restricted, a run fires when either one matches; if only one is restricted, that one must match. This is the single most misunderstood part of cron, and seeing the actual next runs catches mistakes immediately.
Everything runs in your browser using plain JavaScript and the built-in date APIs, so the preview reflects your local timezone. No expression or schedule is sent to U2L. The five-field output is portable to any standard cron implementation; if your scheduler uses a sixth seconds field or non-standard extensions, treat this as the minute-and-up portion.
Use Cases
How marketers, businesses, and developers use cron expression generator.
Scheduling server cron jobs
Author the schedule for backups, log rotation, and cleanup scripts, then paste the expression straight into your crontab with confidence it fires when intended.
GitHub Actions and CI schedules
Build the cron string for scheduled workflows (nightly tests, dependency updates) and verify the next runs before committing the YAML.
Decoding an inherited crontab
Paste a cryptic expression like 30 2 * * 0 into the fields to instantly learn it means 'every Sunday at 02:30' before you touch a legacy system.
Kubernetes CronJob manifests
Generate the schedule field for a CronJob and confirm its cadence so a misconfigured job does not hammer your cluster every minute.
Cloud scheduler rules
Create the cron expression for AWS EventBridge, Google Cloud Scheduler, or Azure functions and validate the timing before deploying.
Database and report automation
Schedule nightly ETL jobs, weekly report emails, or monthly invoicing and use the next-run preview to confirm the first execution lands when expected.
App framework task schedulers
Laravel, Rails, Django-cron, node-cron and others accept cron syntax. Build the expression here and drop it into your scheduler definition.
Learning and teaching cron
New engineers can experiment with fields and watch the description and run times change, building intuition for the syntax without trial-and-error in production.
Sanity-checking the day-of-week trap
Test expressions where both day fields are set to confirm the OR behavior, catching the classic bug where a job runs more often than intended.
Cron Expression Generator vs Alternatives
Side-by-side feature and pricing comparison with the top alternatives.
| Feature | U2L | crontab.guru | Manual editing | man 5 crontab |
|---|---|---|---|---|
| Free, no signup | ||||
| Visual field editor + presets | Limited | |||
| Plain-English explanation | ||||
| Next run times preview | ||||
| Day-of-month / day-of-week OR rule applied | Manual | Documented | ||
| Browser-only (no data sent) | N/A |
Cron Expression Generator vs crontab.guru
crontab.guru is the long-standing reference for decoding a cron expression - paste a string and read its meaning. It is excellent for quick lookups and is the tool most engineers reach for first.
U2L adds a visual five-field editor with labeled bounds, a preset menu for common schedules, and a next-run preview in your local timezone, alongside a full reference of the syntax and the day-field OR rule. For building an expression from scratch (rather than only decoding one), the guided editor is faster and harder to get wrong.
Cron Expression Generator vs Editing the crontab by hand
Experienced sysadmins edit crontab lines directly in vim. It is fast once the syntax is muscle memory and needs no external tool.
The risk is that a wrong field fails silently - the job simply runs at the wrong time or never. The generator's live description and next-run list surface that mistake before it reaches production, which is worth the few seconds even for experts.
Best Practices
Read the plain-English description before deploying
Always confirm the sentence matches your intent. It is the fastest way to catch a swapped field or an off-by-one hour.
Check the next run times
The upcoming runs reveal mistakes a static expression hides. If the first run is not when you expect, the expression is wrong.
Mind the day-of-month / day-of-week interaction
When both are set, cron runs when either matches. If you mean 'the 1st only when it is a Monday', cron cannot express that directly - rethink the schedule.
Use steps instead of long lists
*/15 is clearer and less error-prone than 0,15,30,45. Prefer step syntax for evenly spaced schedules.
Remember cron uses the server's timezone
Cron fires in the machine's local timezone (often UTC on servers). Account for that gap between the preview's local time and where the job actually runs.
Avoid 'every minute' in production by accident
Leaving the minute field as * runs the job 60 times an hour. Double-check the minute field is set when you intend an hourly or daily job.
Keep heavy jobs off the top of the hour
Everyone schedules at :00. Offset heavy jobs (for example minute 7) to avoid resource contention with other cron tasks.
Comment your crontab lines
Cron files have no built-in description. Add a comment above each line - the generated plain-English sentence makes a good one.
Common Mistakes to Avoid
Assuming both day fields must match (AND)
When day-of-month and day-of-week are both restricted, cron uses OR - the job runs if either matches. This causes jobs to fire more often than expected.
Leaving the minute field as a wildcard
0 * * * * is hourly, but * * * * * runs every minute. Forgetting to set the minute is the classic 'why is this running constantly' bug.
Mixing up the field order
The order is minute, hour, day-of-month, month, day-of-week. Putting the hour first (a natural instinct) schedules the job completely wrong.
Forgetting cron runs in the server timezone
A schedule that looks like 9am to you may run at 9am UTC on the server - hours off from your local expectation. Always reconcile timezones.
Using a 6-field expression where 5 is expected
Adding a seconds field for standard Unix cron shifts every field one place to the right and breaks the schedule. Know whether your scheduler wants 5 or 6 fields.
Using day names or month names where numbers are required
Standard cron uses numbers (0-7 for days, 1-12 for months). Some implementations accept names (MON, JAN) but many do not - use numbers for portability.
Technical Specifications
| Fields | minute, hour, day-of-month, month, day-of-week (5 fields) |
| Minute range | 0-59 |
| Hour range | 0-23 |
| Day-of-month range | 1-31 |
| Month range | 1-12 |
| Day-of-week range | 0-7 (0 and 7 = Sunday) |
| Operators | * (any), / (step), - (range), , (list) |
| Day-field rule | OR when both day-of-month and day-of-week are restricted |
| Privacy | Parsed in your browser. No data sent to U2L. |
Frequently Asked Questions
What is a cron expression?
What do the five fields mean?
What does */15 mean in cron?
How do I run a job every weekday at 9 AM?
What is the day-of-month and day-of-week 'OR' rule?
Does standard cron support seconds?
What timezone does cron use?
Can I use names like MON or JAN?
How do I run something on the first of every month?
Why is my cron job running every minute?
How do I schedule every 5 minutes?
Can cron run a job multiple times a day?
What does 0 0 * * 0 mean?
Is this generator accurate for next run times?
Does the tool send my expression anywhere?
Where can I use the expression I build?
Related Free Tools
Whois Lookup
Look up registrar, owner, creation date, expiry, and DNS for any domain. Free Whois data, no API key.
Free QR Code API
REST API for generating SVG and GIF QR codes. WiFi, vCard, URL, and text. Free, no API key, edge-cached.
DNS / CNAME Checker
Look up A, AAAA, CNAME, MX, TXT, NS records for any domain. Verify global DNS propagation in seconds.
SSL Certificate Checker
Inspect any SSL certificate: validity, issuer, chain, expiry, and protocol. Spot issues before users do.
HTTP Header Inspector
Inspect HTTP request and response headers for any URL. Cache, security, CORS, and server details.
URL Shortener Speed Test
Compare redirect response times across 10+ URL shorteners. Real measurements in your browser.
Key Terms
- Cron
- The time-based job scheduler in Unix-like operating systems, and by extension the expression format many other schedulers adopt.
- Crontab
- The configuration file (and command) that lists cron jobs, one per line, each beginning with a five-field cron expression.
- Field
- One of the five space-separated parts of a cron expression: minute, hour, day-of-month, month, and day-of-week.
- Step value
- The /n syntax (for example */15) that schedules every n units within a field, such as every 15 minutes.
- Wildcard
- The * character, meaning 'every value' for that field - every minute, every hour, every day, and so on.
Automating links and campaigns on a schedule?
Pair your scheduled jobs with u2l.ai branded short links and the U2L API to rotate destinations and track clicks automatically. Sign up free to manage links, QR codes, and analytics in one place.
Sign up free