CalDAV Server Checker - checking a CalDAV server for compatibility issues
Project description
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)
- 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.
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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file caldav_server_tester-1.1.0.tar.gz.
File metadata
- Download URL: caldav_server_tester-1.1.0.tar.gz
- Upload date:
- Size: 80.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04a3881080db24cbfb836d2e532095876672840d92d78c4f5ac4f63c0a50af91
|
|
| MD5 |
d3f0dfa9470f1698842a98aaa0e7648a
|
|
| BLAKE2b-256 |
1de785f4f5ad24813b08f0d0ac9098fd1ff728f485c191ef4c60be32b9277447
|
Provenance
The following attestation bundles were made for caldav_server_tester-1.1.0.tar.gz:
Publisher:
publish.yaml on python-caldav/caldav-server-tester
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
caldav_server_tester-1.1.0.tar.gz -
Subject digest:
04a3881080db24cbfb836d2e532095876672840d92d78c4f5ac4f63c0a50af91 - Sigstore transparency entry: 1372268200
- Sigstore integration time:
-
Permalink:
python-caldav/caldav-server-tester@cc9f0f70dc3995420e4db73fbf368aa212b86b1e -
Branch / Tag:
refs/tags/v3.2.0 - Owner: https://github.com/python-caldav
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@cc9f0f70dc3995420e4db73fbf368aa212b86b1e -
Trigger Event:
push
-
Statement type:
File details
Details for the file caldav_server_tester-1.1.0-py3-none-any.whl.
File metadata
- Download URL: caldav_server_tester-1.1.0-py3-none-any.whl
- Upload date:
- Size: 48.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00b526f92ab498038434da907bd2cd4a5bc127fa39a8225dc014e5f669c2b4fb
|
|
| MD5 |
062c6fafc29bbf2a03984f16252da06a
|
|
| BLAKE2b-256 |
182269bd017ffb9c86c9aa7d4b2cd7e0890d824d7f9e358a85f4e621527d7dcb
|
Provenance
The following attestation bundles were made for caldav_server_tester-1.1.0-py3-none-any.whl:
Publisher:
publish.yaml on python-caldav/caldav-server-tester
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
caldav_server_tester-1.1.0-py3-none-any.whl -
Subject digest:
00b526f92ab498038434da907bd2cd4a5bc127fa39a8225dc014e5f669c2b4fb - Sigstore transparency entry: 1372268560
- Sigstore integration time:
-
Permalink:
python-caldav/caldav-server-tester@cc9f0f70dc3995420e4db73fbf368aa212b86b1e -
Branch / Tag:
refs/tags/v3.2.0 - Owner: https://github.com/python-caldav
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@cc9f0f70dc3995420e4db73fbf368aa212b86b1e -
Trigger Event:
push
-
Statement type: