Type a cron schedule and see what it means in plain English — plus the next run times in your time zone and UTC.
| Local () | UTC | In |
|---|
| 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.
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 monthWhen 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.
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.
No. Parsing and scheduling math run entirely in this page — you can load it once and use it offline.
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.