No description
Find a file
Markus Unterwaditzer add9f640b4 CalDAV: Explicitly exclude items
Excluding items without mimetype "text/calendar" becomes necessary when
listing items, because iCloud would re-send us the URL we issued the
REPORT request on, a collection, with a mimetype of
"httpd/unix-directory".

    debug: REPORT https://p28-caldav.icloud.com/8010146223/calendars/home/
    debug: {'Depth': 'infinity', 'Content-Type': 'application/xml; charset=UTF-8', 'User-Agent': 'vdirsyncer '}
    debug: <?xml version="1.0" encoding="utf-8" ?>
    debug:             <C:calendar-query xmlns:D="DAV:"
    debug:                 xmlns:C="urn:ietf:params:xml:ns:caldav">
    debug:                 <D:prop>
    debug:                     <D:getetag/>
    debug:                 </D:prop>
    debug:                 <C:filter>
    debug:
    debug:                 <C:comp-filter name="VCALENDAR">
    debug:                     <C:comp-filter name="VTODO">
    debug:
    debug:                     </C:comp-filter>
    debug:                 </C:comp-filter>
    debug:
    debug:                 </C:filter>
    debug:             </C:calendar-query>
    debug: Sending request...
    debug: 207
    debug: {'content-encoding': 'gzip', 'transfer-encoding': 'chunked', 'server': 'iCloudCalendarServer 14F4 1', 'last-modified': 'Tue, 02 Sep 2014 13:59:11 GMT', 'dav': '1, access-control, calendar-access, calend ar-schedule, calendar-auto-schedule, calendar-managed-attachments, calendarserver-sharing, calendarserve r-subscribed, calendarserver-home-sync', 'x-transaction-id': '7f311996-32b4-11e4-a6db-78e3b5058dc0', 'da te': 'Tue, 02 Sep 2014 15:19:13 GMT', 'x-responding-server': 'mr21p28ic-hpaf05163701 18 a63660a6f7d1a25b 5a7ed66dab0da843', 'content-type': 'text/xml'}
    debug: <?xml version='1.0' encoding='UTF-8'?><multistatus xmlns='DAV:'>
    debug:
    debug:   <response>
    debug:     <href>/8010146223/calendars/home/</href>
    debug:     <propstat>
    debug:       <prop>
    debug:          <getetag>"FT=-@RU=301785db-0889-442c-ab5d-03144258969a@S=30"</getetag>
    debug:         <getcontenttype>httpd/unix-directory</getcontenttype>
    debug:       </prop>
    debug:       <status>HTTP/1.1 200 OK</status>
    debug:     </propstat>
    debug:   </response>
    debug:
    debug:   <response>
    debug:     <href>/8010146223/calendars/home/412580F4-7A0A-480D-BA99-73260B921E5D.ics</href>
    debug:     <propstat>
    debug:       <prop>
    debug:         <getetag>"C=30@U=301785db-0889-442c-ab5d-03144258969a"</getetag>
    debug:         <getcontenttype>text/calendar</getcontenttype>
    ...
2014-09-02 17:25:09 +02:00
docs Fix link again 2014-08-27 17:46:04 +02:00
tests Merge pull request #106 from untitaker/tls_fingerprints 2014-08-30 18:59:26 +02:00
vdirsyncer CalDAV: Explicitly exclude items 2014-09-02 17:25:09 +02:00
.gitignore Add some docs 2014-05-18 22:25:42 +02:00
.travis.yml Make CI scripts more readable. 2014-08-19 22:56:40 +02:00
AUTHORS.rst Revert "Revert "Tls fingerprints"" 2014-08-20 18:43:34 +02:00
build.sh we need the git version of werkzeug for ssl support on py3 2014-08-29 17:24:27 +00:00
CHANGELOG.rst Version 0.2.5 2014-08-27 14:06:55 +02:00
CONTRIBUTING.rst Revert "Revert "Tls fingerprints"" 2014-08-20 18:43:34 +02:00
example.cfg More doc updates 2014-05-21 18:43:52 +02:00
LICENSE Copyright and contributor stuff 2014-05-22 12:50:43 +02:00
MANIFEST.in Include metadata and doc files in distribution 2014-08-18 12:35:32 +02:00
README.rst README: build.sh command names changed 2014-09-01 17:43:27 +02:00
setup.cfg Move testserver-specific code into different repos 2014-04-12 16:23:32 +02:00
setup.py Require click>=3.1 2014-08-21 17:38:52 +02:00

==========
vdirsyncer
==========

vdirsyncer synchronizes your calendars and addressbooks between two storages.
The supported storages are CalDAV, CardDAV, arbitrary HTTP resources and `some
more <https://vdirsyncer.readthedocs.org/en/latest/api.html#storages>`_.

It aims to be for CalDAV and CardDAV what `OfflineIMAP
<http://offlineimap.org/>`_ is for IMAP.

.. image:: https://travis-ci.org/untitaker/vdirsyncer.png?branch=master
    :target: https://travis-ci.org/untitaker/vdirsyncer

.. image:: https://coveralls.io/repos/untitaker/vdirsyncer/badge.png?branch=master
    :target: https://coveralls.io/r/untitaker/vdirsyncer?branch=master

How to use
==========

vdirsyncer requires Python >= 2.7 or Python >= 3.3.

As all Python packages, vdirsyncer can be installed with ``pip``::

    pip install --user vdirsyncer

Then copy ``example.cfg`` to ``~/.vdirsyncer/config`` and edit it.

Run ``vdirsyncer --help`` and check out `the documentation
<https://vdirsyncer.readthedocs.org/>`_.

How to run the tests
====================

::

    sh build.sh install_tests
    sh build.sh tests