tutanota icon indicating copy to clipboard operation
tutanota copied to clipboard

Advanced calendar event repeat rules

Open charlag opened this issue 5 years ago • 6 comments

As a user i want to be able to define more advanced repeat rules so that i can be more flexible with defining repeating events.

Acceptance critera

  • [ ] Allow configure rules for a certain day (e.g. BYMONTHDAY=22, BYDAY, )
  • [x] Exception for repeating events (EXDATE)

Implementation hint

We should support BY* repeat rules for the calendar events like BYMONTH/BYDAY etc to enable things like "every second Tuesday each month".

see https://tools.ietf.org/html/rfc5545#section-3.3.10

examples are:

BEGIN:VCALENDAR
PRODID:-//company//calendar app//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:PUBLISH
X-WR-CALNAME:byruletes
X-WR-TIMEZONE:Europe/Berlin
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200622
DTEND;VALUE=DATE:20200623
RRULE:FREQ=MONTHLY;BYMONTHDAY=22
DTSTAMP:20200624T071758Z
UID:XXX0
CREATED:20200622T083746Z
DESCRIPTION:
LAST-MODIFIED:20200622T083746Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:on 22nd monthly
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200622
DTEND;VALUE=DATE:20200623
RRULE:FREQ=MONTHLY;BYDAY=4MO
DTSTAMP:20200624T071758Z
UID:XXX2
CREATED:20200622T083804Z
DESCRIPTION:
LAST-MODIFIED:20200622T083814Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:fourth monday
TRANSP:TRANSPARENT
END:VEVENT
BEGIN:VEVENT
DTSTART;VALUE=DATE:20200624
DTEND;VALUE=DATE:20200625
RRULE:FREQ=WEEKLY;WKST=MO;BYDAY=MO,WE
DTSTAMP:20200624T071758Z
UID:XXX2
CREATED:20200624T071724Z
DESCRIPTION:
LAST-MODIFIED:20200624T071724Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:monday and wednesday
TRANSP:TRANSPARENT
END:VEVENT
END:VCALENDAR

event which starts on 22nd each month event which happens every 4th Monday and Wednesday event which happens every Monday and Wednesday

charlag avatar Dec 06 '19 12:12 charlag

I am really interested in having this feature. I am happy to dedicate some time each day to working on this, if you are interested in additional hands!

joshuaobrien avatar Dec 09 '19 04:12 joshuaobrien

@joshuaobrien that's nice to hear! You could start with an algorithm, you cannot really change database type but you could prototype it. See the spec I linked and CalendarModel

charlag avatar Dec 09 '19 07:12 charlag

We should also allow to modify single events that are part of a series, such as changing the description only for one event and not for the other occurrences.

vaf-hub avatar Sep 01 '21 07:09 vaf-hub

We should also allow to modify single events that are part of a series, such as changing the description only for one event and not for the other occurrences.

On that: would be great to have the possibility to delete or change the date for a single even of a series i.e. giving the options of "edit this event only" or "edit all events of the series" when making changes to a particular event.

BiancaMass avatar Mar 22 '22 20:03 BiancaMass

We should also allow to modify single events that are part of a series, such as changing the description only for one event and not for the other occurrences.

On that: would be great to have the possibility to delete or change the date for a single even of a series i.e. giving the options of "edit this event only" or "edit all events of the series" when making changes to a particular event.

yes this is really important

jacamporaGIS avatar Jun 30 '22 19:06 jacamporaGIS

I would also like to be able to easily copy events to other days. lets say i work the same shift 3 nights a week, I could just copy it from monday to wednesday

jacamporaGIS avatar Jun 30 '22 19:06 jacamporaGIS

Just adding some search terms to this issue as 'repeating' might be missed by some: advanced recurring event advanced recurring schedule complex recurrence pattern

SjoerdV avatar Apr 04 '24 16:04 SjoerdV

Some aspects of this could be considered a bug, see example below:

When you receive a recurring event invite from a gmail account that specifies a recurring event on the first Monday (or any other day) of every month, Tuta simply converts this to monthly. The very first event is correct, however every subsequent event ends up being completely wrong- not landing on the first Monday of every month, but simply one month from the initial event.

MeatH00k avatar Jul 09 '24 22:07 MeatH00k