Blog
Wild & Free Tools

AWS EventBridge Cron Expression Translator

Last updated: April 2026 6 min read

Table of Contents

  1. AWS EventBridge Cron Format
  2. The ? Requirement in AWS Cron
  3. Converting AWS to Standard Cron for the Visualizer
  4. Common AWS EventBridge Schedule Patterns
  5. Frequently Asked Questions

AWS EventBridge uses a 6-field cron format that differs from standard Unix cron in three important ways: it requires ? in either day-of-month or day-of-week, uses 1-based day-of-week numbering (1=Sunday), and wraps the expression in a cron() function call. Use our free crontab visualizer after converting the expression to standard 5-field format.

All AWS EventBridge schedules run in UTC. This guide covers the full conversion process and common AWS schedule patterns.

AWS EventBridge Cron Format

AWS EventBridge schedule expressions take one of two forms:

cron(minutes hours day-of-month month day-of-week year)
rate(value unit)

# Examples:
cron(0 9 ? * MON-FRI *)     # 9 AM UTC weekdays
cron(0 12 * * ? *)           # Noon UTC daily
rate(5 minutes)              # Every 5 minutes

The 6 fields inside cron():

PositionFieldValues
1Minutes0-59
2Hours0-23 (UTC)
3Day of month1-31, L, W, ? (required if day-of-week is set)
4Month1-12 or JAN-DEC
5Day of week1-7 (1=SUN) or SUN-SAT, L, #, ? (required if day-of-month is set)
6Year1970-2199, * (usually *)

The ? Requirement — Why AWS Cron Is Different

In standard Unix cron, you can set both day-of-month and day-of-week to specific values and get OR logic. AWS EventBridge does not allow this — you must set one of them to ?.

Rule: if day-of-month is * or a specific date, day-of-week must be ?. And vice versa.

cron(0 9 * * ? *)     # ✓ Every day at 9 AM — day-of-week is ?
cron(0 9 ? * 2 *)     # ✓ Every Monday at 9 AM — day-of-month is ?
cron(0 9 * * * *)     # ✗ INVALID — both fields set, no ?
cron(0 9 ? * ? *)     # ✗ INVALID — both fields are ?

Day-of-week numbering in AWS: 1=Sunday, 2=Monday, 3=Tuesday, 4=Wednesday, 5=Thursday, 6=Friday, 7=Saturday. Three-letter names (SUN, MON, ..., SAT) work identically.

Sell Custom Apparel — We Handle Printing & Free Shipping

Converting AWS EventBridge Expressions to Standard Cron

To use the crontab visualizer with an AWS expression:

  1. Remove the cron() wrapper and the year field (last value).
  2. Replace ? with *.
  3. Convert day-of-week numbers: AWS 2-7 (Mon-Sat) → Standard 1-6. AWS 1 (Sun) → Standard 0.
  4. Or convert day-of-week names: MON→1, TUE→2, WED→3, THU→4, FRI→5, SAT→6, SUN→0.

Example: cron(0 9 ? * MON-FRI *)

Paste 0 9 * * 1-5 into the visualizer → "At 9:00 AM, Monday through Friday." (all times are UTC for AWS schedules)

Common AWS EventBridge Schedule Patterns

GoalAWS EventBridge Expression
Every day at noon UTCcron(0 12 * * ? *)
Every weekday 9 AM UTCcron(0 9 ? * MON-FRI *)
Every Monday at midnight UTCcron(0 0 ? * 2 *)
First of month midnight UTCcron(0 0 1 * ? *)
Last day of monthcron(0 0 L * ? *)
Every 15 minutesrate(15 minutes)
Every hourrate(1 hour)
Once a dayrate(1 day)

cron() vs rate(): Use rate() for simple fixed intervals — it's cleaner and less error-prone. Use cron() when you need specific times of day, specific days of the week, or specific dates. For anything more complex than "every N minutes/hours/days," cron() is the right choice.

Try It Free — No Signup Required

Runs 100% in your browser. No account, no install, no limits.

Open Free Crontab Visualizer

Frequently Asked Questions

Why does AWS EventBridge require a ? in cron expressions?

AWS EventBridge does not support the OR-logic behavior that standard Unix cron uses when both day-of-month and day-of-week are set. To prevent ambiguity, AWS requires exactly one of these fields to be set to ? (no specific value). If you want a weekday-based schedule, set day-of-month to ?. If you want a date-based schedule, set day-of-week to ?.

What timezone does AWS EventBridge use for cron schedules?

EventBridge Scheduler (the newer service) supports timezone specification. Classic EventBridge rules use UTC only. Always verify which service you're using. For EventBridge Scheduler, you can set timezone in the schedule configuration. For classic EventBridge rules with cron(), all times are UTC.

How do I schedule an AWS Lambda on the last business day of the month?

Use "cron(0 17 LW * ? *)" — this fires at 5 PM UTC on the last weekday (L=last, W=nearest weekday) of each month. EventBridge supports the L and W special characters from Quartz scheduler syntax. Note: LW gives you the last day that is a weekday, not "last Friday" — for the last Friday specifically, use "0 17 ? * 6L *".

Launch Your Own Clothing Brand — No Inventory, No Risk