
Supported Software
******************


Client applications
===================

The following software has been reported to work well with vdirsyncer,
however, none of it is regularly tested.


Calendars
---------

* khal, a CLI calendar application supporting vdir. You can use
  "filesystem" with it.

* Many graphical calendar apps such as dayplanner, Orage or
  rainlendar save a calendar in a single ".ics" file. You can use
  "singlefile" with those.


Task/Todo managers
------------------

The iCalendar format also supports saving tasks in form of
"VTODO"-entries, with the same file extension as normal events:
".ics". All CalDAV servers support synchronizing tasks, vdirsyncer
does too.

* todoman, a CLI task manager supporting vdir.  You can use
  "filesystem" with it.

  Its interface is similar to the ones of Taskwarrior or the todo.txt
  CLI app and should be intuitively usable.


Contacts
--------

* khard, a commandline addressbook supporting vdir.  You can use
  "filesystem" with it.

* contactquery.c, a small program explicitly written for querying
  vdirs from mutt.

* mates, a commandline addressbook supporting vdir.

* vdirel, access vdir contacts from Emacs.


Supported servers
=================

CalDAV and CardDAV servers not listed here may work anyway.


Radicale
--------

Radicale is a very lightweight server, however, it intentionally
doesn't implement the CalDAV and CardDAV standards completely, which
might lead to issues even with very well-written clients. Apart from
its non-conformity with standards, there are multiple other problems
with its code quality and the way it is maintained.

That said, vdirsyncer is continuously tested against the git version
and the latest PyPI release of Radicale.

* Vdirsyncer can't create collections on Radicale.

* Radicale doesn't support time ranges in the calendar-query of
  CalDAV, so setting "start_date" and "end_date" for "caldav" will
  have no or unpredicted consequences.

* Versions of Radicale older than 0.9b1 choke on RFC-conform queries
  for all items of a collection.

  You have to set "item_types = ["VTODO", "VEVENT"]" in "caldav" for
  vdirsyncer to work with those versions.


ownCloud
--------

Vdirsyncer is continuously tested against the latest version of
ownCloud:

   [storage cal]
   type = caldav
   url = https://example.com/owncloud/remote.php/caldav/
   username = ...
   password = ...

   [storage card]
   type = carddav
   url = https://example.com/owncloud/remote.php/carddav/
   username = ...
   password = ...

* *Versions older than 7.0.0:* ownCloud uses SabreDAV, which had
  problems detecting collisions and race-conditions. The problems were
  reported and are fixed in SabreDAV's repo, and the corresponding fix
  is also in ownCloud since 7.0.0. See issue #16 for more information.


FastMail
--------

Vdirsyncer is irregularly tested against FastMail. There are no known
issues with it. FastMail's support pages provide the settings to use:

   [storage cal]
   type = caldav
   url = https://caldav.messagingengine.com/
   username = ...
   password = ...

   [storage card]
   type = carddav
   url = https://carddav.messagingengine.com/
   username = ...
   password = ...


iCloud
------

Vdirsyncer is irregularly tested against iCloud.

   [storage cal]
   type = caldav
   url = https://caldav.icloud.com/
   username = ...
   password = ...

   [storage card]
   type = carddav
   url = https://contacts.icloud.com/
   username = ...
   password = ...

Problems:

* Vdirsyncer can't do two-factor auth with iCloud (there doesn't
  seem to be a way to do two-factor auth over the DAV APIs) You'll
  need to use app-specific passwords instead.

* Vdirsyncer can't create collections on iCloud.


DavMail (Exchange, Outlook)
---------------------------

Using vdirsyncer with DavMail is possible, but you might get
confronted with weird errors coming from old Exchange servers,
malformed calendar entries with special characters and/or using an old
DavMail version.

**Make absolutely sure you use the latest DavMail**:

   [storage outlook]
   type = caldav
   url = http://localhost:1080/
   username = user@example.com
   password = ...

* Older versions of DavMail handle URLs case-insensitively. See
  issue #144.

* DavMail is handling old broken events very poorly. In such cases
  the Calendar Checking Tool for Outlook might help.

If you encounter any problems, do report them to me, but it's probably
not vdirsyncer's fault.


Baikal
------

Vdirsyncer is continuously tested against the latest version of
Baikal.

* Baikal up to "0.2.7" also uses an old version of SabreDAV, with
  the same issue as ownCloud, see issue #160. This issue is fixed in
  later versions.


Google
------

Using vdirsyncer with Google Calendar is possible as of 0.10, but it
is not tested frequently. You can use "google_contacts" and
"google_calendar".

For more information see issue #202 and issue #8.
