Get online today — Domain + Hosting at discounted prices View Combo Offers ›

Cron Expression Parser

Translate a cron expression into plain English and see its next run times.

Five fields: minute hour day month weekday. Shorthands like @daily also work.

Done Every 15 minutes during 09:00–17:59 on weekdays
Expression */15 9-17 * * 1-5
Means Every 15 minutes during 09:00–17:59 on weekdays
Runs per day 36
Next run Tue, 27 Oct 2026 16:00 (UTC)
Minute 0, 15, 30, 45
Hour 9, 10, 11, 12, 13, 14, 15, 16, 17
Day of month every
Month every
Day of week 1, 2, 3, 4, 5
# Next run (UTC) In
1 Tue, 27 Oct 2026 16:00 5 min
2 Tue, 27 Oct 2026 16:15 20 min
3 Tue, 27 Oct 2026 16:30 35 min
4 Tue, 27 Oct 2026 16:45 50 min
5 Tue, 27 Oct 2026 17:00 1 hr 5 min
6 Tue, 27 Oct 2026 17:15 1 hr 20 min
7 Tue, 27 Oct 2026 17:30 1 hr 35 min
8 Tue, 27 Oct 2026 17:45 1 hr 50 min
9 Wed, 28 Oct 2026 09:00 17 hr 5 min
10 Wed, 28 Oct 2026 09:15 17 hr 20 min
*/15 9-17 * * 1-5   # Every 15 minutes during 09:00–17:59 on weekdays

Paste a cron expression to see what it actually means and exactly when it will next fire. Syntax errors are explained rather than just reported, and the next ten run times are calculated so you can confirm the schedule matches your intent.

Shorthands such as @daily and @hourly are understood, and month and day names (JAN, MON) work too.

How it works

A cron expression is five fields separated by spaces:

minute hour day-of-month month day-of-week

Each accepts a number, a list (1,15), a range (9-17), a step (*/5), or * for "every". Combined: */15 9-17 * * 1-5 means every fifteen minutes between 9am and 5pm, Monday to Friday.

The day-of-week trap. When day-of-month and day-of-week are both restricted, cron treats them as OR, not AND. So 0 0 1 * 1 runs on the 1st of the month and on every Monday — not only on Mondays that happen to fall on the 1st. This surprises nearly everyone, and the next-run list here makes it obvious.

Two more things that catch people out:

  • Six fields is a different format. Quartz and Spring add a leading seconds field. Pasting a six-field expression into Unix crontab shifts every field by one, so a job you meant to run hourly runs at a completely different time.
  • Timezone. Cron uses the server's local timezone, not yours. A job set for 02:00 runs at 02:00 wherever the server thinks it is — and during daylight-saving transitions a job can run twice or not at all.

On frequency: anything more often than once a minute is impossible, since minute is the smallest unit. If you need finer granularity, run a job every minute that loops internally, or use a proper queue worker.

Frequently asked questions

Why does my job run more often than expected?

Almost always the day-of-week OR rule. If both day-of-month and day-of-week are set, cron runs when EITHER matches. "0 0 1 * 1" fires on the 1st and on every Monday. To require both, leave one as * and check the condition inside your script.

What timezone does cron use?

The server's local timezone, which is often UTC and often not what you assume. Check with the date command on the server. Some cron implementations support a CRON_TZ variable at the top of the crontab.

What is the difference between */5 and 5?

*/5 in the minute field means every fifth minute — 0, 5, 10 and so on. A plain 5 means only at minute 5, once per hour. Mixing these up is the difference between 288 runs a day and 24.

Why does my six-field expression not work?

Six fields is the Quartz/Spring format, which adds seconds at the front. Unix cron expects five. Pasting six into crontab shifts everything by one position, so the schedule is silently wrong rather than rejected.

Can I run something every 30 seconds?

Not with cron — a minute is the smallest unit. Either run every minute and sleep 30 seconds for the second execution, or use a persistent worker or systemd timer, which supports sub-minute intervals.

What happens during daylight saving changes?

A job scheduled in the hour that is skipped forward may not run at all; one in the repeated hour may run twice. If that matters, schedule outside 01:00-03:00 or set the server to UTC, which has no transitions.

Related tools

Need hosting that just works?

Free SSL, daily backups and 24×7 support on every Loudhost plan.

View Hosting Plans