Cron Job on the last day of the month
Run a job at midnight on the last calendar day of every month. Use the cron string 0 0 L * *, see the next 5 execution times, and copy Python, Node.js, Bash and n8n snippets.
Quick Answers
- What does the "on the last day of the month" cron expression mean?
- This cron expression is "0 0 L * *", which in plain English means: Run a job at midnight on the last calendar day of every month..
- When will this cron expression run next?
- With the expression "0 0 L * *", the next execution times are Mon, Aug 31, 2026, 12:00:00 AM UTC, Wed, Sep 30, 2026, 12:00:00 AM UTC, Sat, Oct 31, 2026, 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 L * *Human readable
Run a job at midnight on the last calendar day of every month.
Next 5 execution times
- 1Mon, Aug 31, 2026, 12:00:00 AM UTC
- 2Wed, Sep 30, 2026, 12:00:00 AM UTC
- 3Sat, Oct 31, 2026, 12:00:00 AM UTC
- 4Mon, Nov 30, 2026, 12:00:00 AM UTC
- 5Thu, Dec 31, 2026, 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_last-day-of-month.py", comment="scheduled by crongen")
job.setall("0 0 L * *")
cron.write()
print(f"Installed: 0 0 L * * -> /usr/bin/python3 /var/www/job_last-day-of-month.py")Related schedules
About the "on the last day of the month" cron schedule
The "on the last day of the month" cron schedule uses the expression "0 0 L * *". This schedule runs the last calendar day of every month.
In plain English the cron string "0 0 L * *" means: At 12:00 AM, on the last day of the month.
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.