[GH-ISSUE #120] Kolab CalDAV URLs do not end in / but OutlookCALDavSynchronizer forces ending in / leading to error on setup #582

Closed
opened 2026-03-01 17:40:05 +03:00 by kerem · 9 comments
Owner

Originally created by @Stormwind99 on GitHub (Mar 8, 2016).
Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/120

Kolab CalDAV URLs don't end in a slash and look like http://collab.descendentstudios.com/iRony/calendars/jason.spangler%40descendentstudios.com/522c535a-4477-4385-977c-56f88d88957c

When a user tries to enter a Kolab CalDAV URL like the above in the OutlookCALDavSynchronizer Synchronization Profile creation gives an error "The CalDav/CardDav URL has to end in a slash ('/')"

Originally created by @Stormwind99 on GitHub (Mar 8, 2016). Original GitHub issue: https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/120 Kolab CalDAV URLs don't end in a slash and look like http://collab.descendentstudios.com/iRony/calendars/jason.spangler%40descendentstudios.com/522c535a-4477-4385-977c-56f88d88957c When a user tries to enter a Kolab CalDAV URL like the above in the OutlookCALDavSynchronizer Synchronization Profile creation gives an error "The CalDav/CardDav URL has to end in a slash ('/')"
kerem closed this issue 2026-03-01 17:40:05 +03:00
Author
Owner

@aluxnimm commented on GitHub (Mar 8, 2016):

Then just add a slash, should work then.

<!-- gh-comment-id:194025504 --> @aluxnimm commented on GitHub (Mar 8, 2016): Then just add a slash, should work then.
Author
Owner

@evert commented on GitHub (Mar 8, 2016):

Kolab's CalDAV is based on sabre/dav and they do end in a slash. If you're seeing a url somewhere without a slash then I would guess that that's maybe a documentation bug.

<!-- gh-comment-id:194025922 --> @evert commented on GitHub (Mar 8, 2016): Kolab's CalDAV is based on sabre/dav and they _do_ end in a slash. If you're seeing a url somewhere without a slash then I would guess that that's maybe a documentation bug.
Author
Owner

@Stormwind99 commented on GitHub (Mar 8, 2016):

Adding a slash to the end does not fix it - just get an error when first trying to sync.

To get the URL, in Kolab I went to Calendar, highlighted the calendar, clicked the Gear icon, and chose "Show Calendar URL". Then copy and pasted the second URL (the CalDAV one). Is there a different way you used in testing? Here is a screenshot.

image

<!-- gh-comment-id:194027849 --> @Stormwind99 commented on GitHub (Mar 8, 2016): Adding a slash to the end does not fix it - just get an error when first trying to sync. To get the URL, in Kolab I went to Calendar, highlighted the calendar, clicked the Gear icon, and chose "Show Calendar URL". Then copy and pasted the second URL (the CalDAV one). Is there a different way you used in testing? Here is a screenshot. ![image](https://cloud.githubusercontent.com/assets/9441438/13620483/b6f1b354-e555-11e5-9582-409b46b1a68c.png)
Author
Owner

@Stormwind99 commented on GitHub (Mar 8, 2016):

Here is the error I'm getting when trying the sync with different URLs:

http://pastebin.com/0K5sEzVM

<!-- gh-comment-id:194029015 --> @Stormwind99 commented on GitHub (Mar 8, 2016): Here is the error I'm getting when trying the sync with different URLs: http://pastebin.com/0K5sEzVM
Author
Owner

@evert commented on GitHub (Mar 9, 2016):

Kolab is showing the url without the slash, but the underlying server does have the slash. The error you got is unrelated.

<!-- gh-comment-id:194067241 --> @evert commented on GitHub (Mar 9, 2016): Kolab is _showing_ the url without the slash, but the underlying server does have the slash. The error you got is unrelated.
Author
Owner

@aluxnimm commented on GitHub (Mar 9, 2016):

the error means that the event
/iRony/calendars/test1.descendent%40descendentstudios.com/522c535a-4477-4385-977c-56f88d88957c/7A4F374A2614E7B21E0FB941C5CD3F93-1F14599850124EDF.ics

is a recurrence exception without the master event and we can't map those. the ics file should also contain the master event with the recurrence rule.

<!-- gh-comment-id:194128206 --> @aluxnimm commented on GitHub (Mar 9, 2016): the error means that the event /iRony/calendars/test1.descendent%40descendentstudios.com/522c535a-4477-4385-977c-56f88d88957c/7A4F374A2614E7B21E0FB941C5CD3F93-1F14599850124EDF.ics is a recurrence exception without the master event and we can't map those. the ics file should also contain the master event with the recurrence rule.
Author
Owner

@aluxnimm commented on GitHub (Mar 9, 2016):

According to the rfc:
Calendar components with the same UID property value, in a given
calendar collection, MUST be contained in the same calendar object
resource. This ensures that all components in a recurrence "set" are
contained in the same calendar object resource. It is possible for a
calendar object resource to just contain components that represent
"overridden" instances (ones that modify the behavior of a regular
instance, and thus include a RECURRENCE-ID property) without also
including the "master" recurring component (the one that defines the
recurrence "set" and does not contain any RECURRENCE-ID property).

@Evert How should resources with only a recurrence exception and without the master event with the recurrence rule be handled?

<!-- gh-comment-id:194166023 --> @aluxnimm commented on GitHub (Mar 9, 2016): According to the rfc: Calendar components with the same UID property value, in a given calendar collection, MUST be contained in the same calendar object resource. This ensures that all components in a recurrence "set" are contained in the same calendar object resource. It is possible for a calendar object resource to just contain components that represent "overridden" instances (ones that modify the behavior of a regular instance, and thus include a RECURRENCE-ID property) without also including the "master" recurring component (the one that defines the recurrence "set" and does not contain any RECURRENCE-ID property). @Evert How should resources with only a recurrence exception and without the master event with the recurrence rule be handled?
Author
Owner

@evert commented on GitHub (Mar 11, 2016):

@aluxnimm , you basically just put the exceptions in the calendar. This is not an uncommon situation. If I create recurring event, and only invite you to one instance, you would actually get an event without a master in your inbox, so it would be good to handle this situation.

<!-- gh-comment-id:195116001 --> @evert commented on GitHub (Mar 11, 2016): @aluxnimm , you basically just put the exceptions in the calendar. This is not an uncommon situation. If I create recurring event, and only invite you to one instance, you would actually get an event without a master in your inbox, so it would be good to handle this situation.
Author
Owner

@aluxnimm commented on GitHub (Mar 13, 2016):

Improved mapping and we try to reconstruct the master event to be able to sync such recurrence exceptions without master events to Outlook in release 1.23.0.

<!-- gh-comment-id:196046165 --> @aluxnimm commented on GitHub (Mar 13, 2016): Improved mapping and we try to reconstruct the master event to be able to sync such recurrence exceptions without master events to Outlook in release 1.23.0.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/outlookcaldavsynchronizer#582
No description provided.