Request for Feedback: New CalDAV and CardDAV implementation for Kopano

Hello community,

improved support for CalDAV and general support for CardDAV has been a feature that has been requested every once in a while, but that never had a high commercial priority for us. Following the evaluation of different DAV implementations we decided to implement this on the base of the SabreDAV project, since it provides the best compatibility with a wide array of clients.

Over the past weeks we have performed tests with some large inboxes and are now happy with the results and therefore want to ask our community for further feedback.

kDAV already works with all installation of Kopano Groupware Core from version 8.3 onwards, but for some recent fixes (special chars in vcards for example) need a more recent build (the upcoming 8.6.2 or a recent master).

Installation instructions can be found in the git repository of kDAV:

https://stash.kopano.io/projects/KC/repos/kdav/browse

Q & A

Q: Which version of Kopano do I need?
A: It’s recommended to install Kopano 8.6.2 (soon available from the pre-final repo) or a recent master

Q: Which version of PHP is needed?
A: We recommend to use PHP7, but currently it also still works with PHP 5.6

Q: Will there be deb & rpm packages?
A: Yes, once we have received enough feedback and kDAV is moving towards a final release we will also add packages.

Q: Which clients were tested against kDAV?
A: We have focused our testing on Apple OS X and the builtin Calendar, Contact and Reminders apps. But we have already received positive feedback about Thunderbird/Lightning and Evolution as well.

Q: How do I configure clients for kDAV?
A: From the Internet Account setting screen you have to choose Add Other Account... from where the options CalDAV Account and CardDAV Account become available. The option for the Advanced account type has to be chosen in both cases, since we want to specify the Server Address manually. For the Server Path a simple / can be given, as Apple Calendars will auto discover all the calendars of the given user automatically. If you ever want to link to a specific calendar from another client, the address kDAV is available from (in above example kdav.example.com) can also be opened in a webbrowser.

A picture is sometimes more worth than a thousand words:
Calendar & Reminder setup:
0_1525700254010_CalDAV1.PNG
1_1525700254010_CalDAV2.PNG
2_1525700254011_CalDAV3.PNG
3_1525700254011_CalDAV4.PNG

Contact setup:
0_1525700327110_CardDAV1.PNG
1_1525700327111_CardDAV2.PNG
2_1525700327111_CardDAV3.PNG

Q: That seems really hard to setup at clients. Isn’t there any easier way?
A: Yes, there is. You could setup kDAV for service discovery. Visit http://sabre.io/dav/service-discovery/ for more information.

Hello Felix,

one quick reply from me:

I have configured the new kDAV with two clients: TB and iCAL in macOS 10.13
An I have one Problem with the macOS iCal: I can add a calendar entry within iCal with no problem. It shows up in the WebApp and TB. But the iCal gets no updates.
I tried a new appointment with an invitation of a second person. The invitation is sent, but the approval of the invitation is not getting back to iCal. TB and WebApp show the approval. Also a manual refresh don’t update anything.

The same with deleting an appointment. If I delete an appointment within iCal, TB and WebApp get the update. But if I delete it within TB or WebApp, iCal won’t get the update and the appointment stays forever …

Second: how can I add a second calendar from a different user to the macOS iCal? I have tried it with differen serverpaths, but they won’t work (/calendars/<user> and /calendars/<user>/Kalender)

kDAV version: GIT pull from 2018.06.14
SabreDAV version: 3.2.2

Ulrich.

Hi @freyuh,

thanks for your feedback. I’ll be on holiday starting tomorrow, but quickly wanted to reply already.

@freyuh said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

I have configured the new kDAV with two clients: TB and iCAL in macOS 10.13
An I have one Problem with the macOS iCal

that is weird. Our tests focussed on osx and there this did not show up. but one thing that we noticed is that sometimes it takes quite a while for ical to do another sync against the server. I’d recommend to force a sync from the client, that should resolve your issue.

@freyuh said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

Second: how can I add a second calendar from a different user to the macOS iCal?

I have not recently tested this in ical, but the url for shared calendars is generally https://hostname/calendars/username/Calendar/ (if the calendar is actually named “Calendar”). I’d recommend to quickly browse the kdav interface from a web browser to identify the correct url (e.g. go to https://hostname/calendars/username/ and pick the right calendar from there).

Hello Felix,

I wish you a nice holiday …

I’d recommend to force a sync from the client, that should resolve your issue.

I did a manual refresh several times with cmd-R, but nothing changed. And I did see the query in the kdav-log on the server …

I’d recommend to quickly browse the kdav interface from a web browser …

I only get the following:

<d:error><s:sabredav-version>3.2.2</s:sabredav-version><s:exception>Sabre\DAV\Exception\NotImplemented</s:exception><s:message>There was no plugin in the system that was willing to handle this GET method. Enable the Browser plugin to get a better result here.</s:message></d:error>

Ulrich.

To begin with: I have a very experimental environment; so its rather a question to be sure not to chase ghosts than giving useful feedback.

Running kdav on centos with/over rh-php71-php-fpm and using eM-client on windows 10 all works well except creating or modifying a contact in eM client.

Q: does someone used/tested kdav with eM-client and successfully added or modified a contact?

Hello,

has someone installed the Addon CardBook für Thunderbird (https://addons.thunderbird.net/de/thunderbird/addon/cardbook/)?
Only a one-way sync is possible for me: I can get contacts from the server, but the edited contacts won’t get synced back to the server.

Ulrich.

@freyuh said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

has someone installed the Addon CardBook für Thunderbird

Yes, on Debian 9. Two way syncing worked for me except if a new contact is created in Thunderbird CardBook the “save as” is not synced to the server.

You describe the same behavior as i encountered with eM-client and therefor tested it with CardBook.
Did no in depth testing though

@freyuh are you on windows or linux? it can narrow the isseu down a bit…

Hello markvnl,

@freyuh are you on windows or linux? it can narrow the isseu down a bit…

I’m on macOS ;)

But didn’t see any error message in kdav.log or the error-console in Thunderbird.

Ulrich.

@freyuh said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

I’m on macOS ;)

Sorry forgot that option ;)

I see some strange things in the kdav.log during a creation of a new contact:

13.08.2018 13:38:17 [ 4641] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 404 Not Found
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Type: application/xml; charset=utf-8

<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:sabredav-version>3.2.2</s:sabredav-version>
  <s:exception>Sabre\DAV\Exception\NotFound</s:exception>
  <s:message>Card not found</s:message>
</d:error>

especially the http://sabredav.org/ns puzzles me, and there are more rerences to “sabre host names”

13.08.2018 13:38:17 [ 4643] [DEBUG] main KLogger->LogIncoming(): INPUT
REPORT /kdav/addressbooks/kopano_user/Contacts/ HTTP/1.1
Content-Length: 208
Host: my.kopanohost.lan
Depth: 1
Brief: t
Accept: text/xml
Content-Type: text/xml; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: eM Client/7.1.33101.0
Authorization: Basic REDACTED

<?xml version="1.0" encoding="utf-8"?>
<D:sync-collection xmlns:D="DAV:">
  <D:sync-token>http://sabre.io/ns/sync/5b7183316b518</D:sync-token>
  <D:prop>
    <D:getetag/>
    <D:getcontenttype/>
  </D:prop>
</D:sync-collection>

http://sabre.io/ns/sync/5b7183316b518 ???

and at the end the confirmation it did not work:

3.08.2018 13:38:17 [ 4643] [TRACE]  dav KopanoDavBackend->Sync(): Returning Array
(
    [syncToken] => 5b7183316b518
    [added] => Array
        (
        )

    [modified] => Array
        (
        )

    [deleted] => Array
        (
        )

)

13.08.2018 13:38:17 [ 4643] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 207 Multi-Status
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Type: application/xml; charset=utf-8

<?xml version="1.0"?>
<d:multistatus xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns" xmlns:card="urn:ietf:params:xml:ns:carddav" xmlns:cal="urn:ietf:params:xml:ns:caldav" xmlns:cs="http://calendarserver.org/ns/">
  <d:sync-token>http://sabre.io/ns/sync/5b7183316b518</d:sync-token>
</d:multistatus>

13.08.2018 13:38:17 [ 4643] [DEBUG] main httpcode='207' memory='3.72 MiB/2.00 MiB' time='0.21s'
13.08.2018 13:38:17 [ 4643] [DEBUG] main ------------------ End

did not cross check yet with the working debian setup…

I think my problem ist the following:

15.08.2018 18:00:55 [23963] [DEBUG] dav KopanoDavBackend->Sync(): Exporter found 0 changes, buffer size for mapi_exportchanges_synchronize 1000
15.08.2018 18:00:55 [23963] [DEBUG] dav KopanoDavBackend->Sync(): Exported 0 changes, pending 0

Ulrich.

Those hostnames I referenced have northing to do with it, they are just xml namespaces (it’s so embarrassing almost edited the post)

however here a cross check of the creation of a contact (Test User test.user@example.com )

eM client (windows)

17.08.2018 08:51:58 [ 2084] [DEBUG] main ------------------ Start
17.08.2018 08:51:58 [ 2084] [DEBUG] main PUT /kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf
17.08.2018 08:51:58 [ 2084] [DEBUG] main KDAV version GIT
17.08.2018 08:51:58 [ 2084] [DEBUG] main SabreDAV version 3.2.2
17.08.2018 08:51:58 [ 2084] [DEBUG] main KLogger->LogIncoming(): INPUT
PUT /kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf HTTP/1.1
Content-Length: 217
Host: my.kopanohost.lan
If-None-Match: *
Content-Type: text/vcard; charset=utf-8
Accept-Encoding: gzip, deflate
User-Agent: eM Client/7.1.33101.0
Authorization: Basic REDACTED

BEGIN:VCARD
VERSION:4.0
PRODID:-//MailClient.VObject/7.1.33101.0
UID:urn:uuid:49cb6acf-4237-42cb-88ef-ed67208acdcc
N;SORT-AS="User, Test":User;Test;;;
FN:Test User
EMAIL;PREF=1:test.user@example.com
END:VCARD

17.08.2018 08:51:58 [ 2084] [DEBUG]  dav KopanoDavBackend->Logon(): Auth: OK - user kopano_user - session Resource id #129
17.08.2018 08:51:58 [ 2084] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for 5d877935-c577-4337-9eb6-d0797142fd5d
17.08.2018 08:51:58 [ 2084] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:51:58 [ 2084] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for 5d877935-c577-4337-9eb6-d0797142fd5d
17.08.2018 08:51:58 [ 2084] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:51:58 [ 2084] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for 5d877935-c577-4337-9eb6-d0797142fd5d
17.08.2018 08:51:58 [ 2084] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:51:58 [ 2084] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 201 Created
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Length: 0


17.08.2018 08:51:58 [ 2084] [DEBUG] main httpcode='201' memory='3.75 MiB/2.00 MiB' time='0.24s'
17.08.2018 08:51:58 [ 2084] [DEBUG] main ------------------ End

TB linux

17.08.2018 08:55:07 [ 2081] [DEBUG] main ------------------ Start
17.08.2018 08:55:07 [ 2081] [DEBUG] main PUT /kdav/addressbooks/kopano_user/Contacts/e6822467-8d73-40eb-80d2-d15468a2b2e3.vcf
17.08.2018 08:55:07 [ 2081] [DEBUG] main KDAV version GIT
17.08.2018 08:55:07 [ 2081] [DEBUG] main SabreDAV version 3.2.2
17.08.2018 08:55:07 [ 2081] [DEBUG] main KLogger->LogIncoming(): INPUT
PUT /kdav/addressbooks/kopano_user/Contacts/e6822467-8d73-40eb-80d2-d15468a2b2e3.vcf HTTP/1.1
Connection: keep-alive
Content-Length: 226
If-None-Match: *
Content-Type: text/vcard; charset=utf-8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.5
Accept: */*
User-Agent: Thunderbird CardBook/30.5 Lightning/5.4.9.1
Host: my.kopanohost.lan
Authorization: Basic REDACTED

BEGIN:VCARD
VERSION:4.0
PRODID:-//Thunderbird.net/NONSGML Thunderbird CardBook V30.5//EN
UID:e6822467-8d73-40eb-80d2-d15468a2b2e3
FN:Test User
N:User;Test;;;
REV:20180817T105507Z
EMAIL:test.user@example.com
END:VCARD

17.08.2018 08:55:07 [ 2081] [DEBUG]  dav KopanoDavBackend->Logon(): Auth: OK - user kopano_user - session Resource id #129
17.08.2018 08:55:07 [ 2081] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for e6822467-8d73-40eb-80d2-d15468a2b2e3
17.08.2018 08:55:07 [ 2081] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:55:07 [ 2081] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for e6822467-8d73-40eb-80d2-d15468a2b2e3
17.08.2018 08:55:07 [ 2081] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:55:07 [ 2081] [DEBUG]  dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for e6822467-8d73-40eb-80d2-d15468a2b2e3
17.08.2018 08:55:07 [ 2081] [DEBUG] card KopanoCardDavBackend->getCard(): Object NOT FOUND
17.08.2018 08:55:07 [ 2081] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 201 Created
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Length: 0
ETag: "1534496107"

With eM client the UID of the VCard is parsed differently :

UID:urn:uuid:49cb6acf-4237-42cb-88ef-ed67208acdcc

results in:

dav KopanoDavBackend->GetMapiMessageForId(): Nothing found for 5d877935-c577-4337-9eb6-d0797142fd5d

Do not know if it’s client- or server-side the mismatch is made
(EDIT) log of eM Client:

10:50:53.364|013|   SynchronizeItemsCommand finished on ( /32ed1819-7849-4187-91e3-c0f6a2330f45/addressbooks/kopano_user/Contacts)
10:51:54.663|013|   C: PutCommand https://my.kopanohost.lan/kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf
10:51:54.663|013|   BEGIN:VCARD
10:51:54.663|013|   VERSION:4.0
10:51:54.663|013|   PRODID:-//MailClient.VObject/7.1.33101.0
10:51:54.663|013|   UID:urn:uuid:49cb6acf-4237-42cb-88ef-ed67208acdcc
10:51:54.663|013|   N;SORT-AS="User, Test":User;Test;;;
10:51:54.663|013|   FN:Test User
10:51:54.664|013|   EMAIL;PREF=1:test.user@example.com
10:51:54.664|013|   END:VCARD
10:51:54.664|013|
10:51:54.967|013|   S: PUT https://my.kopanohost.lan/kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf
10:51:54.967|013|   Created Created
10:51:54.972|013|   C: GetCommand https://my.kopanohost.lan/kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf
10:51:55.190|013|   S: GET https://my.kopanohost.lan/kdav/addressbooks/kopano_user/Contacts/5d877935-c577-4337-9eb6-d0797142fd5d.vcf
10:51:55.190|013|   NotFound Not Found
10:51:55.201|013|   Response, stream length:

Just to confirm Thunderbird CardBook card book works for me on windows to, with the same exception as on linux:

“File as” is not synced / populated.

Very strange.

I get a ‘created’ in the kdav.log:

17.08.2018 13:38:16 [31065] [TRACE] dav KopanoDavBackend->GetMapiFolder(): Id: principals/u.frey:0a26138985c745caa857320d0479f69f72000
0000000
17.08.2018 13:38:16 [31065] [TRACE] dav KopanoDavBackend->GetStore(): storename u.frey
17.08.2018 13:38:16 [31065] [TRACE] dav KopanoDavBackend->GetStore(): storename u.frey
17.08.2018 13:38:16 [31065] [TRACE] card KopanoCardDavBackend->setData(): mapimessage: Resource id #29 - vcf: BEGIN:VCARD
VERSION:4.0
PRODID:-//Thunderbird.net/NONSGML Thunderbird CardBook V30.5//EN
UID:798ad0b5-b844-f84c-9f2d-a90378acc04d
FN:Test User
N:User;Test;;;
GENDER:M
REV:20180817T133816Z
EMAIL;TYPE=HOME:test@user.com
END:VCARD

17.08.2018 13:38:16 [31065] [TRACE] dav KopanoDavBackend->GetStore(): storename u.frey
17.08.2018 13:38:16 [31065] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 201 Created
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Length: 0
ETag: “1534505896”

But I can’t see it inside of the DeskApp …

Ulrich.

same trace from TB windows

17.08.2018 16:00:25 [ 7448] [TRACE]  dav KopanoDavBackend->GetStore(): storename kopano_user
17.08.2018 16:00:25 [ 7448] [TRACE]  dav KopanoDavBackend->GetStore(): storename kopano_user
17.08.2018 16:00:25 [ 7448] [TRACE] card KopanoCardDavBackend->setData(): mapimessage: Resource id #24 - vcf: BEGIN:VCARD
VERSION:4.0
PRODID:-//Thunderbird.net/NONSGML Thunderbird CardBook V30.5//EN
UID:7f62d94d-4b65-411c-991b-a31455714d99
FN:test2 user
N:user;test2;;;
GENDER:M
REV:20180817T160021Z
EMAIL;TYPE=HOME:test2.user@example.com
END:VCARD

17.08.2018 16:00:25 [ 7448] [TRACE]  dav KopanoDavBackend->GetStore(): storename kopano_user
17.08.2018 16:00:25 [ 7448] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 201 Created
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Length: 0
ETag: "1534514425"

The only difference that catches my eyes is you have a ". " (dot) in your username. And i am not sure if that can cause problems, it is part of the URI (even part of the url to the dav collection).
just guessing here!

Will continue next week with deeper searching …

I have another error:

23.08.2018 14:40:42 [ 1474] [TRACE] dav KopanoDavBackend->GetIdOfMapiMessage(): Finding ID of Resource id #4575
23.08.2018 14:40:42 [ 1474] [DEBUG] dav KopanoDavBackend->GetIdOfMapiMessage(): Found PROP_APPTTSREF: fc13f44b-29cf-4beb-903b-011b24cdec1f
23.08.2018 14:40:42 [ 1474] [TRACE] cal KopanoCalDavBackend->getCalendarObject(): returned data id: fc13f44b-29cf-4beb-903b-011b24cdec1f - size: 1822 - etag: “1453797237”
23.08.2018 14:40:42 [ 1474] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 500 Internal Server Error
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Type: application/xml; charset=utf-8

<?xml version=“1.0” encoding=“utf-8”?>
<d:error xmlns:d=“DAV:” xmlns:s=“http://sabredav.org/ns”>
<s:sabredav-version>3.2.2</s:sabredav-version>
<s:exception>InvalidArgumentException</s:exception>
<s:message>The objectData argument must contain an ‘uri’ property</s:message>
</d:error>

23.08.2018 14:40:42 [ 1474] [DEBUG] main httpcode=‘500’ memory=‘6.47 MiB/8.00 MiB’ time=‘40.49s’
23.08.2018 14:40:42 [ 1474] [DEBUG] main ------------------ End

Ulrich.

Just a follow up on my findings with eM Client :)

Strange enough eM client offers fruux as a pre configured service, and this is actually the the company (original?) behind the sabre dav / main developer. Meaning you can expect em Client works oke Sabre (Card)dav.

Reading old and resolved issues @sabre dav it seems to boil down to specific behavior of em Client:

It “PUT”(s) a vCard and immediately after confirmation of creation tries to “GET” it, if this “GET” fails it removes the new contact (vCard).

...
13.08.2018 13:38:17 [ 4640] [DEBUG] main KLogger->LogIncoming(): INPUT
PUT /kdav/addressbooks/kopano_user/Contacts/ede4362c-9a8d-4e49-8f5f-27cc3c7296ca.vcf HTTP/1.1
...
13.08.2018 13:38:17 [ 4640] [TRACE] card KopanoCardDavBackend->getCard(): addressBookId: principals/kopano_user:d3b2f10bf8604f25be6070fe96590b342b0000000000 - cardUri: ede4362c-9a8d-4e49-8f5f-27cc3c7296ca.vcf
...
13.08.2018 13:38:17 [ 4640] [TRACE] card KopanoCardDavBackend->setData(): mapimessage: Resource id #172 - vcf: BEGIN:VCARD
VERSION:4.0
PRODID:-//MailClient.VObject/7.1.33101.0
UID:urn:uuid:081044be-a742-4f4b-a5ba-f6011679d9bb
N;SORT-AS="User, Test":User;Test;;;
FN:Test User
EMAIL;TYPE=WORK;PREF=1:test.user@example.com
END:VCARD

13.08.2018 13:38:17 [ 4640] [TRACE]  dav KopanoDavBackend->GetStore(): storename kopano_user
13.08.2018 13:38:17 [ 4640] [DEBUG] main KLogger->LogOutgoing(): OUTPUT:
HTTP/1.1 201 Created
X-KDAV-Version: GIT
X-Sabre-Version: 3.2.2
Content-Length: 0


13.08.2018 13:38:17 [ 4640] [DEBUG] main httpcode='201' memory='3.95 MiB/4.00 MiB' time='0.21s'
13.08.2018 13:38:17 [ 4640] [DEBUG] main ------------------ End



13.08.2018 13:38:17 [ 4641] [DEBUG] main ------------------ Start
13.08.2018 13:38:17 [ 4641] [DEBUG] main GET /kdav/addressbooks/kopano_user/Contacts/ede4362c-9a8d-4e49-8f5f-27cc3c7296ca.vcf
13.08.2018 13:38:17 [ 4641] [DEBUG] main KDAV version GIT
13.08.2018 13:38:17 [ 4641] [DEBUG] main SabreDAV version 3.2.2
13.08.2018 13:38:17 [ 4641] [TRACE]  dav KopanoSyncState->__construct(): Using db sqlite:/var/lib/kopano/kdav/syncstate.db
13.08.2018 13:38:17 [ 4641] [TRACE]  dav KopanoSyncState->__construct(): well db sqlite:/var/lib/kopano/kdav/syncstate.db
13.08.2018 13:38:17 [ 4641] [DEBUG] main KLogger->LogIncoming(): INPUT
GET /kdav/addressbooks/kopano_user/Contacts/ede4362c-9a8d-4e49-8f5f-27cc3c7296ca.vcf HTTP/1.1
Host: my.kopanohost.lan
Accept: text/calendar
Accept-Encoding: gzip, deflate
User-Agent: eM Client/7.1.33101.0
Authorization: Basic REDACTED
...

This GET fails, can not pin point it though (full log of event)

  • From a far past there where timing issues not able to serve a newly created vCards although this only seemed to happen with mass synchronization.
  • and the already mentioned differences in UID:urn:uuid ( 081044be-a742-4f4b-a5ba-f6011679d9bb) and cardUri: ede4362c-9a8d-4e49-8f5f-27cc3c7296ca.vcf. My knowledge of this technolgy comes to short to judge if this is a issue

Playing with it i really grown like kdav, what can we do to bring it closer to a test/alpha/… release?

@markvnl said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

Playing with it i really grown like kdav, what can we do to bring it closer to a test/alpha/… release?

for us the next step is to complete packaging for it (maybe that has already happened, just catching up on holiday emails). After that we have to check what needs to be adapted. One word of advice though, as stated above our focus client for this are the bultin MacOS clients and these are also the only clients that we are actively testing. PRs for other clients are welcome, though.

Thanx for the heads up

@fbartels said in Request for Feedback: New CalDAV and CardDAV implementation for Kopano:

One word of advice though, as stated above our focus client for this are the bultin MacOS clients and these are also the only clients that we are actively testing. PRs for other clients are welcome, though.

Understandable,
although I think the open-source community would appreciate if TB {lightning, cardbook} support can be improved in the future.

Thanks for the installation info (https://stash.kopano.io/projects/KC/repos/kdav/browse)!

Here are some suggestions for improvement:

  • Info: Installation of SQLite / PDO
  • Info: Installation of mod_rewrite
  • Info: Usage chusr/chmod on “main kDAV directory”
  • Info: Web Server has to listen on port 8123 “Listen 8123” (in the Virtual Host example)
  • “ln -s /usr/share/kopano/php/mapi /var/www/kdav”: mapi directory doesn’t exist on my server, main kDAV directory is selectable in the start of the installation guide
  • “In your CalDAV client, set the server URL to http://develop.local/calendars/<user>/Calendar/”: No port 8123 in the url
  • “The DAV_ROOT_URI parameter must match your webserver configuration”: relative path to the DocumentRoot!