Cron builder
Cron: first of the month — 0 0 1 * *
Midnight on the 1st of every month — billing runs, monthly reports, log rotation. The @monthly macro expands to exactly this expression.
The natural follow-up — "and the LAST day of the month?" — has no standard-cron answer: the L modifier that does it is Quartz-only (the builder below will show you if you switch dialects). The portable workaround is to run at 0 0 28-31 * * and let the job exit unless tomorrow is the 1st ([ "$(date -d tomorrow +\%d)" = "01" ]). Also remember the crontab file itself: % is special in crontab lines and must be escaped as \% — date formats are the usual victim.
What this schedule does, field by field
| Field | Value | Meaning |
|---|---|---|
| Minute | 0 | at minute 0 |
| Hour | 0 | at hour 0 (midnight, server time) |
| Day of month | 1 | on the 1st |
| Month | * | every month |
| Day of week | * | any weekday |
0Minute0Hour1Day*Month*WeekdayAt 12:00 AM, on day 1 of the month
Presetsclick to load — converted to the active dialect
Visual buildertwo-way synced with the expression above
Minute
0Hour
0Day
1Month
*Every value (*)
Weekday
*Every value (*)
Next 10 runsin
No upcoming runs — the schedule may be entirely in the past (e.g. a fixed year).
Field referenceStandard
| # | Field | Allowed values | Special characters |
|---|---|---|---|
| 1 | Minute | 0–59 | * , - / |
| 2 | Hour | 0–23 | * , - / |
| 3 | Day of month | 1–31 | * , - / |
| 4 | Month | 1–12 or JAN–DEC | * , - / |
| 5 | Day of week | 0–7 or SUN–SAT (0 and 7 = Sunday) | * , - / |
Macrosstandard crontab shortcuts — click to use
— Once an hour, at minute 0 (≡
0 * * * *) — Once a day, at 00:00 (≡
0 0 * * *) — Once a day, at 00:00 (≡
0 0 * * *) — Once a week, Sunday at 00:00 (≡
0 0 * * 0) — Once a month, on the 1st at 00:00 (≡
0 0 1 * *) — Once a year, on 1 January at 00:00 (≡
0 0 1 1 *) — Once a year, on 1 January at 00:00 (≡
0 0 1 1 *) — Once, at system startup — has no schedule, so next runs cannot be computed
Everything is computed on your device — nothing is uploaded.