Running a Cron Job Biweekly (Every Two Weeks)
Cron has no native 'every two weeks' option, because its fields repeat every month and every week with no notion of a 14-day cycle. The honest answer: approximate it with day-of-month, or run weekly and let the script decide using the ISO week number.
Why cron can't do true biweekly
Cron fields are minute, hour, day-of-month, month, day-of-week. None of them count a rolling 14-day cycle, so there is no expression that means 'every 14 days' across month boundaries.
Closest approximation: twice a month
0 9 1,15 * * runs at 9 AM on the 1st and 15th. It is not exactly 14 days apart, but for most 'biweekly' needs it is good enough and fully declarative.
Exact fortnightly: run weekly, check in the script
Schedule it every week, then let the job bail out on the off weeks using the ISO week number:
0 9 * * 1 [ $((10#$(date +\%V) \% 2)) -eq 0 ] && /path/job.sh
This runs Mondays but only acts on even ISO weeks, giving a true 14-day cadence. (Escape the % as \% in crontab.)
FAQ
What is the cron expression for every two weeks?
There isn't a clean one — cron has no 14-day cycle. Approximate with 0 9 1,15 * * (twice a month), or run weekly and gate on the ISO week number for a true fortnightly cadence.
How do I run a cron job every other week exactly?
Schedule it weekly (e.g. 0 9 * * 1) and inside the job check date +%V (ISO week) for even/odd, running only on matching weeks.
Is 1,15 the same as every two weeks?
Close but not exact — the gap between the 15th and the next 1st varies with month length. It's the simplest declarative approximation.