Switch tool

Cron Expression

Explain a Cron expression and preview the next N firings (5 / 6 field syntax).

Presets:
Visual builder
Field meaning
minute
0 — 0
hour
9 — 9
day
* — every day
month
* — every month
weekday
1-5 — 1-5

at minute 0, at hour 9, Mon-Fri

Upcoming executions
  1. 2026-09-09 09:00
  2. 2026-09-10 09:00
  3. 2026-09-11 09:00
  4. 2026-09-14 09:00
  5. 2026-09-15 09:00
  6. 2026-09-16 09:00
  7. 2026-09-17 09:00
  8. 2026-09-18 09:00
  9. 2026-09-21 09:00
  10. 2026-09-22 09:00

How to use

Purpose

Cron expression online generator, validator, and visualizer. Supports Linux crontab (5 fields) and Quartz/Spring (6-7 fields) formats. Drag-to-configure minute/hour/day/month/weekday and auto-generate the cron string. Reverse-parses cron expressions into human-readable descriptions ("every day at 9 AM"). Shows the next 10 execution times for verification. Common for Linux crontab, Spring @Scheduled, Quartz, Kubernetes CronJob, GitHub Actions. All computation runs locally.

Steps

  1. Pick format: crontab (5 fields, most common), Quartz (6 fields with seconds), Spring 6-field
  2. Drag UI to set specific minute/hour/day/month/weekday
  3. Tool generates the cron string in real time
  4. Reverse: paste an existing cron expression for a readable description
  5. Future execution preview: next 5 / 10 / 30 firing times
  6. Templates: every minute, hourly, daily 0 AM, Monday weekly, monthly 1st
  7. Complex expressions (step/range/list) supported: */5 1-5 1,3,5
  8. Cross-timezone preview

FAQ

crontab 5-field vs Quartz 6-field?
crontab (Linux) 5 fields: minute hour day month weekday. Quartz (Java) 6-7 fields: second minute hour day month weekday [year]. Quartz adds "second" (1-second granularity) and optional "year". Spring @Scheduled also uses 6 fields. Caution: Quartz day and weekday cannot both be specific (one must be ? or *).
Is */5 * * * * really every 5 minutes?
Yes. */5 = step 5 starting at 0: 0, 5, 10, ..., 55. Full syntax: min hour day month weekday = every 5 minutes (288 firings/day). Note: */5 starts from 0, not "every 5 minutes from any start". For 3, 8, 13... use 3-59/5.
How to write cron for Spring @Scheduled?
Spring uses 6 fields (second minute hour day month weekday). Every minute: 0 * * * * *. Hourly on the hour: 0 0 * * * *. Daily 9 AM: 0 0 9 * * *. Weekday: 0-7 (0 and 7 both Sunday), Monday = 1.
Why does my Kubernetes CronJob not run on time?
1) Timezone — K8s CronJob defaults to UTC. 0 9 * * * is 9 AM UTC. K8s 1.27+ supports spec.timeZone. 2) Window — startingDeadlineSeconds passed → skipped. 3) Concurrency policy — Forbid skips if previous run is in progress. 4) Pod scheduling — node resources insufficient.
How to test Linux crontab without waiting?
Run the command directly in a terminal first (many cron failures are env vars or paths). Modify the time to a few minutes from now and wait. Or use the "next execution times" feature to verify schedule.

Use cases

  • Linux crontab system tasks: backups, log cleanup, monitoring alerts
  • Spring @Scheduled: business jobs (order timeout, report generation)
  • Quartz: complex business scheduling (variable-frequency, timezone-aware)
  • Kubernetes CronJob: containerized scheduled tasks
  • GitHub Actions schedule: scheduled builds, docs publishing

Use cases

Linux crontab, Spring Scheduled, Quartz, K8s CronJob, GitHub Actions. Backend, ops, DevOps, SRE. Multi-format, visual generation, future-execution preview, timezone display are the differentiators.