Event status sync between aCalendar+ and Netcloud



  • I just discovered that appointments marked as tentative in aCalendar+ are synced with STATUS:CONFIRMED to Nextcloud 😲

    System setup:

    • Android 10 (Google Pixel 4)
    • aCalendar+ 2.3.2
    • Nextcloud 18.0.2, Calendar app 2.0.2
    • DAVx⁵ 2.6.5

    Steps to reproduce:

    • change an existing appointment from “confirmed” to “tentative” in aCalendar+ or create a new tentative event
    • sync it to Nextcloud and check the event status: it is “confirmed”
    	PARAMETER #0 = organizer=myslef sync_data1=577dc7c534aaf4f3c49322c280f9427d sync_data2=1 sync_data3=4 guestsCanModify=0 description=some text guestsCanSeeGuests=1 lastDate=1586649600000 allDay=1 cal_sync1={"type":"SYNC_TOKEN","value":"http:\/\/sabre.io\/ns\/sync\/402","initialSync":false} accessLevel=2 isOrganizer=1 hasAttendeeData=1 uid2445=cf824ec8-5338-4d69-a23e-82705685852b guestsCanInviteOthers=1 eventLocation=somewhere _id=1961 dirty=1 dtend=1586649600000 eventStatus=1 title=something to do hasAlarm=0 eventEndTimezone=Etc/UTC selfAttendeeStatus=0 eventTimezone=UTC calendar_id=9 _sync_id=cf824ec8-5338-4d69-a23e-82705685852b.ics mutators=org.withouthat.acalendarplus deleted=0 hasExtendedProperties=0 lastSynced=0 dtstart=1585958400000 availability=2
    2020-03-20 19:08:07 3773 [syncadapter.CalendarSyncManager] Preparing upload of event cf824ec8-5338-4d69-a23e-82705685852b.ics
    	PARAMETER #0 = Event=[alarms=[], attendees=[], categories=[], classification=CLASS:PRIVATE, color=null, description=some text, dtEnd=DTEND;VALUE=DATE:20200412, dtStart=DTSTART;VALUE=DATE:20200404, duration=null, exDates=[], exRule=null, exceptions=[], lastModified=null, location=somewhere, opaque=true, organizer=null, rDates=[], rRule=null, recurrenceId=null, status=STATUS:CONFIRMED, summary=something to do, unknownProperties=[], sequence=5, uid=cf824ec8-5338-4d69-a23e-82705685852b]
    

    The event stays tentative in aCalendar until it is changed on Nextcloud and synced back.

    The error can be reproduced the other way round as well:

    • create tentative event in Nextcloud
    • sync it to Android - and it is “confirmed”

    Free events seem to sync correctly though.

    To me it looks like a slight mismatch between the Android status of an event and the Nextcloud properties “status” (confirmed/tentative/cancelled) and “show as” (that’s how it appears in the NC calendar app, the ics property seems to be TRANSP:OPAQUE/TRANSPARENT for busy/free)


  • developer

    Hello,

    @Louis0815 said in Event status sync between aCalendar+ and Netcloud:

    Steps to reproduce:

    • change an existing appointment from “confirmed” to “tentative” in aCalendar+ or create a new tentative event
    • sync it to Nextcloud and check the event status: it is “confirmed”

    2020-03-20 19:08:07 3773 [AndroidEvent] Read event entity from calender provider
    PARAMETER #0 = organizer=myslef sync_data1=577dc7c534aaf4f3c49322c280f9427d sync_data2=1 sync_data3=4 guestsCanModify=0 description=some text guestsCanSeeGuests=1 lastDate=1586649600000 allDay=1 cal_sync1={“type”:“SYNC_TOKEN”,“value”:“http://sabre.io/ns/sync/402","initialSync”:false} accessLevel=2 isOrganizer=1 hasAttendeeData=1 uid2445=cf824ec8-5338-4d69-a23e-82705685852b guestsCanInviteOthers=1 eventLocation=somewhere _id=1961 dirty=1 dtend=1586649600000 eventStatus=1 title=something to do hasAlarm=0 eventEndTimezone=Etc/UTC selfAttendeeStatus=0 eventTimezone=UTC calendar_id=9 _sync_id=cf824ec8-5338-4d69-a23e-82705685852b.ics mutators=org.withouthat.acalendarplus deleted=0 hasExtendedProperties=0 lastSynced=0 dtstart=1585958400000 availability=2

    There’s a confusion between

    1. “Availability” (busy/free/tentative¹, mapped to TRANSP in iCalendar; there are only two values in iCalendar, so “free” is mapped to “transparent” and other values are mapped to “opaque”) and
    2. “Status” (confirmed/tentative/cancelled; usually used for group-scheduled events).

    When I create a normal event (without attendees), I don’t even see a “status” field in aCalendar+ 2.3.2, so it’s not possible to set the status. aCalendar+ sets it automatically to STATUS_CONFIRMED, which is then synchronized by DAVx5.

    Same in the other direction.

    So the only question is why aCalendar+ doesn’t show/use the “status” field. Maybe it doesn’t show it for non-group-scheduled events.

    ¹ DAVx5 sets Calendar.ALLOWED_AVAILABILITY=AVAILABILITY_BUSY,AVAILABILITY=FREE only, so TENTATIVE shouldn’t even appear.

    I have asked the author of aCalendar+ about both things for further information.



  • Thx for these insights, looking forward to the comments from aCalendar…
    Being a user and not a technician “all I want” is to see these options reflected in the sync (as apparently both endpoints support it, at least on the GUI): aCalendar+ screenshot


  • developer

    @Louis0815 But in the UI, “tentative” should not appear where it appears, because availability can only be “free” or “busy”.

    The “status” field (where “tentative” can appear) seems not to be supported or at least shown in your case.



  • @rfc2822 or that part of the UI should set STATUS (as it allows all three values); availability busy/free could be set accordingly in the background if necessary.
    And I am fully aware that there is no final answer to the question whether a tentative event should be considered busy or free (for my calendar habits “free” would be mostly correct).

    We’ll see what Tapir says…


  • developer

    Good news from aCalendar+ 🙂

    1. The “status” field (which is currently always set to STATUS_CONFIRMED by aCalendar+; in contrast to other calendar apps, which always leave that field empty) is put to the roadmap of aCalendar+. However, the demand is very low and time is scarce, so there’s no schedule for that.
    2. With aCalendar 2.3.3+, the ALLOWED_AVAILABILITY field will be evaluated, so aCalendar+ won’t show the “tentative” option anymore for DAVx5 calendars. We have already received and successfully tested a beta version with this feature.


  • Well, good news in this is that the user experience will be more consistent.

    But I am not sure whether this really makes me happy, maybe I have to change some habits/workflows.
    Will think about it and eventually start chasing aCalendar+. Or come back here.


Log in to reply
 

Similar topics

  • 2
  • 4
  • 3