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
0HRHour
9DOMDay of Month
*MONMonth
*DOWDay of Week
1-5In 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- 1Mon, May 18, 09:00 AM UTCin 3d
- 2Tue, May 19, 09:00 AM UTCin 4d
- 3Wed, May 20, 09:00 AM UTCin 5d
- 4Thu, May 21, 09:00 AM UTCin 6d
- 5Fri, May 22, 09:00 AM UTCin 7d
- 6Mon, May 25, 09:00 AM UTCin 10d
- 7Tue, May 26, 09:00 AM UTCin 11d
- 8Wed, May 27, 09:00 AM UTCin 12d
- 9Thu, May 28, 09:00 AM UTCin 13d
- 10Fri, May 29, 09:00 AM UTCin 14d
crontab entrybash
# Add to crontab with: crontab -e
0 9 * * 1-5 /path/to/your/script.shSyntax Overview
Field order
MIN
Minute
HR
Hour
DOM
Day of Month
MON
Month
DOW
Day of Week
0 9 * * 1-5Example: At 09:00 AM, Monday through Friday
Common Expressions
* * * * *—Every minute*/5 * * * *—Every 5 minutes0 * * * *—Every hour at :000 0 * * *—Every day at midnight0 9 * * 1-5—Every weekday at 9am0 0 1 * *—1st of every month at midnight0 0 * * 0—Every Sunday at midnight30 6 * * 1—Every Monday at 6:30amFrequently 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.