Toolman

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.

FieldValueMeaning

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

SymbolMeaningExample
*Every value* * * * * — every minute
,List of values0 9,17 * * * — at 09:00 and 17:00
-Range0 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

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 SUNSAT 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.

Related tools