We have moved to a new Sailfish OS Forum. Please start new discussions there.
8

CalDAV problem with recurring events: Jolla -> Baikal -> Thunderbird -> Baikal -> Jolla

asked 2014-11-18 13:35:09 +0300

ralooyar gravatar image

I have encountered reproducable problems, when syncing CalDAV events from Jolla (1.0.8.21, Tahkalampi) via Baikal (0.2.7) to Thunderbird (31.2.0) and back:

  • the end time is equal to the start time (although the event should last 1 hour)
  • daily recurrence for 3 days is lost
  • the reminder "30 minutes before event" is lost

Steps to reproduce:

On Jolla GUI, create event:

  • Event name: "Test recurring three times"
  • Event location: empty
  • Description: "Created on Jolla"
  • Start date: 18.11.14
  • Start time: 12:00:00
  • End date: 18.11.14
  • End time: 13:00:00
  • Allday: No
  • Recurring: Every day
  • Recurrence end: 20.11.2014
  • Reminder: 30 min before event

In Jolla db (/home/nemo/.local/share/system/privileged/Calendar/mkcal/db):

CREATE TABLE Components(ComponentId INTEGER PRIMARY KEY AUTOINCREMENT, Notebook TEXT, Type TEXT, Summary TEXT, Category TEXT, DateStart INTEGER, DateStartLocal INTEGER, StartTimeZone TEXT, HasDueDate INTEGER, DateEndDue INTEGER, DateEndDueLocal INTEGER, EndDueTimeZone TEXT, Duration INTEGER, Classification INTEGER, Location TEXT, Description TEXT, Status INTEGER, GeoLatitude REAL, GeoLongitude REAL, Priority INTEGER, Resources TEXT, DateCreated INTEGER, DateStamp INTEGER, DateLastModified INTEGER, Sequence INTEGER, Comments TEXT, Attachments TEXT, Contact TEXT, InvitationStatus INTEGER, RecurId INTEGER, RecurIdLocal INTEGER, RecurIdTimeZone TEXT, RelatedTo TEXT, URL TEXT, UID TEXT, Transparency INTEGER, LocalOnly INTEGER, Percent INTEGER, DateCompleted INTEGER, DateCompletedLocal INTEGER, CompletedTimeZone TEXT, DateDeleted INTEGER, extra1 STRING, extra2 STRING, extra3 INTEGER);

select * from components;

37|e0f9a123-1136-45d7-8b8f-3c0afb0d88e9|Event|Test recurring three times||1416308400|1416312000|Europe/Berlin|0|1416312000|1416315600|Europe/Berlin|0|0||Created on jolla|0|255.0|255.0|0||1416305021|1416305021|1416305021|0||||0|0|0|||urn:x-ical:8db2134e-7b77-4afb-87b5-8959ade43add|8db2134e-7b77-4afb-87b5-8959ade43add|0|0|0|0|0||0|||0

After sync from jolla to baikal in Baikal db:

CREATE TABLE calendarobjects ( 
        id integer primary key asc, 
    calendardata blob, 
    uri text, 
    calendarid integer, 
    lastmodified integer
, etag text, size integer, componenttype text, firstoccurence integer, lastoccurence integer);

select * from calendarobjects;

15|BEGIN:VCALENDAR
PRODID:-//K Desktop Environment//NONSGML libkcal 4.3//EN
VERSION:2.0
X-KDE-ICAL-IMPLEMENTATION-VERSION:1.0
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19810329T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
END:DAYLIGHT
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
DTSTART:19160501T220000
RDATE;VALUE=DATE-TIME:19160501T220000
RDATE;VALUE=DATE-TIME:19170416T010000
RDATE;VALUE=DATE-TIME:19180415T010000
RDATE;VALUE=DATE-TIME:19400401T010000
RDATE;VALUE=DATE-TIME:19430329T010000
RDATE;VALUE=DATE-TIME:19440403T010000
RDATE;VALUE=DATE-TIME:19450402T010000
RDATE;VALUE=DATE-TIME:19460414T010000
RDATE;VALUE=DATE-TIME:19470407T020000
RDATE;VALUE=DATE-TIME:19480418T010000
RDATE;VALUE=DATE-TIME:19490410T010000
RDATE;VALUE=DATE-TIME:19800406T020000
END:DAYLIGHT
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19800928T030000
RRULE:FREQ=YEARLY;COUNT=16;BYDAY=-1SU;BYMONTH=9
END:STANDARD
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19961027T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
BEGIN:STANDARD
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
DTSTART:19161001T230000
RDATE;VALUE=DATE-TIME:19161001T230000
RDATE;VALUE=DATE-TIME:19170917T020000
RDATE;VALUE=DATE-TIME:19180916T020000
RDATE;VALUE=DATE-TIME:19421102T020000
RDATE;VALUE=DATE-TIME:19431004T020000
RDATE;VALUE=DATE-TIME:19441002T020000
RDATE;VALUE=DATE-TIME:19451118T020000
RDATE;VALUE=DATE-TIME:19461007T020000
RDATE;VALUE=DATE-TIME:19471005T020000
RDATE;VALUE=DATE-TIME:19481003T020000
RDATE;VALUE=DATE-TIME:19491002T020000
END:STANDARD
BEGIN:DAYLIGHT
TZNAME:CEMT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
DTSTART:19450525T000000
RDATE;VALUE=DATE-TIME:19450525T000000
RDATE;VALUE=DATE-TIME:19470511T020000
END:DAYLIGHT
BEGIN:DAYLIGHT
TZNAME:CEST
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
DTSTART:19450925T000000
RDATE;VALUE=DATE-TIME:19450925T000000
RDATE;VALUE=DATE-TIME:19470630T000000
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
DTSTAMP:20141118T100341Z
CREATED:20141118T100341Z
UID:8db2134e-7b77-4afb-87b5-8959ade43add
LAST-MODIFIED:20141118T100341Z
DESCRIPTION:Created on jolla
SUMMARY:Test recurring three times
RRULE:FREQ=DAILY;UNTIL=20141220T110000Z
DTSTART;TZID=Europe/Berlin:20141118T120000
DTEND;TZID=Europe/Berlin:20141118T130000
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:
TRIGGER;VALUE=DURATION:-PT30M
X-KDE-KCALCORE-ENABLED:TRUE
END:VALARM
END:VEVENT
END:VCALENDAR
|8db2134e-7b77-4afb-87b5-8959ade43add.ics|1|1416305124|342ab2e2bab3d6f722f551245f418278|2571|VEVENT|1416308400|1419076800

And after sync from baikal to thunderbird in Thunderbird GUI:

Click open event and Edit all occurences. Check event data: Everything correctly synced from jolla to thunderbird, except reminder. This one is gone. I am no CalDAV export, so I don't know if this is a jolla or a thunderbird problem.

Now change the description of the event from "Created on jolla" to "Created on jolla, edit with thunderbird".

And after sync back from thunderbird to baikal, you can find in Baikal db:

CREATE TABLE calendarobjects ( 
        id integer primary key asc, 
    calendardata blob, 
    uri text, 
    calendarid integer, 
    lastmodified integer
, etag text, size integer, componenttype text, firstoccurence integer, lastoccurence integer);

select * from calendarobjects;

15|BEGIN:VCALENDAR
PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//EN
VERSION:2.0
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:19701025T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CREATED:20141118T100341Z
LAST-MODIFIED:20141118T102957Z
DTSTAMP:20141118T102957Z
UID:8db2134e-7b77-4afb-87b5-8959ade43add
SUMMARY:Test recurring three times
RRULE:FREQ=DAILY;UNTIL=20141220T110000Z
DTSTART;TZID=Europe/Berlin:20141118T120000
DTEND;TZID=Europe/Berlin:20141118T130000
DESCRIPTION:Created on jolla\, edit with thunderbird
TRANSP:OPAQUE
X-MOZ-GENERATION:1
END:VEVENT
END:VCALENDAR
|8db2134e-7b77-4afb-87b5-8959ade43add.ics|1|1416306598|a300ed4071ec65049a9c028ea8b4d81b|880|VEVENT|1416308400|1419076800

And if you sync further from baikal to jolla, you can find in Jolla Db:

CREATE TABLE Components(ComponentId INTEGER PRIMARY KEY AUTOINCREMENT, Notebook TEXT, Type TEXT, Summary TEXT, Category TEXT, DateStart INTEGER, DateStartLocal INTEGER, StartTimeZone TEXT, HasDueDate INTEGER, DateEndDue INTEGER, DateEndDueLocal INTEGER, EndDueTimeZone TEXT, Duration INTEGER, Classification INTEGER, Location TEXT, Description TEXT, Status INTEGER, GeoLatitude REAL, GeoLongitude REAL, Priority INTEGER, Resources TEXT, DateCreated INTEGER, DateStamp INTEGER, DateLastModified INTEGER, Sequence INTEGER, Comments TEXT, Attachments TEXT, Contact TEXT, InvitationStatus INTEGER, RecurId INTEGER, RecurIdLocal INTEGER, RecurIdTimeZone TEXT, RelatedTo TEXT, URL TEXT, UID TEXT, Transparency INTEGER, LocalOnly INTEGER, Percent INTEGER, DateCompleted INTEGER, DateCompletedLocal INTEGER, CompletedTimeZone TEXT, DateDeleted INTEGER, extra1 STRING, extra2 STRING, extra3 INTEGER);

select * from components;

37|e0f9a123-1136-45d7-8b8f-3c0afb0d88e9|Event|Test recurring three times||1416308400|1416312000|Europe/Berlin|0|1416308400|1416312000|Europe/Berlin|0|0||Created on jolla, edit with thunderbird|0|255.0|255.0|0||1416305021|1416306787|1416306787|0||||0|0|0|||urn:x-ical:8db2134e-7b77-4afb-87b5-8959ade43add|8db2134e-7b77-4afb-87b5-8959ade43add|0|0||0|0|0|0|||0

And in the Jolla GUI, you can see that all correct, except:

  • "end time" is now "12:00", should be "13:00"
  • "recurring" is now "Once", should be "Every Day"
  • "recurrence end" is no more shown (guess, since no recurrence)

I am no CalDAV expert, so I can't say where the error exactly happens. But I hope, providing as much debug info as possible, the Jolla CalDAV experts can find out where something goes wrong. I can only say: Creating an event on jolla, syncing to thunderbird, changing the description there and syncing it back to jolla should not lead to the three data-changes mentioned above.

edit retag flag offensive close delete

1 Answer

Sort by » oldest newest most voted
3

answered 2017-03-24 22:33:04 +0300

luen gravatar image

The problem that events created in Sailfish OS don't have any reminder after being synced to Thunderbird has been resolved. The fix will hopefully arrive with SFOS 2.1.1. The problem was that the ACTION entry was empty instead of having a valid value (for example DISPLAY).

A related problem (that was obscured by the previous until that was fixed) was that when editing the reminder of an existing event in the SFOS calendar, no sync back to the server was triggered, since the event wasn't considered changed. This has also been fixed, so let's hope for it to arrive in SFOS 2.1.1 as well.

I haven't been able to reproduce the other problems mentioned in the question (incorrect end time and missing recurrence after sync from TB to SFOS), so they may have been fixed in earlier releases.

edit flag offensive delete publish link more
Login/Signup to Answer

Question tools

Follow
4 followers

Stats

Asked: 2014-11-18 13:35:09 +0300

Seen: 827 times

Last updated: Mar 24 '17