How to Read a Cron Expression (With Examples)
Developer · October 1, 2026 · 2 min read
Cron is the scheduler built into Linux, macOS and most hosting platforms. A cron expression is a short line of five fields that tells it when to run a job. It looks cryptic at first, but there are only a few rules to learn.
The five fields
Read an expression from left to right. Each field is separated by a space:
minute (0-59) | hour (0-23) | | day of month (1-31) | | | month (1-12) | | | | day of week (0-7, Sunday is 0 or 7) | | | | | * * * * *
A job runs when the current time matches every field. So 30 14 * * * means minute 30 of hour 14 on any day: 14:30 every day.
The four special characters
*means "every value". A star in the hour field means every hour.,makes a list.0,30in the minute field means minute 0 and minute 30.-makes a range.1-5in the day-of-week field means Monday to Friday./sets a step.*/15in the minute field means every 15 minutes, and10-40/10means 10, 20, 30 and 40.
Common schedules
* * * * *runs every minute.*/5 * * * *runs every 5 minutes.0 * * * *runs at the start of every hour.0 9 * * 1-5runs at 09:00 on weekdays.30 2 1 * *runs at 02:30 on the first day of each month.0 0 * * 0runs at midnight every Sunday.@dailyis a shortcut for0 0 * * *.@hourly,@weekly,@monthlyand@yearlywork the same way.
A rule that surprises people
When both the day-of-month and the day-of-week fields are set, standard cron runs the job when either one matches, not both. The expression 0 0 1 * 1 doesn't mean "the first of the month, if it is a Monday". It runs on the first of every month and on every Monday.
Time zones and daylight saving
Cron uses the time zone of the machine it runs on, which is often UTC on servers. If your server follows local time, a job at 02:30 may be skipped or run twice when the clocks change. Running important jobs in UTC avoids that.
Try it yourself: paste any expression into the Cron Expression Explainer to see it in everyday words and check the next run times before you deploy.