Developer Utilities2026-03-27

Cron Expression Cheat Sheet: Every 5 Minutes and More

Use tested five-field cron examples for every five minutes, hourly, weekdays, and monthly jobs. Understand time zones, DST, and AWS syntax differences.

croncron-expressionschedulinglinuxdevopsaws

Cron expression cheat sheet

To run a job every five minutes in a standard user crontab, use */5 * * * * before the command. It runs at minutes 00, 05, 10, …, 55 of each hour. For example:

*/5 * * * * /usr/local/bin/check-health

This is a wall-clock schedule, not a promise that a slow or failed job will finish within five minutes. Your scheduler may start a new run while the previous one is still active; add locking or job-level concurrency control if that matters.

Five-field syntax

┌ minute (0–59)
│ ┌ hour (0–23)
│ │ ┌ day of month (1–31)
│ │ │ ┌ month (1–12)
│ │ │ │ ┌ day of week (0–7; 0 and 7 are Sunday in common Unix cron)
* * * * *

In a user crontab, a command follows the five fields. A system crontab such as /etc/crontab also has a username field before the command. * means every allowed value, , makes a list, - a range, and / a step through a range.

Five-field expression When it runs
* * * * * Every minute
*/5 * * * * Every five minutes at minute 0, 5, 10, and so on
0/5 * * * * Same five-minute marks in cron implementations that accept step syntax
0 * * * * At the start of every hour
30 9 * * * Daily at 09:30
0 9 * * 1-5 Monday through Friday at 09:00
0 0 1 * * First day of each month at midnight
0 0 1 1 * January 1 at midnight

These examples use the scheduler's configured time zone. The Linux crontab(5) manual documents the syntax and extensions for its implementation. Always check the documentation for the scheduler that will actually run your expression.

Two traps: calendar logic and time zones

With common Unix cron, when both day-of-month and day-of-week are restricted, a job runs when either matches. Thus 0 9 1 * 1 runs at 09:00 on the first of each month and on every Monday. It does not mean “the first Monday.” Handle that requirement in the job or use a scheduler with an explicit nth-weekday feature.

Time-zone rules also affect wall-clock jobs. A run scheduled in a missing spring-forward hour may be skipped; a time repeated in autumn may run twice in some cron implementations. If you require an elapsed interval regardless of daylight saving time, consider a UTC schedule or an interval-based scheduler. Test the planned schedule across both transitions for the deployment's actual time zone.

The environment variable CRON_TZ is supported by some cron implementations, but not universally. Check the host's cron documentation before relying on it. The Unix Timestamp tool can help translate a planned execution time into UTC.

AWS and systemd are different schedulers

Amazon EventBridge Scheduler uses six fields: cron(minutes hours day-of-month month day-of-week year). It can evaluate schedules in UTC or a named IANA time zone. To run every five minutes, use cron(0/5 * * * ? *); set --schedule-expression-timezone when creating a local-time schedule. AWS documents how Scheduler handles daylight saving transitions. Legacy EventBridge scheduled rules use UTC; do not assume the same time-zone behavior applies to both services.

systemd timers use OnCalendar expressions instead of five-field cron. For a five-minute wall-clock schedule, OnCalendar=*:0/5 is one possible expression. Check it with systemd-analyze calendar '*:0/5' on the host. Persistent=true concerns catching up missed calendar events after downtime; it does not make the schedule run exactly every five elapsed minutes.

The Cron Expression Generator gives you five-field templates and a copyable expression. It does not validate every scheduler's syntax or calculate future runs; verify the result in your target scheduler before relying on it.