Free tool
Translate Unix, Quartz, Spring, GitHub Actions, Kubernetes, or Vercel cron into a valid EventBridge cron() expression with the day-of-week shift, the ? placeholder, and UTC-only timing handled for you.
cron(0 9 ? * 2-6 *)EventBridge requires ? in either day-of-month or day-of-week (not both), reads day-of-week as 1=Sun, and always runs in UTC.
EventBridge
rate(5 minutes)Vercel @every
@every 5mUse rate() for plain intervals (every N minutes/hours/days). Reach for cron() when you need a specific wall clock, day-of-week, or month.
? and what to put thereEventBridge uses six cron fields (minute, hour, day-of-month, month, day-of-week, year) plus a strict rule: exactly one of day-of-month or day-of-week must be ?, and the other must hold a real value. The reason is conflict avoidance. If you write 15 in day-of-month and MON in day-of-week, AWS cannot tell whether you mean "every Monday and every 15th" or "Mondays that fall on the 15th". The placeholder disambiguates intent.
In practice: pick a day-of-week pattern, set day-of-month to ?. Pick a day-of-month pattern, set day-of-week to ?. The converter above handles this automatically; the warning panel tells you which field it switched.
Unix, GitHub Actions, Kubernetes, and Vercel number weekdays as 0=Sun through 6=Sat. EventBridge, Quartz, and Spring number them as 1=Sun through 7=Sat. Copy-pasting 0 9 * * 1-5 straight into EventBridge fires Sunday through Thursday, not Monday through Friday. The converter applies the offset for you and surfaces it in the warnings panel so the change is visible in code review.
rate(N minutes|hours|days) handles plain intervals. Pick it when the schedule is "every five minutes" or "every six hours" without reference to wall-clock time. It cannot anchor to a specific minute past the hour, a weekday, or a month, and it runs from the moment the rule is created, not from a fixed boundary.
cron() is the right call for "9 a.m. weekdays", "the 15th of each month", or anything else that needs a deterministic wall clock. Remember that EventBridge clocks are UTC only, so anchor times like "9 a.m. London" need either UTC translation or split schedules across daylight saving boundaries. Use the cron timezone translator for the DST-aware split, then drop the UTC result into the converter above.