Timezone issues when Syncing with DavDroid 0.8.4.1



  • Another hint: are you sure that the “wrong” appointment has been created with 0.8.4.1? If it was created with a version between 0.8.1 and 0.8.3 it could be that the event is still wrong in the database. Only new created events will have the correct timezones again, because there was an issue with a third party library we’re using that had a bug in the latest version (which was fixed with 0.8.4).



  • Hi Bernhard,

    here is the log from the PUT request:

    D/HttpClient(16276): Executing request PUT /dav/calendars/XXXXX
    /XXXXXKalender/20150908T062457Z-16276_63c154f3aec4eb1a.ics HTTP/1.1
    D/HttpClient(16276): Target auth state: SUCCESS
    D/HttpClient(16276): Proxy auth state: UNCHALLENGED
    D/Wire    (16276): http-outgoing-3 >> "PUT /dav/calendars/XXXXX
    /XXXXXKalender/20150908T062457Z-16276_63c154f3aec4eb1a.ics HTTP/1.1[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "If-None-Match: *[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "Content-Type: text/calendar; 
    charset=UTF-8[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "Content-Length: 3784[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "Host: XXXXXX[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "Connection: Keep-Alive[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "User-Agent: DAVdroid/0.8.4.1[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "Authorization: Basic 
    XXXXX[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:VCALENDAR[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "VERSION:2.0[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "PRODID:-//bitfire web 
    engineering//DAVdroid 0.8.4.1 (ical4j 2.0-beta1)//EN[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:VEVENT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTAMP:20150908T062458Z[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "UID:20150908T062457Z-16276_63c154f3aec4eb1a[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "DTSTART;TZID=Europe/Amsterdam:20150927T100000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "DTEND;TZID=Europe/Amsterdam:20150927T110000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "SUMMARY:Timezone test davdroid[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "STATUS:TENTATIVE[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "ORGANIZER:mailto:XXXXX[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:VEVENT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:VTIMEZONE[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZID:Europe/Amsterdam[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "TZURL:http://tzurl.org/zoneinfo/Europe/Amsterdam[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "X-LIC-LOCATION:Europe/Amsterdam[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0200[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CEST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19810329T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0200[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CET[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19961027T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> 
    "RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+001932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+001932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:AMT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:18350101T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:18350101T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+001932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+011932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:NST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19160501T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19160501T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19170416T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19180401T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19190407T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19200405T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19210404T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19220326T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19230601T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19240330T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19250605T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19260515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19270515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19280515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19290515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19300515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19310515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19320522T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19330515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19340515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19350515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19360515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19370522T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+011932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+001932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:AMT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19161001T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19161001T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19170917T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19180930T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19190929T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19200927T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19210926T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19221008T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19231007T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19241005T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19251004T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19261003T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19271002T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19281007T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19291006T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19301005T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19311004T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19321002T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19331008T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19341007T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19351006T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19361004T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+011932[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0120[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:NEST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19370701T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19370701T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0120[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0020[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:NET[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19371003T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19371003T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19381002T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19391008T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0020[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0120[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:NEST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19380515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19380515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19390515T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0020[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0200[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CEST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19400516T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19400516T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0200[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CET[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19421102T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19421102T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19431004T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19441002T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19450916T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19770925T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19781001T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19790930T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19800928T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19810927T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19820926T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19830925T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19840930T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19850929T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19860928T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19870927T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19880925T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19890924T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19900930T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19910929T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19920927T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19930926T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19940925T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19950924T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0200[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CEST[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19430329T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19430329T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19440403T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19450402T030000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19770403T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19780402T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19790401T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19800406T020000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:DAYLIGHT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "BEGIN:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETFROM:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZOFFSETTO:+0100[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "TZNAME:CET[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "DTSTART:19770101T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "RDATE:19770101T000000[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:STANDARD[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:VTIMEZONE[\r][\n]"
    D/Wire    (16276): http-outgoing-3 >> "END:VCALENDAR[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "HTTP/1.1 201 Created[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "Cache-Control: no-store, no-cache, 
    must-revalidate, post-check=0, pre-check=0[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "Transfer-Encoding: chunked[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "Allow: OPTIONS, GET, HEAD, POST, PUT, 
    DELETE, PROPFIND, LOCK, REPORT[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "Server: Microsoft-IIS/7.5[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "DAV: 1, access-control, 
    calendar-access, calendar-schedule, calendar-auto-schedule, 
    calendar-proxy[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "X-AspNet-Version: 4.0.30319[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "X-Powered-By: ASP.NET[\r][\n]"
    D/Wire    (16276): http-outgoing-3 << "Date: Tue, 08 Sep 2015 06:24:59 
    GMT[\r][\n]"
    

    In the log the dtstart is set to 10 o’clock, the dtend to 11 o’clock. But in the davdroid app i selected the startdate as 12 o’clock and the enddate as 13 o’clock.
    We have an own written caldav server for android and iOS. When i sync with iOS the start and enddate values identical to the log. In the log and after saving on my iPhone the start and enddate values are i.e. 12 - 13 o’clock (iOS) . But when i sync with davdroid the log is subtracting the timezone value off of the datetime?

    I hope you can help me. Thank you in advance.

    Best regards,

    Marc



  • I found the issue! My Problem was, that the “S Planner” Version which I use is maybe to old. When i test it with the google calendar app in combination with davdroid it will work fine!
    Thanks for your help.

    Best regards,
    Marc



  • Ah I see, great that you found it out and thanks for the update!



  • Hey Bernhard,

    i have the same Problems now with the google calendar app too!
    There was no DavDroid update. When i create an account and sync my events, the server sends it in the correct format, but the calendar apps don’t show the correct time. They added to my eventbegin and my eventend two hours (the two hours come from the TimeZone “Europe/Berlin”). I can’t calculate the eventbegin and eventend, cause in iOS calendar all events are fine.

    An example how my vcalendar looks like is in the first post.

    We need a solution for our customers.

    Thanks for your help.
    Best regards,

    Marc



  • Hey Bernhard,

    i fixed this issue. The problem was that Android (maybe DavDroid?) can’t handle the VTIMEZONE Part. When i remove this from my VCALENDAR, the events are displayed correctly.

    Can u explain me, what happend there? Where the calculation is carried out?

    Another Question: Is there a newsletter for DavDroid updates in advance for developers?

    Thanks for your help.
    Best regards,

    Marc



  • Hi Marc,

    there is no newsletter, sorry. The earliest chance to see whats upcoming is to be in the beta tester group in the forum.
    Maybe your calendar file with VTIMEZONE had some errors or so? Did you validate the calendar in a validator when having the VTIMEZONE in it?

    DAVdroid does handle the VTIMEZONE.

    Can you make a test account for us, then we can have a look at it.



  • Hi Bernhard,

    yes your offer to be in the beta tester group would be appreciated.
    I will send you a private message with the username and password for our caldav server.

    Thanks for your help.
    Best regards,

    Marc


  • developer

    I have just tested with DAVdroid/0.9.0.2 and the credentials you have sent, and everything works for me.

    I think it’s a problem with your Calendar app. Which one do you use? DAVdroid takes the time (and time zone) information directly from the Calendar Provider, which is filled by your Calendar app.

    I have tried with Etar (and just found another bug in it, but it’s not related to yours) and Samsung S Planner, both worked for me.

    Which calandar app do you use? Can you try another one?



  • This post is deleted!

Log in to reply
 

Similar topics