# Cron Expression Builder

> Free client-side cron builder. Generate cron expressions for Unix, Quartz, AWS EventBridge, GitHub Actions, and more. Features upcoming run time previews.

- **Category:** Developer
- **URL:** https://www.teafun.cyou/tools/cron-builder/
- **Privacy:** Runs entirely in your browser — no uploads, no account, no tracking.
- **Also known as:** cron expression, crontab, schedule builder, cron job, cron generator, scheduled task
- **Related tools:** [Structured Data Converter](https://www.teafun.cyou/tools/yaml-json-toml/), [ENV / Shell / Docker Converter](https://www.teafun.cyou/tools/env-converter/), [JSON Formatter & Validator](https://www.teafun.cyou/tools/json-formatter/)
- **Tags:** Planning, Productivity

## About

Build cron expressions visually for Unix, Quartz, AWS EventBridge, and GitHub Actions. Preview upcoming run times instantly in your browser.

## How to Use the Cron Expression Builder

Pick the target dialect (Unix crontab, Quartz, AWS EventBridge, GitHub Actions). The builder shows the five (or six / seven) fields with `Every` or `Specific` toggles. Toggle `Every minute / hour / day` for `*` semantics or pick a value for literal. Use the step input for `*/N` (e.g., every 15 minutes = `*/15 * * * *`). Day-of-month vs day-of-week are mutually exclusive in some dialects — selecting both is OR in Unix cron but invalid in Quartz / EventBridge (one must be `?`). The live preview shows the next 5 scheduled runs computed in your browser timezone (cron itself runs in the server's timezone; mismatched timezones are a top failure mode — your local 9 AM might be 3 AM UTC where the server runs). Copy the expression and paste into your crontab, `.github/workflows/*.yml`, EventBridge rule, or Quartz JobDetail. The expression is also linkable — the URL hash captures the full configuration.

## Why Correct Cron Scheduling Matters

`0 */6 * * *` does not mean every 6 hours. `*/6` in the hour field means every hour whose number is divisible by 6 — that's 00, 06, 12, 18, exactly 4 runs per calendar day. A reboot at 03:00 does not shift the schedule; the next run is 06:00. To actually run every 6 hours from now, use a stateful scheduler (Quartz cron triggers, systemd timers with `OnUnitActiveSec=6h`, or your CI's own interval syntax) — cron itself is purely calendar-based and stateless. The other classic miss is February 30 — `30 14 30 * *` runs only in months with day 30, silently skipping February (and giving 11 runs per year instead of 12). Tools that auto-correct or pre-compute the next 5-10 runs catch both gotchas before they ship. AWS recommends EventBridge's rate expressions (`rate(6 hours)`) for stateful interval scheduling rather than cron.

_SEO title: Cron Expression Builder – Unix, Quartz, AWS, GitHub | TeaFun_

## FAQ

### What formats does this support?

This builder outputs Unix 5-field cron plus Quartz, AWS EventBridge, and GitHub Actions variants for the same schedule.

### Are preview times generated locally?

Yes. TeaFun calculates the upcoming run times in your browser using the options you selected.

### Can I use this for GitHub Actions workflows?

Yes. Switch the format to GitHub Actions and copy the generated expression into your workflow schedule.
