AWS EventBridge cron expression builder

EventBridge cron expressions have six fields (minutes, hours, day-of-month, month, day-of-week and year) and need a ? in one of the day fields. Check an expression, see its next runs and copy a CLI command. Nothing is sent anywhere.

    AWS CLI

    History and favourites (stored only in this browser)

      Nothing saved yet. Expressions you check are saved here, in your browser's local storage, never on a server.

      Runs locally. The expression is never uploaded. The share link keeps it after the # sign, which browsers never send to a server.

      How to use

      1. Enter the six fields without the cron( ) wrapper (the tool accepts it if you paste it): minutes, hours, day-of-month, month, day-of-week, year.
      2. Put ? in the day-of-month or day-of-week field that you are not using. Days of the week are 1-7 (1 is Sunday) or SUN-SAT. Use * in the year field if any year is fine.
      3. Choose UTC to model scheduled rules. Choose another zone to model EventBridge Scheduler, which accepts an IANA time zone.
      4. Check the runs and warnings. For anything AWS does not document, the tool accepts the expression and says so.
      5. Copy the CLI snippet. For UTC it is an events put-rule command; for another zone it is a scheduler create-schedule command with --schedule-expression-timezone. Fill in the target and role yourself.

      Worked examples

      Weekdays at 18:00 UTC

      0 18 ? * MON-FRI *, with ? in the day-of-month field. After 19:00 UTC on Thursday 1 October 2026 the next run is Friday, then Monday.

      AWS EventBridge, time zone UTC, runs after 2026-10-01 19:00 UTC
      0 18 ? * MON-FRI *

      1. Fri 2026-10-02 18:00:00 +00:00
      2. Mon 2026-10-05 18:00:00 +00:00
      3. Tue 2026-10-06 18:00:00 +00:00

      The first Monday of the month at 08:00 in Los Angeles

      0 8 ? * 2#1 *. Day 2 is Monday and #1 picks the first one. Pacific time moves from -07:00 to -08:00 on 1 November, and the list shows that offset change.

      AWS EventBridge, time zone America/Los_Angeles, runs after 2026-10-01 00:00 UTC
      0 8 ? * 2#1 *

      1. Mon 2026-10-05 08:00:00 -07:00
      2. Mon 2026-11-02 08:00:00 -08:00
      3. Mon 2026-12-07 08:00:00 -08:00

      The last Friday, within a range of years

      15 10 ? * 6L 2019-2022 is the pattern from the AWS documentation (6L: the last Friday). Starting at the beginning of 2019, the first runs fall on the last Fridays of January, February and March.

      AWS EventBridge, time zone UTC, runs after 2019-01-01 00:00 UTC
      15 10 ? * 6L 2019-2022

      1. Fri 2019-01-25 10:15:00 +00:00
      2. Fri 2019-02-22 10:15:00 +00:00
      3. Fri 2019-03-29 10:15:00 +00:00

      A repeated hour in Scheduler: 01:30 in Los Angeles on 1 November 2026

      The clock reaches 01:30 twice that morning. AWS documents that Scheduler runs the schedule once, at the first occurrence (-07:00):

      AWS EventBridge, time zone America/Los_Angeles, runs after 2026-10-31 12:00 UTC
      30 1 * * ? *

      1. Sun 2026-11-01 01:30:00 -07:00
      2. Mon 2026-11-02 01:30:00 -08:00

      Limits & gotchas

      • Two services, two behaviours. Legacy scheduled rules are UTC-only and AWS marks them as a legacy feature. EventBridge Scheduler supports time zones. The tool treats UTC as the rule and any other zone as Scheduler.
      • Undocumented extras are accepted with a warning. The AWS page lists L and W for day-of-month and L and # for day-of-week, but not Quartz's L-n or LW forms, nor / in the day-of-week field. We could not check these against the live service, so the tool warns instead of declaring them valid or invalid.
      • One # only. A # expression must be the only one in the day-of-week field.
      • Precision. One minute at best, with a delay of several seconds possible. The times here are the scheduled instants.
      • No account access. This page never calls AWS. It does not validate your expression against the service, and the CLI snippet is a template that you must complete and run yourself.
      • Documentation moves. The long-standing cron expression reference page has been replaced by pages for scheduled rules and for Scheduler, which are cited below.

      FAQ

      What time zone do EventBridge cron rules use?

      AWS states that all scheduled events in a (legacy) scheduled rule use UTC+0, and you cannot change that. EventBridge Scheduler, the newer service, lets you choose an IANA time zone for a cron schedule, and AWS documents how it treats daylight saving time.

      Why do I get an error when I use * in both day fields?

      AWS says you cannot specify both the day-of-month and the day-of-week fields, so one of them must be ?. You also cannot use * in both. Use ? in the one you do not care about, as in "0 18 ? * MON-FRI *".

      Is the year field required?

      In the legacy scheduled-rule syntax there are six required fields and the last is the year, with allowed values 1970-2199. Use * for any year. EventBridge Scheduler expressions also have six fields.

      How often can a rule run?

      AWS documents a minimum precision of one minute and says rates faster than one minute are not supported. It also notes a delay of several seconds is possible between the scheduled time and the invocation. EventBridge Scheduler has 60-second precision.

      What does EventBridge Scheduler do at a daylight saving change?

      AWS documents that if a schedule time falls in the hour skipped when clocks move forward, it is skipped for that day, and if a time occurs twice when clocks move back it runs only once, at the first occurrence. This tool follows that documentation when you choose a non-UTC zone.

      Sources

      Every document above was opened and read on 2026-10-01. Documentation changes; if a page here disagrees with the current docs, trust the docs and tell us.