Advanced Scheduler & Cron Enhancements (Last/First Month Day, Working Days, AND/OR Logic)**

1. Last / First Day of Month on Working Days

Right now, n8n cannot schedule a workflow to run only on the last day of the month, or only on the first day, with the ability to skip weekends and run on the nearest working day instead.

For example:

  • If the last day of the month falls on Friday/Saturday → run on Thursday

  • If it falls on Sunday–Thursday → run on that day normally

Today, the only workaround is to run a Cron daily (or on days 28–31) and then use a Function node to check if it’s the correct day.
This works, but it’s not clean and adds unnecessary complexity.

It would be very helpful to have built-in options such as:

  • Last day of the month

  • First day of the month

  • Last working day of the month

  • First working day of the month

  • Ability to define the working days (Mon–Fri, Sun–Thu, etc.)

These kinds of scheduling rules exist in many enterprise automation platforms and are extremely useful for month-end financial, HR, and reporting tasks.


2. Upgrade the Scheduler with More Advanced Options

In general, the Scheduler could benefit from additional built-in rules, such as:

  • “Every X business days”

  • “Every last Friday of the month”

  • “Every first Monday of the month”

  • “Every nth weekday”

  • “Exclude holidays (via custom list or API)”

Expanding the Scheduler would significantly reduce the need for extra Function nodes or custom scripts.


3. Improve Cron Logic — AND/OR Behavior Similar to SQL Conditions

Currently, when setting Cron conditions, some fields behave like AND, while others behave like OR, but the logic is limited and not fully intuitive.

Examples:

  • If I select multiple weekdays, Cron treats them like OR (Mon OR Tue OR Wed).

  • But combining multiple fields (day, month, weekday) behaves like AND.

  • There is no way to express more complex logical combinations (e.g., (weekday = Monday AND day < 28) OR (last working day)).

It would be very helpful if the Cron UI supported clearer AND/OR logic similar to SQL, or at least provided:

  • Multi-select conditions that can be toggled to AND or OR

  • More flexible rule-building instead of the rigid Cron format

  • An “advanced mode” for complex scheduling logic

This improvement would make the Scheduler far more powerful and reduce the dependency on scripting nodes.


Why This Matters

Many businesses rely on accurate monthly and weekly cycles for:

  • Payroll

  • Billing

  • Month-end reporting

  • Regulatory compliance

  • Data aggregation

  • HR checks and verifications

Without a more flexible scheduler, users must build complicated logic chains just to achieve simple, real-world scheduling rules.

Upgrading the Scheduler would make n8n much more enterprise-friendly and dramatically simplify many workflows.


Thank you!
I hope the team considers expanding the scheduling capabilities and improving the flexibility of Cron logic. This would benefit a very large portion of n8n users.

There are some JavaScript workaround expressions, such as getting the number of days in the current month with:

{{ new Date(new Date().getFullYear(), new Date().getMonth() + 1, 0).getDate() }}

But of course, not everyone knows it, and it would be really nice to extend the Schedule Trigger with more features as you described.

+1

2 Likes