# Cron Expression Generator

> Turn plain English into cron expressions. Or paste a cron expression and get a human-readable explanation.

- URL: https://generate.now/cron
- Category: time
- Price: free, no account required
- AI-powered: yes
- Last updated: 2026-08-27

## What it does

Convert natural language schedules into valid cron expressions and back. Supports 5-field standard and 6-field (with seconds) variants. Shows next 5 run times and an expanded explanation of every field.

## When to use it

- Schedule a backup every weekday at 2am
- Trigger a deploy on the first of the month
- Run a cleanup script every 15 minutes
- Translate an inherited cron expression to plain English before editing it
- Generate a cron string for GitHub Actions, Vercel Cron, or a Kubernetes CronJob

## Examples

### every weekday at 9am

```
0 9 * * 1-5
```

Runs at 9:00 AM on Monday through Friday.

### every 15 minutes

```
*/15 * * * *
```

Fires at minute 0, 15, 30, and 45 of every hour.

### first day of every month at midnight

```
0 0 1 * *
```

Useful for monthly billing or report jobs.

### every sunday at 3:30am

```
30 3 * * 0
```

Common weekly maintenance window.

### twice an hour during business hours, monday to friday

```
0,30 9-17 * * 1-5
```

Runs at :00 and :30 between 9am and 5pm on weekdays.

### every 6 hours

```
0 */6 * * *
```

Fires at 00:00, 06:00, 12:00, 18:00.

## Frequently asked questions

### What does a cron expression look like?

A standard cron expression has five fields separated by spaces: minute (0-59), hour (0-23), day of month (1-31), month (1-12), and day of week (0-7, where 0 and 7 are Sunday). Each field can be a number, a list (1,2,3), a range (1-5), a step (*/15), or a wildcard (*).

### What's the difference between 5-field and 6-field cron?

5-field cron starts with the minute field and is the standard format used by Unix cron, GitHub Actions, and Vercel Cron. 6-field cron adds a leading seconds field and is used by Quartz scheduler, Spring, and some other systems. Pick the variant that matches the system you're scheduling on.

### How do I run a job every X minutes?

Use a step value in the minute field: */5 for every 5 minutes, */15 for every 15 minutes. The first run is at minute 0 and then at each subsequent interval.

### How do I write a cron expression for the last day of the month?

Standard cron doesn't have a native 'last day' token. Some implementations (Quartz, AWS) support L for last. With standard cron, the workaround is to run on every day from the 28th and have your script check whether it's actually the last day.

### Does this work for GitHub Actions and Vercel Cron?

Yes. GitHub Actions and Vercel Cron both use standard 5-field POSIX cron. Generate a 5-field expression and paste it into your workflow file or vercel.ts schedule.

### Can I get an expression for a specific timezone?

Cron expressions themselves don't carry timezone information — they're interpreted in the timezone of the system running them. Most schedulers default to UTC. Be explicit about timezone in your scheduler config, then write the expression in that timezone.

### What does the 'next run times' preview mean?

After you generate or paste a cron expression, the tool computes the next five times the job would run if started right now, using your local timezone. Use this to sanity-check that the expression matches what you intended.

### Why is my cron expression invalid?

The most common causes are: a value outside the allowed range (e.g. 60 in the minute field), a missing or extra field, or using day-of-week names in a scheduler that only accepts numbers. The validation panel will point to the offending field.

## References

- [POSIX crontab specification](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/crontab.html) — The Open Group. The normative definition of crontab behaviour that standard 5-field cron implementations follow.
- [crontab(5) manual page](https://man7.org/linux/man-pages/man5/crontab.5.html) — man7.org. Field-by-field reference for the crontab file format on Linux, including step and range syntax.
- [Vercel Cron Jobs](https://vercel.com/docs/cron-jobs) — Vercel. How 5-field expressions are interpreted by Vercel Cron, including its UTC-only timezone rule.
- [Events that trigger workflows](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows) — GitHub. The schedule event, which accepts POSIX cron syntax and runs on UTC.

## Related tools

- [Regex Generator](https://generate.now/regex): Describe what you want to match in plain English. Get a regex pattern with a live test panel and a token-by-token breakdown.
- [UUID Generator](https://generate.now/uuid): Generate UUIDs (v1, v4, v7, v8) in bulk, with format options and a validator. Cryptographically random by default.
- [.gitignore Generator](https://generate.now/gitignore): Describe your stack in plain English, or pick from a list of common environments — get a clean, deduplicated .gitignore.
