Standard Linux/Unix Cron Expression Guide

The universal 5-field cron format used by Linux, macOS, and most Unix systems. The foundation all other platform syntaxes are built on.

Live Builder

Valid
MINMinute
0
HRHour
9
DOMDay of Month
*
MONMonth
*
DOWDay of Week
1-5

In plain English

At 09:00 AM, Monday through Friday

English → Cron

Try: "every 5 minutes", "every weekday at 9am", "every Monday at 3pm", "every month on the 1st"

Next 10 Executions

UTC
  1. 1Mon, May 18, 09:00 AM UTCin 3d
  2. 2Tue, May 19, 09:00 AM UTCin 4d
  3. 3Wed, May 20, 09:00 AM UTCin 5d
  4. 4Thu, May 21, 09:00 AM UTCin 6d
  5. 5Fri, May 22, 09:00 AM UTCin 7d
  6. 6Mon, May 25, 09:00 AM UTCin 10d
  7. 7Tue, May 26, 09:00 AM UTCin 11d
  8. 8Wed, May 27, 09:00 AM UTCin 12d
  9. 9Thu, May 28, 09:00 AM UTCin 13d
  10. 10Fri, May 29, 09:00 AM UTCin 14d
crontab entrybash
# Add to crontab with: crontab -e
0 9 * * 1-5    /path/to/your/script.sh

Syntax Overview

Field order

MIN

Minute

HR

Hour

DOM

Day of Month

MON

Month

DOW

Day of Week

0 9 * * 1-5

Example: At 09:00 AM, Monday through Friday

Common Expressions

* * * * *Every minute
*/5 * * * *Every 5 minutes
0 * * * *Every hour at :00
0 0 * * *Every day at midnight
0 9 * * 1-5Every weekday at 9am
0 0 1 * *1st of every month at midnight
0 0 * * 0Every Sunday at midnight
30 6 * * 1Every Monday at 6:30am

Frequently Asked Questions

How do I edit my crontab on Linux?
Run "crontab -e" in your terminal. This opens your user's crontab in the default editor (usually vi or nano). Each line is one scheduled job in the format: minute hour dom month dow command.
What does the * wildcard mean in cron?
"*" means "every value in this field." For example, "* * * * *" means every minute of every hour of every day. "0 * * * *" means at minute 0 of every hour.
Can cron run a job every 30 seconds?
No — standard cron has a 1-minute minimum. For sub-minute scheduling, use Quartz Scheduler (Java), a language-level scheduler like Celery (Python) or Sidekiq (Ruby), or a systemd timer with OnCalendar syntax.
Does cron use local time or UTC?
Standard Linux cron uses the server's local timezone, as configured in /etc/timezone or the TZ variable in the crontab file itself. Add "CRON_TZ=UTC" at the top of your crontab to force UTC.
What does @reboot do in crontab?
"@reboot command" runs the command once when the cron daemon starts (typically on system boot). It's not a time-based schedule — it's a one-time trigger on restart.