CronTool
Cron expression editor & debugger

AWS cron expressions — full guide for EventBridge & Lambda

AWS cron expressions are a 6-field Quartz-style format used by EventBridge Rules, EventBridge Scheduler, Lambda Scheduled events and CloudWatch Events. Always wrapped in cron(...), always six fields, and the day-of-month / day-of-week conflict always resolved with ?.
See the extended cron expression editor to test AWS-flavoured expressions interactively, or the AWS last-day-of-month guide for the most-asked AWS cron pattern.

Examples

  • 018***
    Every day at 18:00
  • 0*/5***
    Every 5 hours
  • 018**1-5
    Weekdays at 18:00
  • 001**
    Once a month

Cheatsheet

FieldRequiredValues RangeWildcardsminuteYes0-59, - * / hourYes0-59, - * / day of monthYes1-31, - * / L W monthYes1-12, - * /day of weekYes0-7, - * / L

Calendar

View future cron matches in a calendar

April 2026

Showing next 1000 cron schedules

Loading...

AWS cron syntax — the 6 fields

cron(MIN HOUR DOM MONTH DOW YEAR)
cron( 0   9   ?   *    MON-FRI *  )
  • Minute 0-59
  • Hour 0-23
  • Day-of-month 1-31, or ?, L, W, L-N
  • Month 1-12 or JAN-DEC
  • Day-of-week 1-7 or SUN-SAT, or ?, L, #
  • Year 1970-2199 (most users put *)

Common AWS cron expressions

  • cron(* * * * ? *) — every minute
  • cron(*/5 * * * ? *) — every 5 minutes
  • cron(*/15 * * * ? *) — every 15 minutes
  • cron(0 * * * ? *) — every hour
  • cron(0 9 * * ? *) — daily at 09:00 UTC
  • cron(0 9 ? * MON-FRI *) — weekdays at 09:00
  • cron(0 0 1 * ? *) — first of every month at midnight
  • cron(0 0 L * ? *) — last day of every month at midnight
  • cron(0 9 ? * 6L *) — last Friday of every month at 09:00
  • cron(0 9 ? * 2#1 *) — first Monday of every month at 09:00

AWS CDK example

import * as events from 'aws-cdk-lib/aws-events';
import * as targets from 'aws-cdk-lib/aws-events-targets';

new events.Rule(this, 'WeekdayMorningRule', {
  schedule: events.Schedule.expression('cron(0 9 ? * MON-FRI *)'),
  targets: [new targets.LambdaFunction(myLambda)],
});

For the newer EventBridge Scheduler:

import * as scheduler from 'aws-cdk-lib/aws-scheduler';

new scheduler.CfnSchedule(this, 'WeekdayMorningSchedule', {
  scheduleExpression: 'cron(0 9 ? * MON-FRI *)',
  scheduleExpressionTimezone: 'America/New_York',
  flexibleTimeWindow: { mode: 'OFF' },
  target: { arn: myLambda.functionArn, roleArn: schedulerRole.roleArn },
});

Common AWS cron pitfalls

  • 5 fields rejected — you must include the year, even if it's *.
  • UTC by default — EventBridge Rules ignore the system timezone. Use EventBridge Scheduler with ScheduleExpressionTimezone for local time.
  • Both day fields restricted — AWS rejects expressions with values in both day-of-month and day-of-week. Use ? in one.
  • Latency tolerance — EventBridge guarantees fire-within-a-minute, not fire-at-the-second.

Frequently asked questions

How many fields does an AWS cron expression have?

Six: minute, hour, day-of-month, month, day-of-week, year. The expression is wrapped in `cron(...)`. Standard 5-field Unix crontab is rejected — you must include the year (use `*` for every year).

Why must I use `?` in either day-of-month or day-of-week?

AWS follows the Quartz convention: you can specify either day-of-month or day-of-week as a value, but not both. Exactly one must be `?` (no specific value). The most common pattern is `cron(0 9 * * ? *)` (every day at 09:00) or `cron(0 9 ? * MON-FRI *)` (every weekday at 09:00).

When should I use `rate(...)` instead of `cron(...)`?

`rate(N minutes)` (or hours, days) creates a schedule that fires N units after creation, not aligned to the clock. Use it for jobs that don't care about clock alignment. Use `cron(...)` when you need predictable wall-clock fires (e.g., 09:00 every weekday).

What timezone do AWS cron expressions use?

By default, all EventBridge Rules run in UTC. The newer EventBridge Scheduler (a separate service) supports a `ScheduleExpressionTimezone` parameter — pass an IANA timezone like 'America/New_York' to schedule in local time.

What's the difference between EventBridge Rules and EventBridge Scheduler?

EventBridge Rules is the original service. EventBridge Scheduler is the newer dedicated scheduler with timezone support, one-off schedules, higher throughput limits and dead-letter queue configuration. Both accept the same `cron(...)` syntax.

Which Quartz modifiers does AWS support?

AWS supports `?` (no specific value), `L` (last day of month or last weekday), `#` (Nth weekday of month, e.g. `2#1` = first Monday), and the standard wildcards (`*`, `,`, `-`, `/`). It does NOT support `W` (nearest weekday).

Ready to schedule it?

Point Crontap at any URL. Pick any cron. Done.

WordPress, Shopify, Railway, Cloud Run, Vercel, HubSpot, Ghost, your own box. If it answers HTTP, Crontap can drive it on a clock you can read, in the timezone that actually matters, and page you when something breaks.

Free forever tier ・ No credit card required

Your next schedule
GET/wp-cron.php?doing_wp_cron=1

Schedule

every 5 minutes

Next run

in 23s

Apihustle Logo

This tool is part of the Apihustle suite - a collection of tools to test, improve and get to know your API inside and out.

  • Clobbr logo

    Clobbr

    The app & CLI tool to test API endpoint speed.

    Visit
  • Crontap logo

    Crontap

    Schedule recurring API calls using cron syntax.

    Visit
  • CronTool logo

    CronTool

    Debug multiple cron expressions on a calendar.

    Visit

  • Page AI

    AI Website Generator that designs and writes clean code.

    Visit
  • Shipixen

    Generate customized boilerplates in minutes.

    Visit
  • Page UI

    Landing page UI components for React & Next.js

    Visit