Skip to main content

Run a cron job twice a week or every other week

Question

How do I set a cron job to run twice a week (bi-weekly)?

Answer

“Twice a week” and “bi-weekly” can describe different schedules, so choose the behavior you actually need. For twice a week, the expression below runs at midnight every Monday and Thursday.

crontab
# at midnight every Monday and Thursday
0 0 * * 1,4

Read 0 0 * * 1,4 from left to right: the first 0 selects minute 0; the second 0 selects hour 0; the day-of-month * permits every date; the month * permits every month; and 1,4 selects Monday and Thursday in the day-of-week field. You may use MON,THU instead when your cron implementation supports weekday names. If you mean every other week, standard cron has no native 14-day or alternate-week field. Schedule one weekly trigger, then let the command check ISO week parity or a persisted last-run date before doing work:

crontab
# weekly trigger; the script runs the work only every other week
0 9 * * 1

The cron still fires weekly; the wrapper must skip alternate runs. In a Bash wrapper:

crontab
#!/bin/bash
# run only on even ISO weeks
week=$(date +%V); ((10#$week % 2 == 0)) || exit 0
/path/to/script.sh

ISO week 53 causes a 7- or 21-day boundary gap, so persist the last-run date for an exact 14-day cadence rather than relying on even or odd calendar weeks.

Run 0 0 * * 1,4 on Crontap
A row of seven day boxes for one week with the first and fourth boxes filled in yellow, marking Monday and Thursday.
Twice a week: the day-of-week list 1,4 selects Monday and Thursday.
Why this matters

Confusing twice weekly with every other week changes the run count by roughly a factor of four. Week-parity checks have another boundary risk: ISO week numbering belongs to an ISO week-year, and years with a week 53 make an even/odd rule fire on consecutive Mondays or skip three weeks at the boundary. If the task must run every 14 elapsed days, store the last successful run and gate a weekly or daily trigger from that timestamp rather than relying only on week numbers. See the twice a week and biweekly guides for more variations.

Read the dedicated guide: Cron biweekly.

Cron schedule used

What it does

0 0 * * 1,4 — command

At 00:00, only on Monday and Thursday.

Calendar

View future cron matches in a calendar

September 2026 · UTC

0 runs

See this cron expression on the calendar view example

Write the cron here. Run it on Crontap.

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

1.9k+ teams · Free forever tier · No credit card

Permalink: https://tool.crontap.com/help/cron-job-run-script-twice-a-week-or-bi-weekly