0 0 1,15 * *
Cron expression
On the 1st and 15th
Schedule
Open in the Cron Expression Generator →
What 0 0 1,15 * * means
Cron reads five fields from left to right: minute, hour, day of the month, month and day of the week. For on the 1st and 15th they are:
| Field | Value | Meaning | Allowed |
|---|---|---|---|
| Minute | 0 | 0 | 0–59 |
| Hour | 0 | 00:00 | 0–23 |
| Day of month | 1,15 | 1, 15 | 1–31 |
| Month | * | every month | 1–12 |
| Day of week | * | every day of the week | 0–6 (Sun–Sat) |
Next runs
Calculated in your browser for your time zone. On a server, cron uses the server’s time zone (often UTC).
- Enable JavaScript to see the next run times.
Typical uses
- Twice-monthly payroll
- Semi-monthly reports
Use it in crontab, GitHub Actions, Kubernetes and Node.js
crontab (crontab -e):
0 0 1,15 * * /usr/local/bin/my-job.sh >> /var/log/my-job.log 2>&1
GitHub Actions (times are UTC):
on:
schedule:
- cron: '0 0 1,15 * *'
Kubernetes CronJob:
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "0 0 1,15 * *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: my-job
image: alpine:3
command: ["sh", "-c", "echo running"]
Node.js (node-cron):
import cron from 'node-cron';
cron.schedule('0 0 1,15 * *', () => {
// your job
});
Related schedules
- Every month —
0 0 1 * * - On the 15th of every month —
0 0 15 * * - Every quarter —
0 0 1 1,4,7,10 * - Every 6 months —
0 0 1 1,7 * - Every year —
0 0 1 1 * - On the last day of the month —
0 0 28-31 * * - On the first Monday of the month —
0 9 1-7 * *
Build your own scheduleTurn any schedule into a cron expression — or any expression into plain English — with the next run times.
Open the Cron Generator Frequently asked questions
What is the cron expression for on the 1st and 15th?
0 0 1,15 * *. It runs at 0; 00:00; 1, 15.Which time zone does cron use?
Classic cron uses the server’s local time zone, and many servers run in UTC. GitHub Actions always uses UTC. Kubernetes CronJobs use the controller’s time zone unless you set
spec.timeZone (for example Europe/Berlin).How do I test a cron expression?
Paste it into the Cron Expression Generator to see it in plain English with the next run times, then check your job’s log after the first scheduled run.