Cron Expression Generator & Builder
Visually build, parse, and validate 5-field POSIX/Unix cron expressions with instant plain-English translation. Preview deterministic upcoming execution timestamps, inspect 24-hour run density, and generate ready-to-paste Linux crontab, GitHub Actions, and Kubernetes CronJob configurations.
1. Interactive 5-Field Visual Cron Builder
Select a field tab below to configure wildcards (*), step intervals (*/N), ranges (A-B), or specific values.
2. Ready-to-Paste Deployment Configurations
crontab -e)30 9 * * 1-5 /usr/local/bin/backup.sh >> /var/log/cron.log 2>&1
.github/workflows/job.yml)on:
schedule:
# Runs: At 9:30 AM, Monday through Friday (UTC)
- cron: '30 9 * * 1-5'
batch/v1)apiVersion: batch/v1
kind: CronJob
metadata:
name: scheduled-task
spec:
schedule: "30 9 * * 1-5"
jobTemplate:
spec:
template:
spec:
containers:
- name: job
image: busybox:stable
command: ["/bin/sh", "-c", "/usr/local/bin/backup.sh >> /var/log/cron.log 2>&1"]
restartPolicy: OnFailure
3. Next 8 Scheduled Execution Timestamps
| Run # | Scheduled Date & Time (US Format) | ISO-8601 Timestamp |
|---|---|---|
| #1 | Mon, 05/05/2025, 09:30 AM | 2025-05-05T09:30:00 |
| #2 | Tue, 05/06/2025, 09:30 AM | 2025-05-06T09:30:00 |
| #3 | Wed, 05/07/2025, 09:30 AM | 2025-05-07T09:30:00 |
| #4 | Thu, 05/08/2025, 09:30 AM | 2025-05-08T09:30:00 |
| #5 | Fri, 05/09/2025, 09:30 AM | 2025-05-09T09:30:00 |
| #6 | Mon, 05/12/2025, 09:30 AM | 2025-05-12T09:30:00 |
| #7 | Tue, 05/13/2025, 09:30 AM | 2025-05-13T09:30:00 |
| #8 | Wed, 05/14/2025, 09:30 AM | 2025-05-14T09:30:00 |
Cron Syntax Structure & Evaluation Method
A standard 5-field POSIX crontab entry evaluates five time fields in order: Minute (0–59), Hour (0–23), Day of Month (1–31), Month (1–12), and Day of Week (0–6, where 0 and 7 both equal Sunday). Every minute, the system cron daemon checks whether the current clock time satisfies the active expression.
Special Operators & Evaluation Rules
| Symbol | Name | Behavior & Example |
|---|---|---|
* |
Wildcard (Every) | Matches every allowed value in that field (e.g., * in Hour = all 24 hours). |
, |
Value List | Matches any listed value (e.g., 1,15 in Day of Month = 1st and 15th). |
- |
Inclusive Range | Matches all values from start to end (e.g., 1-5 in Day of Week = Mon–Fri). |
/ |
Step Interval | Increments by step value (e.g., */15 in Minute = 0, 15, 30, 45). |
Illustrative Example & How to Use
Illustrative Example (Weekday Morning Job): Suppose you want to run a database backup script at 9:30 AM every Monday through Friday. Set Minute to 30, Hour to 9, Day of Month to *, Month to *, and Day of Week to 1-5, producing 30 9 * * 1-5. Starting from Monday, 05/05/2025 08:00 AM, the job triggers at 09:30 AM on May 5, 6, 7, 8, and 9, skips Saturday (May 10) and Sunday (May 11), and resumes Monday, May 12 at 09:30 AM.
How to Use This Tool: Type or paste any 5-field cron expression (or @daily / @hourly macro) into the top input box, or click any of the 5 field tabs to build an expression visually. Use the Reference Start picker (or click Use Current Local Time) to preview the exact next 8 run timestamps, then copy the raw expression, crontab line, or YAML manifest.
Frequently Asked Questions
What are the 5 fields in a standard cron expression?
From left to right, the five fields represent: Minute (0–59), Hour (0–23 in 24-hour time), Day of Month (1–31), Month (1–12 or JAN–DEC), and Day of Week (0–6 or SUN–SAT, where both 0 and 7 represent Sunday).
How do Day of Month and Day of Week interact when both are specified?
In standard POSIX/Vixie cron, if either Day of Month or Day of Week is *, only the non-wildcard field restricts the day. However, if both fields are restricted (for example, 0 9 15 * 1), cron evaluates them with a logical OR—running the job on the 15th of the month and on every Monday. This tool displays a warning banner whenever both day fields are restricted simultaneously.
What do shorthand macros like @daily, @hourly, and @weekly mean?
Many cron daemons support `@` shorthand strings that expand to standard 5-field expressions: @hourly = 0 * * * *, @daily (or @midnight) = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, and @yearly (or @annually) = 0 0 1 1 *. Typing any of these macros into the expression box automatically expands and validates them.
What timezone do cron expressions use in Linux, GitHub Actions, and Kubernetes?
Linux system crontabs run in the host server's local system timezone unless overridden by a CRON_TZ variable. GitHub Actions on.schedule workflows always evaluate cron expressions in UTC. Kubernetes CronJob resources use the controller-manager timezone by default unless spec.timeZone is explicitly configured.