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.5.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.5.0
File Size Uploaded Provenance
caldav_server_tester-1.5.0.tar.gz 273.7 kB With provenance Details

Built distribution (wheel)

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

Total release size: 396.9 kB

Release files / caldav_server_tester-1.5.0.tar.gz

Download URL caldav_server_tester-1.5.0.tar.gz
Size 273.7 kB
Tags Source
SHA-256 checksum
How to use checksums
db37063bb0c2000ab7d2766d4e83b8aa18d0470f2378baabaf5636161e8fa638
BLAKE2b-256 checksum
How to use checksums
ce61e7ffab9be4eabe8970ce27cc837c9f2fee82d890c995ec1dcc63ea03028e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 17, 2026.

Transparency log

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

Download URL caldav_server_tester-1.5.0-py3-none-any.whl
Size 123.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cb639c8705791504fdfa7c2c17f306880209b0820ba3330a712da01e0c779506
BLAKE2b-256 checksum
How to use checksums
73bca3f45d7fe2c8356d938bb2ce4905276e1beee0c91d18044194bbba974a1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 17, 2026.

Transparency log

Security for caldav-server-tester 1.5.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.5.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 17, 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