Skip to content
KubeAtlas
Developer Tools

Cron Expression Parser & Validator

Translate any Cron schedule into plain English. Calculate the next 5 execution times. Works with Unix, Kubernetes, and Quartz formats.

Client-side
minute hour day month weekday

Next 5 Executions
    Enter a valid cron expression above to see upcoming execution times.

    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 * * 0Every 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-5Every 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.