View Issue Details

IDProjectCategoryView StatusLast Update
0002685SOGoWeb Calendarpublic2016-12-21 16:08
Reporterfiredup Assigned To 
PriorityhighSeverityminorReproducibilityalways
Status newResolutionopen 
Platform[Server] LinuxOSLinuxOS Version7 (Wheezy)
Summary0002685: Recurring events with exceptions display incorrectly - move around on calendar
Description

I am using SOGo 2.2.2-1.

Typically we use one of three clients to access the Calendar - SOGo Web calendar, CalDav-Sync client from Android and Mozilla Thunderbird from Windows.

If you have a recurring event on the calendar (created from Thunderbird), mark an exception to it (using Calendar) and subsequently you have DST or EDT timezone change, the event starts to show up at different times and different places on the calenda

Steps To Reproduce
  1. Import the attached event.ics into a test calendar. It was originally supposed ot be for a recurring event that occured every Friday from 7-9pm. It was created on Dec/20/13 - which is a Friday. The event has an exception for Dec-27/13 in it.

Now if you see the calendar, you will see the following:

  • the event is in the right place 1900-2100 on Friday Dec 20 2013
  • the event has moved to 1900-2100 on Thursday Dec 26, 2013
  • the event has moved to 2000-2200 on Thursday March 13, 2014
Additional Information

The ICS file attached is an "View Raw Source" export from one of the misbehaving events in my SOGo calendar.
I am guessing that between the multiple clients, something is getting incorreclty added to the event.

I will try to figure out which is the offending client. However, SOGo should be resistant to this as well.

TagsNo tags attached.

Activities

firedup

firedup

2014-03-26 18:36

reporter  

bad1.txt (1,208 bytes)   
BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
BEGIN:VTIMEZONE
TZID:America/New_York
X-LIC-LOCATION:America/New_York
BEGIN:DAYLIGHT
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
DTSTART:19700308T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
DTSTART:19701101T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20131215T163226Z
X-MOZ-GENERATION:1
SUMMARY:Karate Class
DTSTART;:20131221T000000Z
TRANSP:OPAQUE
LOCATION:Whitman High School Cafeteria
DESCRIPTION: Hello
STATUS:CONFIRMED
LAST-MODIFIED:20140326T162529Z
DTSTAMP:20140313T190043Z
SEQUENCE:7
UID:77d6a9e4-a42a-4d1d-bf27-6a91ef231898
DTEND;:20131221T020000Z
X-SOGO-SEND-APPOINTMENT-NOTIFICATIONS:NO
RRULE:FREQ=WEEKLY;BYDAY=FR
END:VEVENT
BEGIN:VEVENT
DTSTART;TZID=America/New_York:20131227T190000
DESCRIPTION:Ah
SUMMARY:Karate Class
LOCATION:Whitman High School Cafeteria
TRANSP:TRANSPARENT
DTEND;TZID=America/New_York:20131227T210000
LAST-MODIFIED:20140313T190043Z
DTSTAMP:20140313T190043Z
SEQUENCE:2
RECURRENCE-ID:20131228T000000Z
UID:77d6a9e4-a42a-4d1d-bf27-6a91ef231898
END:VEVENT
END:VCALENDAR
bad1.txt (1,208 bytes)   
Christian Mack

Christian Mack

2014-06-12 07:50

developer   ~0007196

Last edited: 2014-06-12 07:57

The only fishy thing I see in the provided event is:
In the main recurrency event there is no TZID set in DTSTART and DTEND, but they contain a lonely semicolon.
No TZID is OK, because the date has a Z appended which means UTC/GMT.

In the exception TZID is set in DTSTART, so no spare semicolon.

But removing the spare ones does not solve the problem.

ludovic

ludovic

2016-12-21 16:08

administrator   ~0011072

This event is broken.

The master occurence is timezone less while the exception is. The recurrence calculator in SOGo can't cope with this and honestly, efforts for this are very low-priority as such events are very rare and cause by design issues in CUA.

Issue History

Date Modified Username Field Change
2014-03-26 18:36 firedup New Issue
2014-03-26 18:36 firedup File Added: bad1.txt
2014-06-12 07:50 Christian Mack Note Added: 0007196
2014-06-12 07:57 Christian Mack Note Edited: 0007196
2016-12-21 16:08 ludovic Note Added: 0011072
2016-12-21 16:08 ludovic Severity major => minor