Cron Expression Generator · & parser
Build a crontab schedule with the visual builder or type one in, and see what it means in plain English — plus the next run times in your time zone and UTC.
Visual builder
click to build — the expression above updates as you goNext 10 runs
| Local () | UTC | In |
|---|
Cron syntax cheat sheet
| Field | Allowed values | Special characters |
|---|---|---|
| minute | 0–59 | * , - / |
| hour | 0–23 | * , - / |
| day of month | 1–31 | * , - / |
| month | 1–12 or JAN–DEC | * , - / |
| day of week | 0–7 or SUN–SAT (0 and 7 = Sunday) | * , - / |
* means "every". 1-5 is a range, 1,15 a list, */10 a step ("every 10th"), and they combine: 0-30/10 means 0, 10, 20, 30. Shortcuts @yearly, @monthly, @weekly, @daily, @midnight and @hourly are also accepted.
Common cron examples
0 2 * * *— every day at 02:00 (the classic backup slot)*/15 * * * *— every 15 minutes0 9-17 * * 1-5— on the hour during business hours, Monday to Friday0 0 1 1 *— once a year, at midnight on 1 January30 4 1,15 * *— at 04:30 on the 1st and 15th of the month
The day-of-month / day-of-week trap
When both the day-of-month and day-of-week fields are restricted, classic cron runs the job when either matches — not both. 0 0 13 * 5 fires at midnight on every Friday and on the 13th of every month, not only on Friday the 13th. This tool follows that standard Vixie cron behaviour, and the explanation calls it out so you can spot it.
Which time zone?
The cron daemon uses the machine's local time. Cloud servers and containers usually run on UTC, while your laptop doesn't — which is why a "9 am" job can land in your inbox at midnight. The next-runs table shows both your browser's local time and UTC so the difference is obvious.
Building a cron expression visually
The builder below the expression has one row per field. Pick every (*), every N (*/15, or 5-59/15 to start at minute 5), specific values from a grid (1,15), or a range with an optional step (9-17, 0-30/10). Every click rewrites that field of the expression, and typing an expression updates the builder. A field the builder can't represent — say 1-5,10-20/2 — shows as custom and is kept exactly as you typed it. The builder writes plain numbers; month and weekday names like JAN or MON are still accepted when you type them.
Is anything uploaded?
No. Parsing and scheduling math run entirely in this page — you can load it once and use it offline.
What about seconds or years (6/7-field cron)?
Quartz and some schedulers add a seconds field (and sometimes a year). This tool targets the standard 5-field crontab used by Linux cron, GitHub Actions, Kubernetes CronJobs and most CI systems. If you paste a 6-field Quartz expression, it will tell you rather than guess.