Every year
Annual rollovers: year-end archiving, resetting yearly quotas, renewal reminders.
Checked with the same parser Bex uses to validate schedules. Next run times are computed in your browser.
Cron expression
0 0 1 1 *| minute | 0 |
|---|---|
| hour | 0 |
| day of month | 1 |
| month | 1 |
| day of week | * |
Watch out for
- Cron gives up if a schedule never fires within five years — not an issue here, but a date like February 30 never runs at all.
- Bex does not set a per-job time zone: the cluster controller's clock decides. Bex's own next-run projection assumes UTC, as shown here.
Next runs
Calculating the next runs…
How to write it
crontab
0 0 1 1 * /usr/local/bin/my-job
Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
name: my-job
spec:
schedule: "0 0 1 1 *"
concurrencyPolicy: Forbid
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: my-job
image: my-image
GitHub Actions
on:
schedule:
- cron: "0 0 1 1 *"
render.yaml (Bex cron job)
services:
- name: my-cron-job
type: cron
runtime: docker
schedule: "0 0 1 1 *"
Related schedules
- Every 6 months
0 0 1 1,7 * - Every quarter
0 0 1 1,4,7,10 *
Run this schedule as a cron job on Bex: declare it in render.yaml and Bex keeps the run history and logs for every execution.
Cron jobs on Bex