Skip to main content

caldav-server-tester

A command-line tool that probes a CalDAV server and reports which features and RFC requirements it supports, which ones it handles quirky, and which ones it gets wrong.

It is a companion to the CalDAV Python client library and produces output that is compatible with that library's compatibility_hints.py feature-flag system. See https://caldav.readthedocs.io/latest/configfile.html#testing-server-compatibility on how to use it for configuring your server compatibility in a formt that the libary can read.

What it checks

The full list is currently maintained in the CalDAV library, https://github.com/python-caldav/caldav/blob/master/caldav/compatibility_hints.py - the checks includes:

  • Calendar creation and deletion (MKCALENDAR)
  • Saving and loading events, tasks, and journals
  • Time-range, text, alarm, and recurrence searches (RFC 4791)
  • Case sensitivity and substring matching in text searches
  • Sync-collection reports (RFC 6578), including paging with DAV:limit
  • Free-busy queries
  • Principal discovery (RFC 5397)
  • A WWW-Authenticate header on a 401, naming a usable scheme (RFC 7235)
  • Scheduling identity: whether calendar-user-address-set holds an address (RFC 6638)
  • Duplicate UID handling across calendars
  • Timezone support in events

For full usage information, including all CLI options and output formats, see USAGE.md.

Installation

make install

(This auto-detects uv, pipx, or pip and does the right thing. Hopefully.)

Quick example

caldav-server-tester --caldav-url https://example.com/dav \
                     --caldav-username alice \
                     --caldav-password secret

See USAGE.md for details on output formats (--format json/yaml/hints), the --diff flag, running individual checks, and safety considerations.

Roadmap

docs/ROADMAP.md describes what the tool covers today, what is funded for the next period, and what is wanted but not funded.

Background

The caldav client library accumulated a large set of compatibility flags to work around differences between CalDAV server implementations. Every server deviates from the RFC in at least some way — some silently ignore unsupported features, some return errors, some return wrong data.

This tool was created to make it easy to discover and document those deviations without having to run the full caldav test suite and interpret failures manually. It can also alert you when a previously flagged problem has been fixed in a newer server version.

Vocabulary

The project is called caldav-server-tester, but internally the word test is reserved for code under the tests/ directory. Code that probes server capability is called a check.

License

AGPL-3.0-or-later

Metadata

Release files for caldav-server-tester 1.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for caldav-server-tester 1.6.0
File Size Uploaded Provenance
caldav_server_tester-1.6.0.tar.gz 281.7 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for caldav-server-tester 1.6.0
File Interpreter ABI Platform
caldav_server_tester-1.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 407.0 kB

Release files / caldav_server_tester-1.6.0.tar.gz

Download URL caldav_server_tester-1.6.0.tar.gz
Size 281.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5178cc6862ce0b26e20995c19d717ef3140b045d99e86eb9fd1843faec813e3b
BLAKE2b-256 checksum
How to use checksums
c1854fe58a1ac7741695a4cfe7049ce335a43c0c9ef7511cc048f67162b76004
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / caldav_server_tester-1.6.0-py3-none-any.whl

Download URL caldav_server_tester-1.6.0-py3-none-any.whl
Size 125.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0de7285f61cc0d944163c11a7b99e99f34bd56ac0472136a701cf30551507f45
BLAKE2b-256 checksum
How to use checksums
9c6be6715ff1a0284f37f0cd3a57ca636ef86372605eef11e3281fe8d030c7ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for caldav-server-tester 1.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for caldav_server_tester-1.6.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page