Build, validate, and visualize cron schedules with an intuitive interface. Generate standard 5‑field cron expressions (minute hour day month weekday), preview the next 5 runs in your local timezone, and get a human‑readable explanation. Ideal for Linux crontab, AWS CloudWatch Events, Kubernetes CronJobs, and workflow automation.
*, lists 1,2,3, ranges 1-5, steps */10 or 0-30/5. Day & Weekday: both non‑* => AND condition (both must match). Leave day as * if using weekday exclusively.
A cron expression is a string comprising five or six fields separated by whitespace that define the schedule for automated jobs. This generator focuses on the standard 5‑field cron (minute, hour, day of month, month, day of week) — the foundation of Linux crontab, Kubernetes CronJob, Airflow schedules, and countless automation frameworks. Understanding cron empowers engineers to orchestrate backups, data pipelines, system maintenance, and cloud functions with surgical precision.
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of month (1 - 31)
│ │ │ ┌───────────── month (1 - 12)
│ │ │ │ ┌───────────── day of week (0 - 7) (0 and 7 = Sunday)
│ │ │ │ │
* * * * *
* – any value (every minute, every hour, etc.)
*/N – step values: */15 in minute field means every 15 minutes.
a,b,c – list: 1,15,30 in minute field = run at minute 1, 15 and 30.
a-b – range: 9-17 in hour field = hours 9 through 17 inclusive.
1-5,10,*/2 (valid within most cron implementations).
From rotating SSL certificates and log cleanup to triggering ETL jobs and sending daily reports, cron schedules run the invisible backbone of server operations. Major cloud providers (AWS EventBridge Schedules, Google Cloud Scheduler, Azure Functions) adopt cron syntax for serverless cron jobs. In data engineering, Apache Airflow’s schedule_interval uses cron, and Kubernetes' CronJob relies on it for batch processing. Mastering cron ensures you can design reliable, time‑triggered architectures without code changes.
Our engine parses each cron field into a set of allowed values (using range, step, list expansion). Then it simulates time from the current minute onward, checking each minute whether all fields match. The algorithm respects month lengths, leap years, and day‑of‑week vs day‑of‑month constraints (both non‑wildcard require satisfaction). This provides accurate predictions up to 5 upcoming runs. Due to performance bounds, iterations are capped at 5000 steps — if you see fewer than 5 results, consider loosening constraints.
A financial services firm needed to run incremental backups every 2 hours between 8 AM and 6 PM on weekdays, excluding midnight. Using 0 8-18/2 * * 1-5 (minutes = 0, hours = 8,10,12,14,16,18, any day/month, weekdays Mon‑Fri). Our generator validated the expression and displayed the next 5 runs, confirming that no backups happen after 6 PM. The team avoided costly misconfigurations and met compliance requirements.
A team needed to run a data cleanup job every weekday at 2:30 AM, but skip the first day of each month. The expression 30 2 * * 1-5 runs Mon‑Fri at 02:30. To exclude the 1st day, they used day-of-month and weekday together: 30 2 2-31 * 1-5 (runs only when day ≥ 2 AND Mon‑Fri). Our generator confirmed the next 5 runs avoid March 1st.
apiVersion: batch/v1
kind: CronJob
metadata:
name: cleanup
spec:
schedule: "30 2 2-31 * 1-5" # validated by this tool
*/7 in hour field works but may be sparse).
* → intersection condition (rarely intended).