Description | When the start date of a recurring event is changed through the Web interface the current behavior is that the dates of any excluded events are shifted. We believe this is inappropriate, as:
a. we are unable to think of a situation where assuming excluded dates should also shift is appropriate (e.g. weekend exclusions)
b. we have found no interface to view and un-exclude previously excluded dates (other than the raw icalendar source)
c. the iOS calendar client (at least) does not exhibit this behavior; all exclusions are deleted when a recurring event is shifted |
---|
Steps To Reproduce | Using the Web interface:
- create a recurring calendar event starting (e.g.) Wednesday 1 April, repeating daily, ending on Tuesday, 7 April.
- select (e.g.) the Friday, 3 April occurrence and delete only that occurrence
- select the first (1 April) occurrence, Edit All Occurrences, change the start date to 2 April, save
- observe that the Web view now shows an occurrence on Friday, 3 April and no occurrence on Saturday, 4 April
Using iOS/Calendar app:
-
select and edit the 2 April event, changing the start date to 3 April, and "Save for future events"
-
(iOS/Calendar app fails to display the no-longer-excluded Saturday occurrence until a refresh)
-
Refreshing the Web calendar will show no exclusions.
The raw source as shown by the Web interface after each step is:
(I used an all-day event for simplicity but this occurs with any recurring event)
Step 1:
BEGIN:VCALENDAR
PRODID:-//Inverse inc./SOGo 4.3.0//EN
VERSION:2.0
BEGIN:VEVENT
UID:54C7-5E303800-F-6862B400
SUMMARY:recurring with exclusion
CLASS:PUBLIC
X-SOGO-SEND-APPOINTMENT-NOTIFICATIONS:NO
RRULE:FREQ=DAILY;UNTIL=20200408T000000Z
TRANSP:OPAQUE
DTSTART;VALUE=DATE:20200401
DTEND;VALUE=DATE:20200402
CREATED:20200128T133455Z
DTSTAMP:20200128T133455Z
LAST-MODIFIED:20200128T133455Z
END:VEVENT
END:VCALENDAR
Step 2:
BEGIN:VCALENDAR
PRODID:-//Inverse inc./SOGo 4.3.0//EN
VERSION:2.0
BEGIN:VEVENT
UID:54C7-5E303800-F-6862B400
SUMMARY:recurring with exclusion
CLASS:PUBLIC
X-SOGO-SEND-APPOINTMENT-NOTIFICATIONS:NO
RRULE:FREQ=DAILY;UNTIL=20200408T000000Z
TRANSP:OPAQUE
DTSTART;VALUE=DATE:20200401
DTEND;VALUE=DATE:20200402
CREATED:20200128T133455Z
DTSTAMP:20200128T133455Z
LAST-MODIFIED:20200128T133455Z
EXDATE;VALUE=DATE:20200403
SEQUENCE:1
END:VEVENT
END:VCALENDAR
Step 3:
BEGIN:VCALENDAR
PRODID:-//Inverse inc./SOGo 4.3.0//EN
VERSION:2.0
BEGIN:VEVENT
UID:54C7-5E303800-F-6862B400
SUMMARY:recurring with exclusion
CLASS:PUBLIC
X-SOGO-SEND-APPOINTMENT-NOTIFICATIONS:NO
TRANSP:OPAQUE
DTSTART;VALUE=DATE:20200402
DTEND;VALUE=DATE:20200403
CREATED:20200128T133455Z
DTSTAMP:20200128T133455Z
LAST-MODIFIED:20200128T133830Z
SEQUENCE:2
RRULE:FREQ=DAILY;UNTIL=20200408T000000Z
EXDATE;VALUE=DATE:20200404
END:VEVENT
END:VCALENDAR
Step 5:
BEGIN:VCALENDAR
PRODID:-//Apple Inc.//iOS 13.3//EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20200128T133455Z
DTEND;VALUE=DATE:20200404
DTSTAMP:20200128T134255Z
DTSTART;VALUE=DATE:20200403
LAST-MODIFIED:20200128T134254Z
RRULE:FREQ=DAILY;UNTIL=20200408
SEQUENCE:3
SUMMARY:recurring with exclusion
TRANSP:OPAQUE
UID:54C7-5E303800-F-6862B400
X-SOGO-SEND-APPOINTMENT-NOTIFICATIONS:NO
END:VEVENT
END:VCALENDAR |
---|