Create a recurring schedule using a cron expression: --schedule-expression 'cron(0 9 * * ? *)' for daily at 09:00 UTC
Set a flexible time window for rate-limiting: --flexible-time-window '{"Mode": "FLEXIBLE", "MaximumWindowInMinutes": 15}' to allow the scheduler to invoke within a 15-minute window after the scheduled time
Configure retry policy and DLQ on the target block: RetryPolicy with MaximumRetryAttempts (0–185) and MaximumEventAgeInSeconds (60–86400), plus DeadLetterConfig.Arn pointing to an SQS queue
Assign the Scheduler execution role permissions to invoke the target service (e.g., lambda:InvokeFunction) and sqs:SendMessage on the DLQ
Monitor failed invocations via the InvocationFailedToBeSentToDeadLetterCount CloudWatch metric on the schedule
Known gotchas
EventBridge Scheduler is a separate service from EventBridge rules-based scheduling (cron/rate on event buses); Scheduler supports up to 185 retry attempts with exponential backoff while rule-based scheduling retries are configured on the target
Flexible time windows spread load but do not guarantee a specific sub-window delivery time; do not use them for hard deadline tasks
Schedules in the ENABLED state continue to fire even after a one-time at() schedule triggers; delete or disable the schedule after a one-time run to avoid unintended future invocations if the scheduler fails to self-delete
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp