Blog
Wild & Free Tools

Cron Syntax Explained — A Visual Guide to Every Field

Last updated: April 2026 7 min read

Table of Contents

  1. The Five Fields at a Glance
  2. Special Characters: *, /, -, ,
  3. Field-by-Field Examples
  4. Building and Verifying Your Expression
  5. Frequently Asked Questions

A cron expression is five space-separated fields that define a recurring schedule. Reading from left to right: minute hour day-of-month month day-of-week. Once you understand what each field controls, any expression becomes readable in seconds.

Paste an expression into our free crontab visualizer to see it translated to plain English plus the next 20 run times on a calendar.

The Five Cron Fields — A Visual Overview

+----------- minute (0 - 59)
|  +--------- hour (0 - 23)
|  |  +------- day of month (1 - 31)
|  |  |  +----- month (1 - 12)
|  |  |  |  +--- day of week (0 - 7, 0 and 7 = Sunday)
|  |  |  |  |
*  *  *  *  *
FieldRangeNotes
Minute0-590 = start of the hour; 59 = last minute
Hour0-230 = midnight; 12 = noon; 23 = 11 PM
Day of month1-31Starts at 1, not 0. Days beyond month length are skipped.
Month1-121=January, 12=December. Some systems accept JAN-DEC names.
Day of week0-70 and 7 both = Sunday. 1=Monday, 5=Friday, 6=Saturday.

Special Characters: *, /, -, and , Explained

Four special characters cover almost every schedule you'll need:

Asterisk (*) — "every"

* matches every valid value for that field. * * * * * runs every minute. 0 9 * * * runs every day at 9 AM (the * in day/month/weekday means "every day, every month, every day of week").

Slash (/) — "step" or "every N"

*/5 in the minute field means "every 5 minutes." */2 in the hour field means "every 2 hours." You can combine with ranges: 0-30/5 means "every 5 minutes from minute 0 to minute 30."

Hyphen (-) — "range"

1-5 in the day-of-week field means Monday through Friday. 9-17 in the hour field means hours 9 through 17 (9 AM to 5 PM). 0 9-17 * * 1-5 runs every hour from 9 AM to 5 PM on weekdays.

Comma (,) — "list"

1,15 in the day-of-month field means "on the 1st and 15th." 6,18 in the hour field means "at 6 AM and 6 PM." 0 6,12,18 * * * runs at 6 AM, noon, and 6 PM daily.

Sell Custom Apparel — We Handle Printing & Free Shipping

Field-by-Field Examples

Minute field examples:

ValueMeaning
0At the top of the hour (:00)
30At :30 past the hour
*/5Every 5 minutes (:00, :05, :10 ...)
0,30At :00 and :30
0-15Every minute from :00 to :15

Hour field examples:

ValueMeaning
0Midnight (12 AM)
99 AM
175 PM
*/4Every 4 hours (midnight, 4 AM, 8 AM, noon, 4 PM, 8 PM)
9-17Every hour from 9 AM through 5 PM

Day-of-week field examples:

ValueMeaning
0 or 7Sunday
1Monday
5Friday
1-5Monday through Friday
6,0Saturday and Sunday (weekend)

Build Your Expression and Verify It

The fastest workflow:

  1. Use our cron generator to build the expression visually with dropdown fields.
  2. Paste the output into the crontab visualizer to see the next 20 run times on a calendar.
  3. Confirm it matches your intent — especially for business-hours or last-day-of-month schedules.

Common mistakes the visualizer catches:

Try It Free — No Signup Required

Runs 100% in your browser. No account, no install, no limits.

Open Free Crontab Visualizer

Frequently Asked Questions

What does "* * * * *" (five stars) mean in cron?

Five asterisks means "every minute of every hour of every day of every month of every day of the week" — it runs once per minute, continuously. It's the maximum frequency in standard cron. Use this only for tasks that genuinely need per-minute execution.

What is the difference between day-of-month and day-of-week?

Day-of-month (field 3) targets a specific date number in the month: the 1st, 15th, last day, etc. Day-of-week (field 5) targets a recurring weekday: every Monday, every Friday, etc. When both fields are non-wildcard, most cron systems use OR logic — the job runs if either condition matches.

Can cron run more frequently than once per minute?

Standard cron cannot run more frequently than once per minute — the minute is the smallest time unit. For sub-minute scheduling, use a cron job that runs every minute and internally loops (e.g., a shell script that runs every 30 seconds with a sleep loop), or use a different scheduler like systemd timers, Node.js setInterval, or a task queue.

Launch Your Own Clothing Brand — No Inventory, No Risk