ShotMark
Skip to Content

Crontab Generator

Build cron expressions visually with a human-readable description.

Cron Fields
Minute
Hour
Day of Month
Month
Day of Week

What is Crontab Generator?

A crontab generator is a tool that builds Unix cron expressions visually and translates each field into a human-readable schedule, so you can see when a job will fire before saving it. A cron expression is a space-separated string of five fields (minute, hour, day of month, month, day of week) that the cron daemon evaluates every minute to decide whether to run the associated command.

This crontab generator follows the POSIX cron syntax used by Linux cron, GitHub Actions, Vercel, AWS EventBridge, and Kubernetes CronJobs. DevOps engineers, backend developers, and SREs use it whenever they need to be certain a schedule fires when intended.

Why use a crontab generator?

  • Avoid off-by-one schedule bugs. A misplaced asterisk can turn “every Monday at 3 AM” into “every minute on Mondays in March.” A visual builder catches the mistake before deploy.
  • Translate fields to plain English. Read “At every minute past every hour, on Mon” instead of staring at * * * * 1.
  • Pick mode per field. Choose Every, Specific value, or Range per field, which covers most production patterns without hand-editing.
  • Stay private. The expression is built locally in your browser; nothing is logged or transmitted.

How to use the Crontab Generator

  1. For each of the five fields (Minute, Hour, Day of Month, Month, Day of Week), pick a Mode: Every (*), Specific value, or Range.
  2. If you chose Specific value, enter a number within the field’s valid range.
  3. If you chose Range, enter a From and To value.
  4. Read the Cron Expression output as you go; it updates live.
  5. Read the Human-Readable line below to confirm the schedule matches your intent, then Copy the expression.

A typical “every weekday at 9:30 AM” expression looks like:

30 9 * * 1-5

A “first day of every month at midnight” expression looks like:

0 0 1 * *

Cron field reference

The standard cron format has five fields. Each accepts a single value, a comma list, a range with -, a step with /, or * meaning “every”.

FieldPositionRangeNotes
Minute10-59The minute of the hour.
Hour20-2324-hour clock; 0 is midnight.
Day of Month31-31Combined with Day of Week using OR.
Month41-12Jan-Dec aliases in most implementations.
Day of Week50-60 and 7 both mean Sunday.

Operators across fields: * (every), , (list), - (range), / (step). Example: */15 * * * 1-5 runs every 15 minutes on weekdays.

Common cron patterns

Most production cron jobs reduce to a handful of well-known patterns. Copy the closest match and tweak the values rather than building from scratch.

ScheduleExpression
Every 5 minutes*/5 * * * *
Every hour on the hour0 * * * *
Daily at 02:3030 2 * * *
Every weekday at 09:000 9 * * 1-5
Every Monday at 09:000 9 * * 1
First of the month at 00:000 0 1 * *
Every 15 min on weekdays*/15 * * * 1-5

Common use cases

  • DevOps engineers writing GitHub Actions schedules. Build the expression here, paste into on.schedule.cron.
  • Backend developers scheduling background jobs. Set cron strings for Sidekiq, Celery Beat, or BullMQ recurring tasks.
  • SREs configuring database backups. Define nightly, weekly, and monthly schedules with confidence.
  • Indie developers automating SaaS jobs. Schedule Vercel Cron Functions or Cloudflare Workers Cron Triggers.

Frequently asked questions

What time zone does cron use?

By default, cron uses the system time zone of the host where it runs. On Linux this is set via /etc/timezone or the TZ variable on the user’s crontab. Managed schedulers vary: GitHub Actions, AWS EventBridge, and Vercel Cron all default to UTC.

What does an asterisk mean in cron?

The asterisk * means “every value in this field.” * * * * * reads as “every minute of every hour of every day.” It is the default when a field has no specific schedule.

What is the difference between */5 and 0,5,10,...?

Both expressions in the minute field fire every five minutes. */5 is a step expression that the parser expands to the same list. Use */5 for readability; use an explicit list when the values are irregular (5,17,42).

What is the smallest interval cron supports?

One minute. For sub-minute scheduling, use a long-running daemon with its own scheduler (Sidekiq, BullMQ, asyncio). Cron is minute-granular; true second-level scheduling needs a different tool.

How do day of month and day of week interact?

In standard Vixie cron, the two fields combine with OR. 0 12 13 * 5 fires at noon on the 13th of every month AND every Friday. If only one of the two fields is *, only the other constrains the schedule.

What happens if my server is offline at the scheduled time?

By default, cron skips the missed run; it does not back-fill. For catch-up behavior, use a scheduler with persistence (Kubernetes CronJob with startingDeadlineSeconds, or a queue-backed job runner).

Like this tool?

ShotMark captures what you do here, in one click.

The traces, payloads, and tests you run by hand? ShotMark grabs the whole bug and hands it to your AI agent.

Private beta accessFounding pricing lockNo spam ever