Calendar and Event Plugin: recurring event option: [n]th [week]day of the month

AI-generated summary

The discussion highlights limitations in the Discourse Calendar and Events plugin regarding recurring event options. eve notes that the plugin currently only supports a fixed list of recurrence patterns (e.g., every week, every month) and cannot handle complex rules like “every second Monday” without using raw RFC5545 syntax. stephen34 reinforces this, pointing out the inability to schedule events on specific ordinal weekdays (e.g., the first Tuesday of every month), a feature common in other calendar apps. rishabh suggests using the “Every four weeks” option, but stephen34 clarifies that this is distinct from “nth weekday of the month,” as the latter requires consistent monthly alignment rather than a fixed four-week interval. karthikb351 advocates for allowing custom RRULE values. Although nathank marks the topic as completed, noting that some enhancements have been delivered, they acknowledge the ongoing need for further extension. Finally, Ed_S adds a use case for “last Sunday of the month,” illustrating the demand for more granular recurrence control.

At the moment you can only choose from a fixed list of options:

Every Day, Every Month, Every Weekday, Every Week, Every Two Weeks, Every Four Weeks

The resulting code looks like this:

[event start="2023-12-01 10:30" status="public" timezone="Europe/Berlin" recurrence="every_week" end="2023-12-01 11:00" allowedGroups="trust_level_0"]
[/event]

It is not allowed to use other values for the recurrence attribute than the ones mentioned above (an error will be displayed).

Please let users define other recurrence patterns like every second monday, yearly or within a date-range

“Every second monday” could be set by a recurrence rule like FREQ=MONTHLY;COUNT=12;BYDAY=2MO following rfc5545 specification

I’ve noticed this PR which already makes use of the rfc5545 rules.

3 Likes

Currently when creating a recurring event in the Calendar and Events plugin it’s not possible to have an event that repeats on (for example) the first Tuesday of every month. This is a standard recurrence pattern in most common scheduling and calendar apps so it seems like a strange omission from Discourse.

This is a feature that has been requested in numerous other topics and posts, so there’s apparently demand for it. For instance

6 Likes

I’m not very familiar with the calendar plugin, but I did a quick test. Does selecting the date+day of the first occurrence of the event and then selecting this option not work?

1 Like

Sorry for the slow reply @rishabh. Unfortunately “Every four weeks at this weekday” is different to the feature I and others would like to see< namely the “Fourth [weekday] of every month”. Sometimes that will mean an interval between meetings of 4 weeks or 5 just depending on the calendar. E.g. scheduling an Exec meeting that always falls on the 4th Tuesday of a month.

This is a pretty ubiquitous calendar feature on most platforms, and something that my users miss when working with claendar and event in Discourse. They understandably give some heat when having to set up 12 individual meetings a year on the 4th Tuesday of the month rather than one repeating event.

4 Likes

This would be great to have. Ideally if we can just set a custom RRULE value ourselves for a given event, instead of using just the predefined “every_week” etc

This has now been delivered - I’ve marked this completed

However, there remains a need to extend this a bit further:

2 Likes

There’s another case, which it would be good to cover - I have an event (in real life) which runs on the last Sunday of each month.

2 Likes