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.7.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.7.0
File Size Uploaded Provenance
caldav_server_tester-1.7.0.tar.gz 285.9 kB With provenance Details

Built distribution (wheel)

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

Total release size: 412.2 kB

Release files / caldav_server_tester-1.7.0.tar.gz

Download URL caldav_server_tester-1.7.0.tar.gz
Size 285.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cb84a4686d48af5c63a7d223a7549ff5e209e6ca123f907c84ee69dfb63c07dc
BLAKE2b-256 checksum
How to use checksums
1593a001795f5ef306b3f9a640049a3afbfbe62d95bb356f7bbfcf8c9335f866
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 23, 2026.

Transparency log

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

Download URL caldav_server_tester-1.7.0-py3-none-any.whl
Size 126.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0f9027e5633402ce82b0e20d7b068ba850f252244e5b9f96a6bffcd6c293838
BLAKE2b-256 checksum
How to use checksums
3fa87fe7c5a03da64ba18867102a026ad22847063af7728b763d3ed162fc5e04
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 23, 2026.

Transparency log

Security for caldav-server-tester 1.7.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.7.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 23, 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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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