Cron Job Every 6 months
Run a job on the 1st of January and July each year. Use the cron string 0 0 1 */6 *, see the next 5 execution times, and copy Python, Node.js, Bash and n8n snippets.
Quick Answers
- What does the "Every 6 months" cron expression mean?
- This cron expression is "0 0 1 */6 *", which in plain English means: Run a job on the 1st of January and July each year..
- When will this cron expression run next?
- With the expression "0 0 1 */6 *", the next execution times are Fri, Jan 01, 2027, 12:00:00 AM UTC, Thu, Jul 01, 2027, 12:00:00 AM UTC, Sat, Jan 01, 2028, 12:00:00 AM UTC.
- How do I use this cron expression?
- Copy the exact string into crontab, cron triggers, or any scheduler such as GitHub Actions, n8n or Docker. Pre-built code snippets for Python, Node.js, Bash, Docker, GitHub Actions and n8n are included on this page.
0 0 1 */6 *Human readable
Run a job on the 1st of January and July each year.
Next 5 execution times
- 1Fri, Jan 01, 2027, 12:00:00 AM UTC
- 2Thu, Jul 01, 2027, 12:00:00 AM UTC
- 3Sat, Jan 01, 2028, 12:00:00 AM UTC
- 4Sat, Jul 01, 2028, 12:00:00 AM UTC
- 5Mon, Jan 01, 2029, 12:00:00 AM UTC
from crontab import CronTab
from datetime import datetime
# Install: pip install python-crontab
cron = CronTab(user=True)
job = cron.new(command="/usr/bin/python3 /var/www/job_every-6-months.py", comment="scheduled by crongen")
job.setall("0 0 1 */6 *")
cron.write()
print(f"Installed: 0 0 1 */6 * -> /usr/bin/python3 /var/www/job_every-6-months.py")Related schedules
About the "every 6 months" cron schedule
The "every 6 months" cron schedule uses the expression "0 0 1 */6 *". This schedule runs during undefined.
In plain English the cron string "0 0 1 */6 *" means: At 12:00 AM, on day 1 of the month, every 6 months.
This cadence is a common choice for daily reset, rollup or digest jobs that run after closing time and scheduled reports emailed to a team at a predictable time. The schedule is deliberately kept simple: copy the string into any cron-aware scheduler (crontab, Vercel Cron, GitHub Actions, n8n, Docker or Kubernetes CronJob) and the run will repeat automatically — steady, with no manual triggering.