Candid Tools

Cron twice a month (1st and 15th)

Twice a month in cron is 0 0 1,15 * * (Unix) or 0 0 0 1,15 * ? (Quartz, Spring), on the 1st and 15th; next runs are calculated in your browser.

Unix cron (crontab, GitHub Actions, Kubernetes)
  • 0 0 1,15 * *
Quartz and Spring (seconds first; valid in both)
  • 0 0 0 1,15 * ?
AWS EventBridge (minute first, year last)
  • cron(0 0 1,15 * ? *)

Read by our parser as: At 12:00 AM (midnight), on the 1st and 15th of the month. Open in the cron checker

Next 10 runs

Calculating in your browser...

  1. 1 
  2. 2 
  3. 3 

At a glance

Accepts
Nothing to enter - the schedule is preset on the page
Outputs
The expression in Unix, Quartz/Spring and AWS form, plus its next 10 run times
Where it runs
Entirely in your browser, on your device
What leaves your device
Nothing - what you type stays in this tab
Limits
Run times use your browser's timezone or UTC; real schedulers can start a run late
Account
Not required - there is no sign-up
Price
Free, with no watermark and no usage cap
Made by
Visrut

What it means

0 0 1,15 * * runs at 00:00 on the 1st and the 15th of every month: two runs a month, 24 a year. The gaps aren't equal (14 days, then 13 to 16 depending on the month), which is usually what you want for semi-monthly billing or pay runs.

When this is the right schedule

Use it when you follow a semi-monthly calendar (pay periods, invoice runs) where the date matters more than an exact interval.

When to pick something else

Look elsewhere when you need exactly every 14 days; cron can't do that, because it has no week counter. Run weekly and check the week number in the job.

Things to watch

Adding a weekday changes the meaning

crontab(5)'s own example 30 4 1,15 * 5 runs on the 1st, the 15th and every Friday, because both day fields are set. To pay on the nearest weekday, Quartz and Spring can use 1W,15W in day of month.

1st and 15th versus 15th and last day

Many pay schedules use the 15th and the last day. In Quartz and Spring that's 0 0 9 15,L * ?; in Unix cron it needs the last-day workaround.

Not every 2 weeks

Fortnightly (every other Friday, say) isn't expressible in one cron line. Schedule weekly and test the ISO week number in the job.

Frequently asked questions

How do I run on the 1st and 15th at 9 AM?

0 9 1,15 * * in Unix cron, 0 0 9 1,15 * ? in Quartz or Spring.

Can cron run every 2 weeks?

Not directly. Schedule it weekly and have the job skip alternate weeks based on the week number.