re-syncing a modified event sets STATUS:TENTATIVE



    1. create an event in thunderbird lightning, not setting the status. This syncs to the CalDAV server without any STATUS:* - line in the VEVENT.

    2. sync to device via davdroid

    3. edit the event in the stock android google calendar, only modifying title of the event

    4. re-sync to server

    5. the event now includes a STATUS:TENTATIVE . I assume this was set when editing the event in the google calendar.

    Problem: now the event will always keep the status 'tentative' but as a user I have never requested this.

    I do not see any easy fix. My suggestion would be to explicitly write a STATUS: to the google calendar when parsing the EVENT, possibly setting status:confirmed if there is not status: set in the event.

    alternatives:

    • ask google calendar not to assume status:tentative if the field is empty.
    • request thunderbird lightning to always include a status: field , whether confirmed, tentative, etc. but never write <nothing>

    (Device emulator was Nexus 5 API 22, but also confirmed on cyanogenmod 12.1 (5.1.1))
    original_on_server.ics
    modified_davdroid.ics


  • developer

    Hello,

    ical4android takes the status from the Calendar provider only when it's set. When writing, it sets status only when the value from the iCalendar is not null.

    So, it seems that Events.STATUS has been set be your calendar app, as you have assumed.

    If this is a problem for you, you may use another calendar app or try to get a patch into the AOSP calendar app (good luck :laughing:).

    However, as far as I can see, this is not a DAVdroid problem.



  • cross-linking the android bug: android-bug

    I agree davdroid can't do anything here. Some background:

    I think this is because in the EventInfoManager, /src/com/android/calendar/EventInfoFragment.java#L888
    the status is set to Attendees.ATTENDEE_STATUS_NONE by default (originally part of the AttendeesColumns), which points to the same constant value as STATUS_TENTATIVE for the STATUS field.

    So whoever designed this, not only set ATTENDEE_STATUS_NONE == STATUS_TENTATIVE = 0, but also got confused which field to save for Attendee and which belongs to the eventStatus field of the Event. (Great Programmer :persevere: )
    Means: everytime an event that has eventStatus = NULL is edited, it will be overwritten with eventStatus = 0 (which means tentative!)


Log in to reply
 

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