A cron expression is a string of 5 space-separated fields (minute, hour, day of month, month, day of week) that defines when a scheduled task should run. For example, "0 9 * * 1" means "every Monday at 9:00 AM".
Field 1: Minute (0–59). Field 2: Hour (0–23). Field 3: Day of month (1–31). Field 4: Month (1–12). Field 5: Day of week (0–7, where both 0 and 7 = Sunday). An asterisk (*) means "every".
"*/5" means "every 5 units". So "*/5" in the minute field means "every 5 minutes". "*/2" in the hour field means "every 2 hours". This is called step notation.
GitHub Actions uses the same 5-field syntax as standard Linux cron, but it always runs in UTC and has a minimum interval of about 5 minutes. The generated expression is identical — only the environment differs.
AWS CloudWatch Events / EventBridge uses a 6-field cron syntax with an additional Year field, and uses ? instead of * for "any". This tool generates the correct format for each platform.
Standard Linux cron supports 1-minute intervals. GitHub Actions has an effective minimum of ~5 minutes. AWS EventBridge supports 1-minute intervals. Shorter intervals require a different scheduling system.