Synchronization with CardDAV/CalDAV

I modified an existing synchronization tool to synchronize a CalDAV/CardDAV server to a remoteStorage server: https://github.com/untitaker/vdirsyncer/pull/265

I still have to document the usage properly, but I’ve posted a simple config example there to get you started.

CalDAV, for some reason, also supports storing tasks into a calendar (besides events). After you sync those to your remoteStorage server, you can view then with e.g. this task app. It’s rather slow, so it will inevitably hang up your browser for more than 1000 tasks/events. I still have to publish the sourcecode for it and also find a better name.

1 Like

Sourcecode: https://github.com/untitaker/taskrs

Cool stuff! Does this imply that you wrote a remoteStorage client in python? You should publish that part stand-alone! We haven’t had a working python client for a long time.

So taskrs says in the readme that it will eventually be able to sync with CardDAV servers directly? So these servers would need to have CORS headers on their CardDAV API, right?

Great developments, both! Nice to see people working on the combination of remoteStorage and CardDAV/CalDAV, we need more of that stuff. :slight_smile:

Maybe sometime in the future, first I’d like to see how it works out for vdirsyncer. For now you’d have to write desktop apps in JS.

I was rather thinking about polishing up vdirsyncer for that usage but I know that this solution is not very end user friendly. Perhaps I should just remove that remark.

Some updates on this:

  • I’m looking into forking DavDroid and exchange the WebDAV parts with a remoteStorage client that uses the same data layout. However, I’m not very familiar with Java, so progress is going slow (and I might have to start over). I’d really apprechiate if there’s somebody who could help with this. The relevant parts are in at.bitfire.davdroid.webdav and at.bitfire.davdroid.resource.
  • There’s also the option of writing a DAV server that proxies a remoteStorage server. This isn’t really user friendly but much more reusable. It’s also much easier to write for me.
  • Finally, Taskrs (and I believe many remotestorage.js-apps that need to deal with nontrivial amounts of data) has some performance problems that can only be mitigated by some sort of index or cache. This is blocked by https://github.com/remotestorage/remotestorage.js/issues/721.