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)
  • 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.4.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.4.0
File Size Uploaded
caldav_server_tester-1.4.0.tar.gz 251.6 kB Details

Built distribution (wheel)

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

Total release size: 368.4 kB

Release files / caldav_server_tester-1.4.0.tar.gz

Download URL caldav_server_tester-1.4.0.tar.gz
Size 251.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3b0d6623e6165978ea9b76ccdf33ddb1a3ca162c5d403d73121e61110e0439d9
BLAKE2b-256 checksum
How to use checksums
cbf100e0051e9c4b49fb1acb6c53bff99a4e360a59b915ab9c3b50edcb47b8d4
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 8, 2026.

Transparency log

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

Download URL caldav_server_tester-1.4.0-py3-none-any.whl
Size 116.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbcca9b10977ceec63996d49767581f8c25734af5a0f02ea1c95b3bb7c6b8b92
BLAKE2b-256 checksum
How to use checksums
7ca179f726c5d20c111b972eaab25f68bd7746f5b46f8987c3312544b362d313
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 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.2

2 release files

0.1.0

2 release files

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