Cron Expression Guide
Crontab syntax follows the format minute hour day-of-month month day-of-week command. Getting even one field wrong silently breaks your automation.
What is a cron expression?
A string of 5 fields (or 6 with seconds in some platforms) that tells the cron daemon when to run a command. Standard cron does not have a seconds field — that's Quartz/Spring.
Why does my cron job not run?
Common issues: timezone mismatch (server uses UTC), conflicting DOM + DOW fields (use * for one), incorrect path in the command, or cron daemon not running.
GitHub Actions schedule syntax
Uses standard 5-field cron in UTC. Minimum interval is every 5 minutes. Add to on.schedule.cron in your workflow YAML.
AWS EventBridge (CloudWatch Events)
EventBridge supports both rate and cron expressions. Cron uses 6 fields (adds year). DOM and DOW cannot both be * — one must be ?.
Node.js / node-cron
node-cron supports an optional 6th field for seconds. Use node-schedule for more advanced rules including timezone support.
Redirect chains & conflicts
When both Day-of-Month and Day-of-Week are set (not *), most cron implementations run the job if either condition matches — not both. Use * for the one you don't need.