Run an AWS EventBridge schedule at 9 am on weekdays
The AWS EventBridge expression for “Weekdays at 9 am” is cron(0 9 ? * 2-6 *). Below: config you can paste, the next run times, and what to watch out for. AWS EventBridge Scheduler takes cron() with six fields, minutes to year, in the time zone you set (UTC by default).
cron(0 9 ? * 2-6 *)Open in tool“At 09:00, Monday through Friday”
EventBridge Scheduler
aws scheduler create-schedule \
--name weekdays-at-9am \
--schedule-expression "cron(0 9 ? * 2-6 *)" \
--schedule-expression-timezone "UTC" \
--flexible-time-window Mode=OFF \
--target '{"Arn":"arn:aws:lambda:REGION:ACCOUNT:function:my-job","RoleArn":"arn:aws:iam::ACCOUNT:role/scheduler-invoke"}'resource "aws_scheduler_schedule" "weekdays_at_9am" {
name = "weekdays-at-9am"
schedule_expression = "cron(0 9 ? * 2-6 *)"
schedule_expression_timezone = "UTC"
flexible_time_window {
mode = "OFF"
}
target {
arn = aws_lambda_function.job.arn
role_arn = aws_iam_role.scheduler.arn
}
}AWS EventBridge gotchas
FAQ
What is the AWS EventBridge cron expression for “Weekdays at 9 am”?
cron(0 9 ? * 2-6 *). It reads: At 09:00, Monday through Friday
Which time zone does a AWS EventBridge schedule use?
EventBridge Scheduler takes --schedule-expression-timezone with an IANA name and defaults to UTC. Older EventBridge rules only run in UTC.
What is the difference between rate() and cron()?
rate(5 minutes) runs at a fixed interval from when the schedule starts; cron() runs at clock times. Use cron() when the minute matters.
EventBridge Scheduler or EventBridge rules?
AWS recommends EventBridge Scheduler for new schedules: it supports time zones and one-time schedules. Rules only run in UTC.