Cron Expression Generator
Generate cron expressions with an interactive builder. Presets for common schedules. Human-readable descriptions included.
* * * * *Every minute
What is Cron Expression Generator?
A cron expression generator helps you build valid cron schedule expressions through an intuitive interface instead of memorizing the cryptic 5-field syntax. Cron expressions define recurring schedules for automated tasks — they're used in Linux cron jobs, cloud schedulers (AWS CloudWatch, Google Cloud Scheduler), CI/CD pipelines, and task runners. The 5 fields (minute, hour, day-of-month, month, day-of-week) combine to express schedules from 'every minute' to complex patterns like 'at 2:30 AM on the first Monday of every quarter.'
How It Works
Select your desired schedule using dropdowns and inputs for each field: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-6). The tool generates the corresponding cron expression and shows a human-readable description of when it will run. It also displays the next several execution times so you can verify the schedule matches your intent. Advanced options support ranges (1-5), lists (1,3,5), intervals (*/5 for every 5 units), and specific value combinations.
Examples
Minute 30, hour 9, Mon–Fri
30 9 * * 1-5
Every 15 min, 09:00–17:00, weekdays
*/15 9-17 * * 1-5
Quick Reference
| Expression | Meaning |
|---|---|
| * * * * * | Every minute |
| */15 * * * * | Every 15 minutes |
| 0 * * * * | Hourly, on the hour |
| 0 2 * * * | Every day at 02:00 |
| 30 9 * * 1-5 | 09:30, Monday to Friday |
| 0 0 1 * * | Midnight on the first of each month |
| 0 0 * * 0 | Midnight every Sunday |
| 0 9-17/2 * * 1-5 | Every 2 hours, 09:00-17:00, weekdays |
Common Use Cases
- •Setting up automated database backup schedules for production systems
- •Configuring CI/CD pipeline triggers for nightly builds or weekly deployments
- •Creating scheduled report generation — daily, weekly, or monthly at specific times
- •Setting up monitoring alert check intervals for infrastructure health checks
- •Scheduling cache invalidation, log rotation, or cleanup jobs at appropriate intervals
- •Configuring email digest schedules — daily summaries, weekly newsletters, monthly reports
Frequently Asked Questions
What cron format is used?▼
Standard 5-field cron: minute, hour, day-of-month, month, day-of-week.
What do the five fields in a cron expression mean?▼
In order: minute (0 to 59), hour (0 to 23), day of month (1 to 31), month (1 to 12) and day of week (0 to 6, where 0 is Sunday). So `30 2 * * 1` runs at 02:30 every Monday.
What is the difference between */15 and 0,15,30,45?▼
In the minute field they are equivalent. The step syntax `*/15` means every 15th minute starting from 0, and the list is explicit. Steps become clearer for irregular ranges — `0 9-17/2 * * *` runs every two hours between 09:00 and 17:00.
Why does specifying both day of month and day of week behave oddly?▼
This is the classic cron trap. When both fields are restricted, most implementations treat them as OR rather than AND, so `0 0 1 * 1` runs on the first of the month *and* every Monday, not only on a Monday that falls on the first. Leave one of the two as `*` unless you genuinely want the OR behaviour.
Which timezone does a cron job use?▼
Whatever the host or scheduler is configured for, which is frequently UTC on servers and containers while your intent was local time. Daylight saving makes this worse: a job scheduled at 02:30 local may be skipped or run twice on transition days. Schedule in UTC where you can, and avoid the hour that shifts.
Do all cron implementations accept the same syntax?▼
The five-field form is portable. Beyond that they diverge: Quartz and Spring add a seconds field at the front, giving six or seven fields; special strings such as `@daily` and `@reboot` are a Vixie cron extension; and `L`, `W` and `#` for last, nearest-weekday and nth-weekday are Quartz-only. Check what your scheduler supports.
How do I run a job on the last day of the month?▼
Plain cron cannot express it, since there is no way to say "28th, 30th or 31st depending on the month". Either use `L` if your scheduler is Quartz-based, or schedule the job daily and have the script exit unless tomorrow is the first of the month.
Related Tools
More from Developer Tools:
Unix Timestamp Converter
Convert Unix timestamps to human-readable dates and vice versa. Shows current Unix time live. Handles seconds and milliseconds.
UUID Generator
Generate random UUID v4 strings instantly. Bulk generate unique identifiers for databases, APIs, and testing. Free online UUID/GUID generator.
JSON Formatter
Format, validate, and beautify JSON data online. Free JSON formatter with syntax highlighting, error detection, and minify option.