Cron Expression Generator & Builder (Next Runs & Crontab)

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.

“At 9:30 AM, Monday through Friday”
30
Minute
0–59 (1/60)
9
Hour
0–23 (1/24)
*
Day of Month
1–31 (31/31)
*
Month
1–12 (12/12)
1-5
Day of Week
0–6 (5/7)
Common Schedules:

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

Linux Crontab Entry (crontab -e)
30 9 * * 1-5 /usr/local/bin/backup.sh >> /var/log/cron.log 2>&1
GitHub Actions Workflow Schedule (.github/workflows/job.yml)
on:
  schedule:
    # Runs: At 9:30 AM, Monday through Friday (UTC)
    - cron: '30 9 * * 1-5'
Kubernetes CronJob Manifest (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

Fires Per Matching Day
1 run / day
Active Days / Week
5 days / wk
Next Immediate Run
05/05/2025 09:30 AM
Run # Scheduled Date & Time (US Format) ISO-8601 Timestamp
#1Mon, 05/05/2025, 09:30 AM2025-05-05T09:30:00
#2Tue, 05/06/2025, 09:30 AM2025-05-06T09:30:00
#3Wed, 05/07/2025, 09:30 AM2025-05-07T09:30:00
#4Thu, 05/08/2025, 09:30 AM2025-05-08T09:30:00
#5Fri, 05/09/2025, 09:30 AM2025-05-09T09:30:00
#6Mon, 05/12/2025, 09:30 AM2025-05-12T09:30:00
#7Tue, 05/13/2025, 09:30 AM2025-05-13T09:30:00
#8Wed, 05/14/2025, 09:30 AM2025-05-14T09:30:00
24-Hour Execution Density Profile (Triggers per Hour of Day)

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.