Weird probably timezone-related issues with one-time-events



  • Hey there,
    I started using ICSDroid a few days ago, since my university provides my schedule by that since a few days, but ran into some quite weird issues:
    First some technical data:
    ICSDroid 1.0, installed from F-Droid
    Android 5.0
    Samsung Galaxy S5
    S Planner as calendar app

    OK, so my problem is as follows:
    In my schedule, I have two events recurring each weekday, which are shown and synchronized just normally.
    There is another single event, which is set at all-day for a period of about 7 weeks. This is also perfectly normal.
    Then, there are a lot of one-time-events, which for some reason all show up one hour early. The whole entry, beginning and end, is moved e.g. from 8:15-9:45 to 7:15-8:45

    If I import the .ics-file which the synchronisation is based upon directly into the S Planner, everything works out fine, but since I then would have to download the file every day to get my updates, that is kind of useless.
    Funny enough, the same issue happens, if I import the ics-file into a SOGo-Calendar and synchronize it by DAVDroid. In the web-interface all the events show up right, but on my android the one-time-events aganin show up one hour early.

    I'd be glad if you can provide me with some help how to resolve this issue. At first I thought, it was a mistake of my university on how they create the files, but since direct import works and other programs like SOGo and Thunderbird don't have any problems, I guess it's related to ICSDroid and DAVDroid. If I'm mistaken, probably you can provide some info I can forward to the responsible people.

    If you need any further information, please tell me and I'll see I can collect them for you!

    Thank you for your work!

    Greetings,
    Aganyur


  • admin

    Hello,

    thanks for the report. Can you maybe send us the ics file? In which time zone do you live? I think this could have something to do with it...

    Greetings,
    Bernhard



  • Ah, sure!
    This is one of the calendars provided by the university:
    0_1447367111854_2015_WS_Studienjahr_5_LBII_Seminar_V_Praktikum_Vc.ics

    Another funny thing I just noticed:
    All events which have already passed are shown at the correct time, events in the future are still one hour early (except the recurring one).
    The timezone I live in is CET (UTC+1). I'm not so sure about the syntax of .ics-files, but the set timezone seemed fine to me.

    Thanks for your help!


  • developer

    Hello,

    ICSdroid's behaviour is correct. It parses and uses the VTIMEZONE that comes with the .ics file:

    BEGIN:VTIMEZONE 
    TZID:Europe/Berlin 
    X-LIC-LOCATION:Europe/Berlin 
    BEGIN:DAYLIGHT 
    TZOFFSETFROM:+0100 
    TZOFFSETTO:+0200 
    TZNAME:CEST 
    DTSTART:20151112T032327 
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 
    END:DAYLIGHT 
    BEGIN:STANDARD 
    TZOFFSETFROM:+0200 
    TZOFFSETTO:+0100 
    TZNAME:CET 
    DTSTART:20151112T032327 
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 
    END:STANDARD 
    END:VTIMEZONE
    

    As you can see, this VTIMEZONE states that daylight time (CEST = CET summertime) begins on 12 Nov 2015 03:23:27, and the standard (non-daylight) time begins at exactly the same time.

    This also explains why only events from exactly 12 Nov 2015 03:23:27 are wrong (probably interpreted by you as "events in the future").

    So, this is an error in the time zone definition published by MedMA.

    BTW, ICSdroid and DAVdroid behave the same way because both use our library ical4android for parsing/generating iCal files and accessing the calendar provider.



  • Ok, I'll forward it to them...
    But still, it's not only todays events, it's really all of the future events which are early ;)
    I guess they have some faulty script setting the Daylight savings date when generating the ics-file, since it seems to be the Time it is updated daily.

    Thank you!

    PS: Did I get that right? It would just be sufficient to change the script, so that it fixes DTSTART for CEST would be 19960331T020000 and for CET 19961027T030000 ?


  • developer

    @Aganyur said:

    But still, it's not only todays events, it's really all of the future events which are early ;)

    It should affect all events after 12 Nov 2015 03:23:27, because that's when the time zone switches.

    PS: Did I get that right? It would just be sufficient to change the script, so that it fixes DTSTART for CEST would be 19960331T020000 and for CET 19961027T030000 ?

    Guess so. You can find a the Europe/Berlin definition ical4android uses here (taken from ical4j, which imports Olson TZ DB). However, this definition reaches quite far into the past. If you need to calculate only dates since 1996, a single entry for 1996 and later would be enough.


  • developer

    @Aganyur: Just for curiosity – has this problem been fixed on server side?



  • Indeed, the concerned admin took care of it and was quite grateful for the help I could provide thanks to your replies!
    The beginning of the generated .ics-files now looks like this:

    BEGIN:VTIMEZONE
    TZID:Europe/Berlin
    X-LIC-LOCATION:Europe/Berlin
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    TZNAME:CEST
    DTSTART:19700329T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    TZNAME:CET
    DTSTART:19700329T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
    END:STANDARD
    END:VTIMEZONE
    

    As far as I understood the problem, this should keep it fixed even after the next clock change.
    Thanks again for your help!


Log in to reply
 

Looks like your connection to Bitfire App Forums was lost, please wait while we try to reconnect.