Learn cron syntax from scratch — all 5 fields, special characters, and 50 real examples you can copy.
A cron expression is a 5-field text string that tells a computer when to run a task automatically. Example: 0 9 * * 1-5 means "run at 9:00 AM every Monday through Friday."
┌─────── minute (0-59) │ ┌───── hour (0-23) │ │ ┌─── day of month (1-31) │ │ │ ┌─ month (1-12) │ │ │ │ ┌ day of week (0-6, 0=Sunday) │ │ │ │ │ * * * * *
* — every value (wildcard)*/5 — every 5th value (step)1-5 — range from 1 to 51,3,5 — specific values (list)| Expression | Meaning |
|---|---|
* * * * * | Every minute |
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour |
0 9 * * * | Every day at 9am |
0 9 * * 1-5 | Weekdays at 9am |
0 0 * * * | Every midnight |
0 0 1 * * | First of every month |
0 0 * * 0 | Every Sunday midnight |
*/15 * * * * | Every 15 minutes |
30 8 * * 1 | Every Monday 8:30am |
*/5 does NOT mean "every 5 minutes from now." It means "every minute whose value is divisible by 5" — which is always 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55. Cron is absolute, not relative.
GitHub Actions cron always runs in UTC. India is UTC+5:30, so 0 9 * * * on GitHub Actions fires at 2:30 PM IST, not 9 AM. To run at 9 AM IST, use 30 3 * * *.