Cron Expression Generator
Build a cron schedule from dropdowns and preview the next runs.
| Expression | */5 * * * * |
|---|---|
| Means | Every 5 minutes |
| Runs per day | 288 |
| Timezone | UTC |
| Next run | Tue, 27 Oct 2026 15:55 |
| # | Next runs | In |
|---|---|---|
| 1 | Tue, 27 Oct 2026 15:55 | 2s |
| 2 | Tue, 27 Oct 2026 16:00 | 5m |
| 3 | Tue, 27 Oct 2026 16:05 | 10m |
| 4 | Tue, 27 Oct 2026 16:10 | 15m |
| 5 | Tue, 27 Oct 2026 16:15 | 20m |
| 6 | Tue, 27 Oct 2026 16:20 | 25m |
| 7 | Tue, 27 Oct 2026 16:25 | 30m |
| 8 | Tue, 27 Oct 2026 16:30 | 35m |
| 9 | Tue, 27 Oct 2026 16:35 | 40m |
| 10 | Tue, 27 Oct 2026 16:40 | 45m |
*/5 * * * *
Choose a schedule and get the crontab line for it, described in plain English with the next ten run times worked out in the timezone you pick.
Start from a preset for the common cases, or set the five fields yourself. Already have an expression and want to know what it does? Use the cron expression parser instead.
How it works
A crontab line is five whitespace-separated fields followed by the command to
run. In order they are minute (0–59), hour
(0–23), day of month (1–31), month (1–12) and
day of week (0–7, where both 0 and 7 mean Sunday). An asterisk
means "every value", so * * * * * runs every minute of every day.
Three operators do most of the work. A comma lists values
(0,30). A hyphen gives a range (1-5). A slash gives a
step, applied to whatever precedes it — */15 in the minute field
means every fifteenth minute, and 0-30/10 means minutes 0, 10, 20
and 30 only.
The trap everyone hits is the relationship between day-of-month and
day-of-week. When both are restricted, cron treats them as OR, not AND.
0 0 13 * 5 does not mean "Friday the 13th" — it means every 13th of
the month and every Friday. To get a specific weekday, leave day-of-month
as *.
The second trap is the step that does not divide evenly. */40 in
the minute field fires at minute 0 and minute 40, then the hour rolls over and it
fires at 0 again — so the gap is 40 minutes, then 20. Steps only produce an even
rhythm when they divide the field's range exactly.
Cron runs in the server's timezone, not yours and not UTC unless the server says so. The preview below lets you choose a timezone so you can see what a schedule will actually do; check the server's own setting before relying on it, especially where daylight saving applies — a job scheduled at 02:30 will be skipped on the spring-forward day and run twice in autumn.
Frequently asked questions
How do I run a job every five minutes?
Use */5 * * * *. The step operator in the minute field means "every fifth minute", firing at :00, :05, :10 and so on. Writing 5 * * * * instead is the common mistake — that runs once an hour, at five past.
Why does my "Friday the 13th" cron run every Friday?
Because cron ORs the day-of-month and day-of-week fields whenever both are restricted, rather than ANDing them. There is no expression for "Friday the 13th". The usual workaround is to schedule it for every 13th and have the script itself exit unless the day is a Friday.
What timezone does cron use?
The system timezone of the machine running it, which on many servers is UTC. Some cron implementations honour a CRON_TZ or TZ line at the top of the crontab. Check with the date command on the server rather than assuming.
What does @daily mean?
It is shorthand for 0 0 * * *, midnight every day. The other shorthands are @yearly, @monthly, @weekly, @hourly and @reboot. They are widely supported but not universal, so plain five-field syntax is safer for portable crontabs.
Can a cron job run more often than once a minute?
No — one minute is the finest resolution cron offers. For anything faster, run a long-lived process or a queue worker, or have a per-minute job that loops internally with sleeps. Stacking sub-minute cron entries is fragile and hard to reason about.
Why does my job work by hand but not from cron?
Nearly always the environment. Cron runs with a minimal PATH and none of your shell profile, so unqualified commands are not found and variables are unset. Use absolute paths for both the interpreter and the script, and redirect output to a log so failures are visible.
Related tools
Cron Expression Parser
Translate a cron expression into plain English and see its next run times.
Server Config.htaccess Generator
Build an .htaccess file for redirects, HTTPS, caching and security.
Server ConfigNginx Config Generator
Build an nginx server block for PHP, WordPress, Laravel, SPAs or a proxy.
Server ConfigUnix Timestamp Converter
Convert Unix timestamps to dates and back, in any timezone.
Developer UtilitiesUptime SLA Calculator
Turn an uptime percentage into the downtime it really allows.
Hosting Calculatorschmod Calculator
Convert between 755, rwxr-xr-x and symbolic chmod notation.
Server ConfigNeed hosting that just works?
Free SSL, daily backups and 24×7 support on every Loudhost plan.