COLORS : weird upload on davical



  • Hi,

    I'm testing the new per event COLOR tag. I created a new server ressource with only calendar (no tasks), populated by outlook. So every event has a COLOR value, set from the category color.
    I have 10 categories, here are the colors as set on the davical server :
    COLOR:blue\r
    COLOR:darkolivegreen\r
    COLOR:darkorange\r
    COLOR:darkred\r
    COLOR:gray\r
    COLOR:green\r
    COLOR:maroon\r
    COLOR:palevioletred\r
    COLOR:red\r
    COLOR:yellow\r

    When I sync from server with davdroid, all is fine, the colors are good and displayed in any calendar app (I use mostly Pocket Informant and Pure Grid Widget, but tested with others)

    Now I created a new appointmend (copied from another in Informant). Looks fine in any calendar app, with the right color (BLUE).
    But if I sync it on my server I get a weird event.

    Here is the original one :
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN
    BEGIN:VTIMEZONE
    TZID:Romance Standard Time
    BEGIN:STANDARD
    DTSTART:19701025T030000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=3;BYMINUTE=0;BYMONTH=10
    TZNAME:Paris, Madrid
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    END:STANDARD
    BEGIN:DAYLIGHT
    DTSTART:19700329T020000
    RRULE:FREQ=YEARLY;BYDAY=-1SU;BYHOUR=2;BYMINUTE=0;BYMONTH=3
    TZNAME:Paris, Madrid (heure d’été)
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    END:DAYLIGHT
    END:VTIMEZONE
    BEGIN:VEVENT
    CATEGORIES:Entreprise
    CLASS:PRIVATE
    COLOR:blue
    DTEND;TZID=Romance Standard Time:20120905T213000
    DTSTAMP:20170913T074816Z
    DTSTART;TZID=Romance Standard Time:20120905T193000
    PRIORITY:5
    SEQUENCE:0
    SUMMARY:Repet
    TRANSP:OPAQUE
    UID:8ec96cfb-2685-4681-93d1-da159f5871c1
    X-MICROSOFT-CDO-BUSYSTATUS:BUSY
    END:VEVENT
    END:VCALENDAR

    Here is the copied one, sent on the server :
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:+//IDN bitfire.at//DAVdroid/1.7.2-ose ical4j/2.x
    BEGIN:VEVENT
    DTSTAMP:20170913T082648Z
    UID:62048b20-c048-40c5-9cd0-c7725f6b4b39
    SUMMARY:Repet
    DTSTART;TZID=Europe/Paris:20170913T203000
    DTEND;TZID=Europe/Paris:20170913T223000
    CLASS:PUBLIC
    END:VEVENT
    BEGIN:VTIMEZONE
    TZID:Europe/Paris
    TZURL:http://tzurl.org/zoneinfo/Europe/Paris
    X-LIC-LOCATION:Europe/Paris
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    TZNAME:CEST
    DTSTART:19810329T020000
    RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    TZNAME:CET
    DTSTART:19961027T030000
    RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
    END:STANDARD
    BEGIN:STANDARD
    TZOFFSETFROM:+000921
    TZOFFSETTO:+000921
    TZNAME:PMT
    DTSTART:18910315T010100
    RDATE:18910315T010100
    END:STANDARD
    BEGIN:STANDARD
    TZOFFSETFROM:+000921
    TZOFFSETTO:+0000
    TZNAME:WET
    DTSTART:19110311T010100
    RDATE:19110311T010100
    END:STANDARD
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0000
    TZOFFSETTO:+0100
    TZNAME:WEST
    DTSTART:19160615T000000
    RDATE:19160615T000000
    RDATE:19170325T000000
    RDATE:19180310T000000
    RDATE:19190302T000000
    RDATE:19200215T000000
    RDATE:19210315T000000
    RDATE:19220326T000000
    RDATE:19230527T000000
    RDATE:19240330T000000
    RDATE:19250405T000000
    RDATE:19260418T000000
    RDATE:19270410T000000
    RDATE:19280415T000000
    RDATE:19290421T000000
    RDATE:19300413T000000
    RDATE:19310419T000000
    RDATE:19320403T000000
    RDATE:19330326T000000
    RDATE:19340408T000000
    RDATE:19350331T000000
    RDATE:19360419T000000
    RDATE:19370404T000000
    RDATE:19380327T000000
    RDATE:19390416T000000
    RDATE:19400225T030000
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0000
    TZNAME:WET
    DTSTART:19161002T010000
    RDATE:19161002T010000
    RDATE:19171008T010000
    RDATE:19181007T010000
    RDATE:19191006T010000
    RDATE:19201024T010000
    RDATE:19211026T010000
    RDATE:19221008T010000
    RDATE:19231007T010000
    RDATE:19241005T010000
    RDATE:19251004T010000
    RDATE:19261003T010000
    RDATE:19271002T010000
    RDATE:19281007T010000
    RDATE:19291006T010000
    RDATE:19301005T010000
    RDATE:19311004T010000
    RDATE:19321002T010000
    RDATE:19331008T010000
    RDATE:19341007T010000
    RDATE:19351006T010000
    RDATE:19361004T010000
    RDATE:19371003T010000
    RDATE:19381002T010000
    RDATE:19391119T010000
    END:STANDARD
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    TZNAME:CEST
    DTSTART:19400614T230000
    RDATE:19400614T230000
    RDATE:19430329T020000
    RDATE:19440403T020000
    RDATE:19760328T010000
    RDATE:19770403T020000
    RDATE:19780402T020000
    RDATE:19790401T020000
    RDATE:19800406T020000
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    TZNAME:CET
    DTSTART:19421102T030000
    RDATE:19421102T030000
    RDATE:19431004T030000
    RDATE:19450916T030000
    RDATE:19760926T010000
    RDATE:19770925T030000
    RDATE:19781001T030000
    RDATE:19790930T030000
    RDATE:19800928T030000
    RDATE:19810927T030000
    RDATE:19820926T030000
    RDATE:19830925T030000
    RDATE:19840930T030000
    RDATE:19850929T030000
    RDATE:19860928T030000
    RDATE:19870927T030000
    RDATE:19880925T030000
    RDATE:19890924T030000
    RDATE:19900930T030000
    RDATE:19910929T030000
    RDATE:19920927T030000
    RDATE:19930926T030000
    RDATE:19940925T030000
    RDATE:19950924T030000
    END:STANDARD
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0200
    TZNAME:WEMT
    DTSTART:19440825T000000
    RDATE:19440825T000000
    END:DAYLIGHT
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0200
    TZOFFSETTO:+0100
    TZNAME:WEST
    DTSTART:19441008T020000
    RDATE:19441008T020000
    END:DAYLIGHT
    BEGIN:DAYLIGHT
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0200
    TZNAME:WEMT
    DTSTART:19450402T020000
    RDATE:19450402T020000
    END:DAYLIGHT
    BEGIN:STANDARD
    TZOFFSETFROM:+0100
    TZOFFSETTO:+0100
    TZNAME:CET
    DTSTART:19770101T000000
    RDATE:19770101T000000
    END:STANDARD
    END:VTIMEZONE
    END:VCALENDAR

    Same happens if I create an appointment from scratch.


  • developer

    1. Seems like you didn't enable COLOR in DAVdroid account settings.
    2. What do you mean by "weird"?
    3. Please provide debug info as described in [READ BEFORE POSTING] What's required to diagnose a problem.


  • 1 - Yes it is set. This is the last entry in the parameters for the account. Moreover, I see the colors on all events downloaded from the server.
    2 - Well, what are all those dates starting from 1891, all the RDATE for a single appointment without recurring nor note ? It's huge compared to the copied event from Outlook and I don't see the COLOR field neither.
    3 - debug info : https://paste.fedoraproject.org/paste/vGCUxlIJSPm-95YdRpARjQ# (address of the server is private as I connect through a VPN to it)
    log file is big (13MB), so it's zipped and uploaded here : http://dl.free.fr/k84DcB7yH

    It's the upload of one event created in Informant. No COLOR tag on the server.


  • developer

    @Mister_Slowhand

    1. This is not related to COLOR and not "weird". It's the VTIMEZONE of the Olson DB, see https://github.com/ical4j/ical4j/blob/develop/src/main/resources/zoneinfo/Europe/Paris.ics

    Regarding the color: this is strange, because it works here (I just added some color to an event here). Which calendar app did you use? DAVdroid had seen the event as Event=[alarms=[], attendees=[], color=null, description=null, dtEnd=DTEND;TZID=Europe/Paris:20170920T143000, dtStart=DTSTART;TZID=Europe/Paris:20170920T140000, duration=null, exDates=[], exRule=null, exceptions=[], forPublic=true, lastModified=null, location=null, opaque=true, organizer=null, rDates=[], rRule=null, recurrenceId=null, status=null, summary=Test davdroid, unknownProperties=[], sequence=0, uid=ee29858f-450a-4cf2-96ed-9cff5f0019ec, shadow$_klass_=class at.bitfire.ical4android.Event, shadow$_monitor_=0], i.e. without color.

    Have you tried to unselect the whole calendar in DAVdroid, sync, then select it again, sync again, then change the color and sync again? Maybe there are some migration artifacts?



  • I use the WebIs Informant calendar app. It can display and set a color, any color.
    The color I chose is displayed in other calendards (Pure Grid Widget, Agenda wear...).

    The server side ressource has been created this morning and populated with Outlook calendar. Device side, I added the sync to this "events" ressource right after. Downloaded all and got correct colours.
    I tried what you said and still no color on the server.
    Once the new event is synced, if I change the color (on outlook), the Android calendar gets the new color. Works one way.



  • I installed Digical to test.
    It sees the right color when opening the calendar. But if I set the color to another, Informant sees the new color and the server gets the COLOR value set ?!
    So there's something in the calendar base that sets the color right, that Informant uses, but you don't see it ?


  • developer

    @mister_slowhand Do you have adb installed? You can check what's really set by the calendar with adb shell content query --uri content://com.android.calendar/events, see https://davdroid.bitfire.at/faq/entry/how-to-debug/

    Would be interesting how the event looks like when the color is set by WebIs Informant calendar app.



  • Yes, I do, I'll try, but having over 8000 events in my calendar, I'll need to add the where clause !

    Edit : much easier than I thought !
    Here is the event just after setting it in Informant :
    Row: 0 sync_data10=NULL, cal_sync6=NULL, rrule=NULL, sync_data6=NULL, cal_sync8=NULL, eventTimezone=Europe/Paris, hasAttendeeData=0, _sync_id=NULL, customAppPackage=NULL, originalInstanceTime=NULL, sync_data2=NULL, allowedReminders=1, uid2445=NULL, calendar_timezone=NULL, dirty=1, originalAllDay=NULL, cal_sync10=NULL, exrule=NULL, calendar_color=-7617718, cal_sync3=NULL, lastDate=1505921400000, canOrganizerRespond=1, guestsCanSeeGuests=1, rdate=NULL, account_type=bitfire.at.davdroid, eventEndTimezone=NULL, selfAttendeeStatus=0, cal_sync2=NULL, mutators=net.webis.pi3, exdate=NULL, hasExtendedProperties=0, eventColor_index=NULL, organizer=marc, calendar_color_index=NULL, sync_data9=NULL, cal_sync5=NULL, eventColor=-205, cal_sync4=NULL, availability=0, dtstart=1505919600000, ownerAccount=marc, lastSynced=0, duration=NULL, accessLevel=3, maxReminders=5, displayColor=-205, allDay=0, eventStatus=NULL, dtend=1505921400000, sync_data3=NULL, sync_data4=NULL, original_id=NULL, _id=23141, guestsCanModify=0, customAppUri=NULL, calendar_access_level=700, calendar_displayName=Events, sync_data5=NULL, guestsCanInviteOthers=1, sync_data8=NULL, cal_sync9=NULL, original_sync_id=NULL, cal_sync1="000d78db4538fd59b8481e7ac80e584e", cal_sync7=NULL, canModifyTimeZone=1, visible=1, allowedAttendeeTypes=2,1,3, sync_data1=NULL, allowedAvailability=2,1,0, description=NULL, title=Azerty, calendar_id=5, sync_data7=NULL, deleted=0, eventLocation=NULL, account_name=marc, hasAlarm=0, isOrganizer=1

    And now, right after changing it in Digical :
    Row: 0 sync_data10=NULL, cal_sync6=NULL, rrule=NULL, sync_data6=NULL, cal_sync8=NULL, eventTimezone=Europe/Paris, hasAttendeeData=0, _sync_id=NULL, customAppPackage=NULL, originalInstanceTime=NULL, sync_data2=NULL, allowedReminders=1, uid2445=NULL, calendar_timezone=NULL, dirty=1, originalAllDay=NULL, cal_sync10=NULL, exrule=NULL, calendar_color=-7617718, cal_sync3=NULL, lastDate=1505921400000, canOrganizerRespond=1, guestsCanSeeGuests=1, rdate=NULL, account_type=bitfire.at.davdroid, eventEndTimezone=Europe/Paris, selfAttendeeStatus=0, cal_sync2=NULL, mutators=com.digibites.calendar, exdate=NULL, hasExtendedProperties=0, eventColor_index=brown, organizer=marc, calendar_color_index=NULL, sync_data9=NULL, cal_sync5=NULL, eventColor=-5952982, cal_sync4=NULL, availability=0, dtstart=1505919600000, ownerAccount=marc, lastSynced=0, duration=NULL, accessLevel=3, maxReminders=5, displayColor=-5952982, allDay=0, eventStatus=0, dtend=1505921400000, sync_data3=NULL, sync_data4=NULL, original_id=NULL, _id=23141, guestsCanModify=0, customAppUri=NULL, calendar_access_level=700, calendar_displayName=Events, sync_data5=NULL, guestsCanInviteOthers=1, sync_data8=NULL, cal_sync9=NULL, original_sync_id=NULL, cal_sync1="000d78db4538fd59b8481e7ac80e584e", cal_sync7=NULL, canModifyTimeZone=1, visible=1, allowedAttendeeTypes=2,1,3, sync_data1=NULL, allowedAvailability=2,1,0, description=, title=Azerty, calendar_id=5, sync_data7=NULL, deleted=0, eventLocation=, account_name=marc, hasAlarm=0, isOrganizer=1



  • Does it make any sense to you ? I can only see 3 fileds changing, only one seems to be mandatory for event color ?

    I have another question. Made some changes to the Davical server so that on events, COLOR and CATEGORIES tags are updated on insert/update (Android doesn't handle CATEGORIES, Thunderbird doesn't sync COLOR...). As a side effect, I now also have both CATEGORIES and COLOR set for VTODO. But OpenTask doesn't seem to see that. Is it because of the application, because the storage doesn't have a color field or because you don't handle that for tasks ?


  • developer

    @mister_slowhand said in COLORS : weird upload on davical:

    eventColor_index=brown

    Looks correct. I will test with Informant as soon as I find some time.

    I have another question. Made some changes to the Davical server so that on events, COLOR and CATEGORIES tags are updated on insert/update (Android doesn't handle CATEGORIES, Thunderbird doesn't sync COLOR...). As a side effect, I now also have both CATEGORIES and COLOR set for VTODO. But OpenTask doesn't seem to see that. Is it because of the application, because the storage doesn't have a color field or because you don't handle that for tasks ?

    I'm not sure that I understand what you mean. Please create a separate thread if this is not related to COLOR.



  • @rfc2822 said in COLORS : weird upload on davical:

    @mister_slowhand said in COLORS : weird upload on davical:

    eventColor_index=brown

    Looks correct. I will test with Informant as soon as I find some time.

    The eventColor_index value is set after modify by Digical. Informant sets only eventColor and displayColor, the former looks like the only needed to set a specific color for the event.

    I'm not sure that I understand what you mean. Please create a separate thread if this is not related to COLOR.

    It's COLOR, but for VTODO, not only VEVENT. Do you handle this while syncing tasks (VTODO) or is it only for calendar (VEVENT) ?


  • developer

    @mister_slowhand said in COLORS : weird upload on davical:

    The eventColor_index value is set after modify by Digical. Informant sets only eventColor and displayColor, the former looks like the only needed to set a specific color for the event.

    CalDAV only supports indexed colors. According to https://developer.android.com/reference/android/provider/CalendarContract.EventsColumns.html#EVENT_COLOR, EVENT_COLOR should only by updated by sync adapters and not regular apps like Informant. Instead, EVENT_COLOR_KEY should be used, which then causes EVENT_COLOR to be updated automatically and DAVdroid to recognize the color.

    Can you please report that to Informant support and provide some kind of reference here?

    It's COLOR, but for VTODO, not only VEVENT. Do you handle this while syncing tasks (VTODO) or is it only for calendar (VEVENT) ?

    As far as I know, OpenTasks does not support per-task colors.


Log in to reply
 

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