Last Saturday of the Month at 10 AM
0 0 10 ? * 6l Runs at 10:00 AM on the last Saturday of every month.
* In a Nutshell
The cron expression 0 0 10 ? * 6l runs Runs at 10:00 AM on the last Saturday of every month.. This schedule is ideal for tasks that need to be performed at the end of the month, specifically on a weekend day, such as generating monthly financial reports or performing end-of-month data aggregation. It ensures these critical operations are completed before the new month begins, providing a consistent operational cadence.
* When to use this
Use 0 0 10 ? * 6l when a recurring task needs to run Runs at 10:00 AM on the last Saturday of every month.. This schedule is commonly associated with monthly schedules and quartz scheduler and weekend schedules workloads. It uses Quartz Scheduler (6–7 Fields) syntax, supported by Unix cron daemons, cloud schedulers such as AWS EventBridge, and container orchestration platforms such as Kubernetes CronJob.
CronBase parses 0 0 10 ? * 6l using a dialect-aware rules engine that identifies the Quartz Scheduler (6–7 Fields) format, validates field structure against the Quartz Scheduler (6–7 Fields) specification, and produces the translation above. Next run times are calculated by forward-scanning from the current UTC clock. Learn how CronBase works.
Platform Implementations
Bash
This is a Quartz-specific expression. For standard cron (like in bash), you would need to simulate the 'last Saturday' logic, as it's not directly supported. A common approach involves a script that checks the day of the week and the day of the month to determine if it's the last Saturday. For example: 0 0 10 ? * 6 requires additional scripting logic to ensure it's the last Saturday of the month.
0 0 10 ? * 6L Last verified:
Nodejs
When using a library like 'node-cron' in Node.js, you can often use Quartz-like syntax. Ensure your library supports 'L' for the last day of the week. Example: const cron = require('node-cron'); cron.schedule('0 0 10 ? * 6L', () => { console.log('Running task for the last Saturday of the month!'); }, { timezone: 'America/New_York' });
0 0 10 ? * 6L Last verified:
Python
Python libraries like 'schedule' or 'APScheduler' might support Quartz syntax, or you may need to implement custom logic. For APScheduler, you could use a 'CronTrigger' with the expression or build a custom trigger. Example with a hypothetical Quartz-compatible library: from apscheduler.schedulers.blocking import BlockingScheduler scheduler = BlockingScheduler(timezone='UTC') scheduler.add_job(my_task, 'cron', day_of_week='sat', week='last', hour=10, minute=0) scheduler.start()
0 0 10 ? * 6L Last verified:
Golang
Go libraries like 'robfig/cron' often support extended syntax similar to Quartz. Ensure the version or library you use supports 'L' for the last day of the week. Example: import ( "fmt" "github.com/robfig/cron/v3" ) c := cron.New() c.AddFunc('0 0 10 ? * 6L', func() { fmt.Println("Running task for the last Saturday of the month!") }) c.Start()
0 0 10 ? * 6L Last verified:
Java
In Java, using libraries like Quartz Scheduler itself or Spring's Task Scheduling allows for this expression. Example using Quartz: CronExpression expression = new CronExpression("0 0 10 ? * 6L"); // Associate this expression with a job trigger in your Quartz setup.
0 0 10 ? * 6L Last verified:
Kubernetes
In Kubernetes CronJob resources, the schedule field uses standard cron syntax. To achieve 'last Saturday of the month', you typically need a more complex approach, often involving a script within the container that checks the date. Standard cron doesn't directly support 'last day of week'. You might schedule it to run daily and have the script check if it's the correct day. Example (conceptual):
schedule: "0 10 * * 6" # Runs every Saturday at 10 AM, script checks if it's the last one.
0 0 10 ? * 6L Last verified:
Frequently Asked Questions
What does '0 0 10 ? * 6L' mean in Quartz cron syntax?
This expression means the job will trigger at 10:00 AM on the last Saturday of every month. The '0 0' specifies the hour and minute, '10' is the hour (10 AM), '?' in the day-of-month field indicates no specific value, '*' in the month field means every month, and '6L' specifies the last Saturday of the month (6 typically represents Saturday, and 'L' denotes the last occurrence).
Does this cron expression consider timezones?
Quartz cron expressions themselves are not timezone-aware. The timezone in which the job executes depends on the server's or scheduler's configured timezone. For critical operations, it's best practice to explicitly configure the scheduler to use a specific timezone (e.g., UTC) to avoid ambiguity during Daylight Saving Time transitions or server changes.
How can I verify this cron expression is working correctly?
You can verify this expression by checking your scheduler's logs for job executions that align with the specified time and day. Alternatively, you can set up a test job that logs the current date and time when it runs, allowing you to confirm it triggers only on the last Saturday of the month at 10 AM.
What is a common variation of this expression?
A common variation would be to run on the last Friday of the month instead of the last Saturday. This would change the day-of-week from '6L' to '5L' (assuming Friday is represented by 5). For example, '0 0 10 ? * 5L'.
What is a potential pitfall with 'last day of week' expressions?
A potential pitfall is misunderstanding the day-of-week numbering, as it can vary between cron implementations (e.g., Sunday as 0 or 7). Quartz typically uses 1 (Sunday) through 7 (Saturday). Ensure your understanding aligns with the Quartz scheduler's convention to avoid unexpected execution days.
More schedules like this
Explore Monthly Schedules →* Try any expression
Standard, Quartz, AWS EventBridge, Jenkins, named schedules (@daily, @hourly…)
* Keep Exploring