Write a crontab schedule, read it in plain language and check exactly when it will run next.
Runs locally — files never leave your device
Loading tool…
How to use Cron Expression Generator
1Type a cron expression, or start from a preset such as "Weekdays at 09:00".
2Edit the five fields — minute, hour, day of month, month and day of week — individually or in the main box.
3Read the plain-language description to make sure the schedule means what you intend.
4Check the next run times in your own time zone, then copy the expression.
Write cron schedules with confidence
Cron expressions are compact, powerful and easy to get wrong. A single misplaced field can turn "every day at 2 a.m." into "every minute between 2 and 3 a.m." This cron expression generator lets you build a schedule field by field or from presets, explains it in plain language and lists the next times it will run, so you can be sure your backup, report or cleanup job runs exactly when you expect.
Features
Five-field editor synced with the full expression.
Plain-language description of the schedule.
Next five run times calculated in your time zone.
Presets for the most common schedules.
Validation with a clear message showing which field is wrong.
Month and weekday names (JAN–DEC, SUN–SAT) and shortcuts like @daily.
Works offline in your browser.
Cron syntax cheat sheet
┌───────── 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)
│ │ │ │ │
* * * * *
Symbol
Meaning
Example
*
Every value
* * * * * — every minute
,
List
0 8,12,18 * * * — at 08:00, 12:00 and 18:00
-
Range
0 9-17 * * * — every hour from 09:00 to 17:00
/
Step
*/15 * * * * — every 15 minutes
Common examples
Expression
Runs
*/5 * * * *
Every 5 minutes
0 * * * *
At the start of every hour
0 2 * * *
Every day at 02:00
0 9 * * 1-5
Weekdays at 09:00
0 0 * * 0
Every Sunday at midnight
0 0 1 * *
On the first day of every month
0 0 1 1 *
Once a year on 1 January
30 18 * * 5
Every Friday at 18:30
Tips
Mind the time zone. Servers and cloud schedulers often use UTC. Use the Time Zone Converter to translate local times.
Avoid the top of the hour for non-urgent jobs; many systems run tasks at 0 * * * *, so a minute like 7 spreads the load.
From left to right: minute (0–59), hour (0–23), day of the month (1–31), month (1–12 or JAN–DEC) and day of the week (0–7, where 0 and 7 are Sunday, or SUN–SAT). For example, 30 6 * * 1 runs at 06:30 every Monday.
What do *, comma, dash and slash mean?
* means every value, a comma lists values (1,15), a dash gives a range (9-17) and a slash sets a step (*/10 = every 10, 0-30/5 = every 5 from 0 to 30). They can be combined, such as 0,30 8-18 * * 1-5.
What happens if I set both day of month and day of week?
In standard cron, if both fields are restricted, the job runs when either one matches. 0 12 13 * 5 runs at noon on the 13th of every month and also every Friday — not only on Friday the 13th.
Which time zone are the next run times shown in?
They're calculated in your device's time zone. A server runs cron in its own time zone, often UTC, so convert accordingly — for example with the Time Zone Converter.
Does it support seconds or the year field?
This tool uses the standard five-field format used by crontab, most Linux systems, GitHub Actions, Kubernetes CronJobs and many cloud schedulers. Some tools such as Quartz add a seconds field and a year field; remove those before checking the expression here. Shortcuts like @daily and @hourly are supported.