cron expression in AWS CloudWatch How to run once a week
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
In AWS CloudWatch, cron expressions are a powerful tool used to define schedules for executing events or tasks. A key use case for these expressions is to schedule events to occur on a recurring basis, such as triggering a function or a script once a week. Understanding how to construct these expressions is vital for automated tasks and workflow management within AWS.
Understanding AWS CloudWatch Cron Expressions
A cron expression is a string of six or seven fields separated by spaces. Each field represents a different unit of time, and the entire expression tells the scheduler when to run the task.
The fields in an AWS cron expression represent:
- Minutes (0-59)
- Hours (0-23)
- Day of the month (1-31)
- Month (1-12 or JAN-DEC)
- Day of the week (1-7 or SUN-SAT)
- Year (optional, four digits)
AWS CloudWatch uses a slightly different syntax than standard Unix cron expressions, particularly regarding the "week" mechanism, where 1 corresponds to Sunday, 2 to Monday, and so on through 7 (Saturday).
Example: Running a Task Once a Week
To schedule a task using a cron expression to run once a week, you will need to define which day and what time the task should execute. Let's say you want to run a task every Monday at 10:00 AM.
The cron expression for this schedule would be:
- `0`: Specifies the minute (0th minute of the hour).
- `10`: Specifies the hour (10 AM).
- `?`: Used for the day of the month when not specifying it to prevent overlap with the day of the week.
- `*`: Wildcard for any month.
- `2`: Specifies Monday (the second day of the week in AWS's system).
- `*`: Wildcard indicating any year.
- `*`: Wildcard, for all possible values.
- `?`: Placeholder for non-specified fields (only usable in day of the month and day of the week fields).
- `-`: Range, to specify a range of values.
- `,`: List, for specifying multiple values.
- `/`: Increment, for stepping values within a range.
- Ensure correct use of time units (24-hour format is mandatory).
- Mind the differences in representations, like days of the week.
- Test expressions in a non-production environment to confirm the schedule behaves as expected.
Related reading
- Cross Account Alias Records
- Custom attribute not passed into ID_TOKEN created by AWS Cognito
- Custom domain for API Gateway returning 403
- Custom URL in AWS Elastic Beanstalk
- Customize AWS ElasticBeanstalk NodeJS Install use yarn
- DaemonSets on Google Container Engine Kubernetes
- Data modelling for dynamodb where entity has one to many and many to many relationships
- Debezium with AWS MSK NOT_ENOUGH_REPLICAS

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.