Project

General

Profile

action #46121

CalDAV to CalDAV synchronization (Server to Server)

Added by flacco over 1 year ago. Updated 10 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
2019-01-14
Due date:
% Done:

30%

Estimated time:
Duration:

Description

We should evaluate if it is possible to integrate a CalDAV to CalDAV synchronization tool into the invis-Server.

Background: With Kopano or other groupware systems we have a CalDAV Server inside invis-Server. A lot of our (FSP) customers use additional business-software systems which also ships calendar and scheduling components inside. Some of them are CalDAV servers.

For our customers it's difficult to decide which system they should use. Having the possibility to synchronize these systems could be a cool and extremely useful feature.

History

#1 Updated by flacco over 1 year ago

  • Status changed from New to In Progress

vdirsyncer is a possible software to do the job: https://github.com/pimutils/vdirsyncer

#2 Updated by flacco over 1 year ago

  • % Done changed from 0 to 10

#3 Updated by flacco over 1 year ago

  • Target version changed from Future to 14.1

#4 Updated by flacco over 1 year ago

leap 15 contains the packages python3-vdirsyncer and python2-vdirsyncer. We should test with the p3 version.

#5 Updated by flacco over 1 year ago

  • Status changed from In Progress to Feedback

vdirsyncer needs one config-file per sync job.

Its possible to sync CalDAV to CalDAV, CardDAV to CardDAV, CalDAV to ics-Files and CardDAV to vcf-Files.

Should we place the config files at a central place or inside the users home-dirs?

#6 Updated by ingogoeppert over 1 year ago

What is in the config-files? If a user needs to store his password there, I think it should be in his home.

#7 Updated by flacco over 1 year ago

ACK. Good argument.

Yes the passwords will be stored inside the config files:

https://vdirsyncer.pimutils.org/en/stable/tutorial.html#configuration

#8 Updated by flacco over 1 year ago

  • % Done changed from 10 to 20

First Testresults:

Synchronization from owncloud to kopano: works
Synchronization from kopano to owncloud: fails

owncloud answers with: "415 Client Error: Unsupported Media Type for url"

The reason could be that the exported ics-files from kopano contains DOS-linebreaks. :(

#9 Updated by flacco over 1 year ago

I created a vdirsyncer bugreport at github:

https://github.com/pimutils/vdirsyncer/issues/784

#10 Updated by flacco over 1 year ago

  • Status changed from Feedback to In Progress

#11 Updated by flacco about 1 year ago

  • Assignee set to ingogoeppert

Help needed!!

I've tried to build python-vdirsyncer in the new testing repo "spins:invis:15:testing:python" as a branch from "devel:languages:python:python-vdirsyncer". For dependency-reasons I had to build some other python packages there. Building packages which have a "%check" Section with the "%pytest" macro inside fails always for leap 15.0. No problems with building for tumbleweed.

To build the packages, I've disabled the "%check" section inside the spec-files. Not a goog way to solve this problems.

#12 Updated by ingogoeppert about 1 year ago

  • Assignee changed from ingogoeppert to flacco

The problem is: The %pytest macro is undefined in the old python-rpm-macros-package used in leap.

Now you can:

  • Do not run tests or
  • Run the test command directly without the macro
  • Use the latest python-rpm-macros which includes the macro

#13 Updated by flacco about 1 year ago

OK, after new "fails" with the latest python-rpm-macros, I took option 1.

#14 Updated by flacco about 1 year ago

  • % Done changed from 20 to 30

Kopano-ical in Version 8.7.1 blocks every login with error 401, so I decided to install the new SabreDAV based Kopano-CalDAV implementation Kdav. Login works well, but synchronization fails again:

Synchronization from owncloud to kopano: works
Synchronization from kopano to owncloud: fails

Error: "A calendar object on a CalDAV server MUST NOT have a METHOD property". This problem is discussed here: https://github.com/pimutils/vdirsyncer/issues/502

This is a little bit strange because, both CalDAV implementations (ownCloud and Kopano) are now based on SabreDAV. That could mean, that one of them breaks the CalDAV Standard. It seems that Kopano is the bad guy. They put the Method-Property in their ics-Exports and the use DOS-Linebreaks.

RFC 4791 "Calendaring Extensions to WebDAV (CalDAV)" says:
"Calendar object resources contained in calendar collections MUST NOT
specify the iCalendar METHOD property."

"MUST NOT" in German is: "DARF NICHT"

#15 Updated by flacco about 1 year ago

Oops, I found another possible Reason for this:

"You might be running ownCloud behind a reverse proxy; in that case you should ensure that your proxy is configured to pass WebDAV queries. See this forum thread for the case of the Pound reverse proxy: https://forum.owncloud.org/viewtopic.php?t=4949 223"

I've to check this, because the ownCloud server I used for my tests is running behind a reverse-proxy.

#16 Updated by flacco about 1 year ago

OK a local synchronization between ownCloud and Kopano on an invis-Server fails with Error: "A calendar object on a CalDAV server MUST NOT have a METHOD property" too. And again the direction Kopano to ownCloud fails.

#17 Updated by flacco about 1 year ago

The problem seems much more complicated:

https://sourceforge.net/p/davmail/bugs/628/

Perhaps it's located more on the ownCloud-side...

#18 Updated by flacco 10 months ago

  • Target version changed from 14.1 to Future

Also available in: Atom PDF