Cron Expression Parser & Validator
Translate any Cron schedule into plain English. Calculate the next 5 execution times. Works with Unix, Kubernetes, and Quartz formats.
Zero Server Latency: Schedule calculations run strictly inside your browser. No expression data is ever transmitted to a server.
Cron Expression Cheat Sheet
A standard Unix cron expression has five fields separated by spaces: minute hour day-of-month month day-of-week. The field range is 0–59, 0–23, 1–31, 1–12, and 0–7 (0 and 7 are both Sunday).
| Operator | Meaning | Example | Explanation |
|---|---|---|---|
* | Any / Every | * * * * * | Runs every minute of every hour |
, | List | 0 9,17 * * * | Runs at 9:00 AM and 5:00 PM daily |
- | Range | 0 9 * * 1-5 | Runs at 9:00 AM, Monday through Friday |
/ | Step | */15 * * * * | Runs every 15 minutes (0, 15, 30, 45) |
? | No specific value | 0 12 ? * WED | Quartz: at noon every Wednesday (day-of-month ignored) |
L | Last | 0 0 L * * | Quartz: at midnight on the last day of the month |
Common Cron Schedules
| Expression | Description |
|---|---|
0 * * * * | Every hour, on the hour |
0 0 * * * | Every day at midnight |
0 0 * * 0 | Every Sunday at midnight |
0 0 1 * * | First day of every month at midnight |
0 0 1 1 * | Every year on January 1st at midnight |
*/5 * * * * | Every 5 minutes |
0 9-17 * * 1-5 | Every hour from 9 AM to 5 PM, weekdays only |
30 23 * * * | Every day at 11:30 PM |
Kubernetes CronJob Example
Kubernetes uses standard Unix cron syntax in the schedule field. The expression is evaluated in the timezone of the kube-controller-manager process — set spec.timeZone (Kubernetes ≥ 1.27) to make it explicit.
apiVersion: batch/v1
kind: CronJob
metadata:
name: database-backup
namespace: production
spec:
schedule: "0 4 * * *" # Every day at 04:00 UTC
timeZone: "Europe/Istanbul" # Explicit timezone (k8s >= 1.27)
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: backup
image: postgres:16-alpine
command: ["pg_dump", "-h", "$(DB_HOST)", "mydb"]
envFrom:
- secretRef:
name: db-credentials Verify any CronJob schedule above before deploying — a misplaced / can turn a daily backup into a per-minute job that exhausts your cluster.