How to Read a Crontab Line: Fields, Ranges, and Special Characters

Updated Sep 2026 · originally published Sep 2026

Advertisement

The crontab entry can look intimidating for the beginners due to its fields and doubts about the correct values and ranges to use. A single crontab creats full schedule with is six columns. Once you can read the five time fields left to right, every cron job stops being cryptic.

Black and white terminal diagram of the five crontab fields, ranges, and special characters

The five time fields

Cron reads each line as five time fields followed by the command to run. Left to right: Remember it as expanding and specifying run time of in a day and the weekday in the last field

Here are the fields and range of values that can be used :

  • Minute0-59
  • Hour0-23
  • Day of month1-31
  • Month1-12 (names like Jan also work)
  • Day of week0-6, where 0 and 7 both mean Sunday (names like Mon also work)

Everything after the fifth field is the command, passed straight to the shell.

Reading the example

30 2 * * 1   /home/user/backup.sh
  • 30 minute
  • 2 hour
  • * any day of the month
  • * any month
  • 1 Monday

Result: run backup.sh at 02:30 every Monday.

Special characters (any field)

SymbolMeaningExample
*every value* * * * * runs every minute
,list of values0,15,30,45
-inclusive range1-5 (Mon-Fri)
/step*/15 = every 15 units

One gotcha: when both day-of-month and day-of-week are set (neither is *), most cron implementations run when either matches, not both.

Quick reference

0 * * * *      # top of every hour
*/5 * * * *    # every 5 minutes
0 9 * * 1-5    # 9:00 AM on weekdays
0 0 1 * *      # midnight on the 1st of each month

Use crontab -l to list your jobs and crontab -e to edit them.

Want the full breakdown — user vs system crontabs, /etc/cron.d, environment variables, logging, and common scheduling recipes? Read the complete guide: Crontab Format & Syntax Explained.

Advertisement