Cron Expression Generator
Type a cron expression to see what it means and when it runs next, or pick a preset. Supports standard 5-field crontab plus */n, ranges and lists.
| Field | Value | Meaning |
|---|
Next 10 runs (your local time zone)
Cron field reference
┌───────── minute (0 - 59)
│ ┌─────── hour (0 - 23)
│ │ ┌───── day of month (1 - 31)
│ │ │ ┌─── month (1 - 12)
│ │ │ │ ┌─ day of week (0 - 6, Sunday = 0)
│ │ │ │ │
* * * * *
Special characters
| Symbol | Meaning | Example |
|---|---|---|
* | Every value | * * * * * — every minute |
, | List of values | 0 9,17 * * * — at 09:00 and 17:00 |
- | Range | 0 9-17 * * * — hourly from 09:00 to 17:00 |
/ | Step | */15 * * * * — every 15 minutes |
The day-of-month / day-of-week trap
When both the day-of-month and day-of-week fields are restricted, standard cron treats them as OR, not AND. 0 0 13 * 5 runs on the 13th of the month and on every Friday — not only on Friday the 13th. To get an AND, leave one field as * and check the other condition inside your script.
Practical warnings
- Time zone. Cron uses the server's local time. A daily 02:30 job may run twice or not at all on daylight-saving transition days — schedule sensitive jobs outside 01:00–03:00 or run the server in UTC.
- Overlap. Cron starts a new run on schedule even if the previous one is still going. Use a lock file or
flockfor jobs that must not overlap. - Environment. Cron runs with a minimal environment and a bare
PATH. Use absolute paths and source your profile explicitly. - Percent signs. In a crontab,
%is special and must be escaped as\%— a common cause of brokendateformats.
Non-standard extensions
Many systems add shortcuts such as @hourly, @daily, @weekly, @monthly, @yearly and @reboot. Quartz (Java) and AWS EventBridge use a six- or seven-field format that adds seconds and years, and support L, W and # for "last", "nearest weekday" and "nth weekday of the month".
Frequently asked questions
How do I run a cron job every 5 minutes?
Use */5 * * * *. The */5 step applies to the minute field, so the job fires at :00, :05, :10 and so on.
How do I run a job only on weekdays?
Set the day-of-week field to 1-5 (Monday to Friday). For example 0 9 * * 1-5 runs at 09:00 Monday through Friday.
Is Sunday 0 or 7?
Both work in most implementations — 0 and 7 each mean Sunday. Prefer 0 for portability, or use the three-letter names SUN–SAT where supported.
Why did my cron job not run?
The three usual causes are a missing execute permission on the script, a command that relies on a PATH or environment variable cron does not have, and output going nowhere because no mail transport is configured. Redirect output to a log file to see what happened.
How do I schedule something every 90 minutes?
Cron cannot express intervals that do not divide evenly into an hour. Either list the times explicitly (0 0,3,6,9,12,15,18,21 * * * for every three hours) or run every 30 minutes and let the script decide whether to act.