Cron Expression Generator
Build, validate, and understand cron schedules — preview next execution times instantly, nothing sent to any server
Common Schedules
0 * * * *Schedule Description
Every hour
Next 5 Execution Times
Computing…
Field reference ▸
| Field | Required | Values | Special |
|---|---|---|---|
| Minute | Yes | 0–59 | * */5 0-30 |
| Hour | Yes | 0–23 | * */2 9-17 |
| Day (Month) | Yes | 1–31 | * 1 15 |
| Month | Yes | 1–12 | * JAN-DEC |
| Day (Week) | Yes | 0–6 | * SUN-SAT 1-5 |
* — any value*/N — every N unitsN-M — rangeN,M — listN-M/S — range with step@yearly → 0 0 1 1 *@monthly → 0 0 1 * *@weekly → 0 0 * * 0@daily → 0 0 * * *@hourly → 0 * * * *What Is a Cron Expression?
A cron expression is a compact string that defines a recurring schedule for automated tasks. The format comes from the Unix cron daemon, which reads these expressions to determine when to run jobs. Every CI/CD pipeline, cloud scheduler (AWS EventBridge, Google Cloud Scheduler, Kubernetes CronJob), and task runner (crontab, Sidekiq, Celery) accepts this 5-field syntax.
A standard cron expression has 5 space-separated fields:
┌─────────── minute (0–59)
│ ┌───────── hour (0–23)
│ │ ┌─────── day of month (1–31)
│ │ │ ┌───── month (1–12 or JAN–DEC)
│ │ │ │ ┌─── day of week (0–6 or SUN–SAT, 0=Sunday)
│ │ │ │ │
* * * * *
How to Use This Cron Expression Generator
- Enter values in each of the 5 fields using text mode, or switch to Visual mode to use quick-select chips and day/month toggles.
- Load a preset from the Common Schedules section to start from a well-known schedule.
- Read the description — the tool auto-generates a human-readable summary of your schedule (e.g., “At 9:00 AM, on weekdays”).
- Check next execution times — see the next 5 dates and times your schedule would fire.
- Copy the expression with the Copy button to paste into your crontab, Kubernetes manifest, or CI/CD config.
Cron Field Syntax
Each field supports four types of values:
| Syntax | Meaning | Example |
|---|---|---|
* | Any value (wildcard) | * * * * * — every minute |
N | Specific value | 30 9 * * * — at 9:30 AM daily |
N-M | Range (inclusive) | 1-5 in the weekday field — Monday through Friday |
N,M,P | List | 0,15,30,45 in minute — every quarter hour |
*/N | Step from minimum | */5 in minute — every 5 minutes |
N-M/S | Range with step | 0-23/2 in hour — every 2 hours |
Month and weekday fields also accept named values (case-insensitive): JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC and SUN, MON, TUE, WED, THU, FRI, SAT.
Special @ Strings
Many cron implementations support shorthand @ strings that expand to common expressions:
| String | Expands to | Meaning |
|---|---|---|
@yearly / @annually | 0 0 1 1 * | Once a year on January 1st at midnight |
@monthly | 0 0 1 * * | Once a month on the 1st at midnight |
@weekly | 0 0 * * 0 | Once a week on Sunday at midnight |
@daily / @midnight | 0 0 * * * | Once a day at midnight |
@hourly | 0 * * * * | Once an hour at minute 0 |
Common Cron Patterns
| Expression | Description |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour |
0 0 * * * | Every day at midnight |
0 12 * * * | Every day at noon |
0 9 * * 1-5 | Weekdays at 9:00 AM |
0 9 * * MON | Every Monday at 9:00 AM |
0 0 1 * * | First of every month at midnight |
0 0 1 1 * | Once a year on January 1st |
0 2 * * 0 | Every Sunday at 2:00 AM (good for backups) |
*/15 8-17 * * 1-5 | Every 15 minutes during business hours on weekdays |
0 0,12 * * * | Twice a day at midnight and noon |
Platform-Specific Notes
AWS EventBridge / CloudWatch Events uses a 6-field format with an optional year field and uses ? instead of * for the day-of-month or day-of-week field when the other is specified. However, the standard 5-field format used here works for most other platforms.
Kubernetes CronJobs accept the standard 5-field cron syntax and also support the @ shorthand strings.
GitHub Actions uses the standard 5-field cron syntax in its schedule trigger: on: schedule: - cron: '0 9 * * 1-5'.
Linux crontab is the original 5-field format, where you can also add a username field (6 fields total) in system crontab files (/etc/crontab, /etc/cron.d/).
Frequently Asked Questions
What is the minimum cron interval? The standard cron format supports a minimum of 1 minute between executions (the finest granularity is the minute field). For sub-minute scheduling, you would need application-level solutions or tools like Quartz Scheduler (Java) which add a seconds field.
How do I run a job at 2:30 PM?
Use 30 14 * * *. In 24-hour format, 2:30 PM is hour 14, minute 30.
What does day-of-week 0 vs 7 mean?
Both 0 and 7 represent Sunday. The day-of-week field uses 0–6 or 0–7 where both 0 and 7 are Sunday. This tool normalizes 7 to 0 internally.
Why doesn’t my expression match on February 31st? There is no February 31st (or February 30th, 29th in non-leap years). If your cron specifies an invalid day of month for a given month (e.g., day 31 in April), no execution occurs that month for that day.
Is my data sent to a server? No. All parsing, validation, and next-execution computation happens entirely in your browser using JavaScript. Nothing is transmitted to any server.