--- id: caldav version: "3.2.1" license: GPL-3.0-or-later OR Apache-2.0 license_treatment: unclear maintenance: active --- # caldav — CalDAV (RFC4791) client library License: unclear · Maintenance: active · Downloads: 911.4K/mo ## What it is and what it does Caldav is a Python client for the CalDAV protocol (RFC4791), allowing you to interact with calendar servers to create, modify, delete, and search calendar events. It wraps the complexity of CalDAV's WebDAV-based protocol and iCalendar format handling, exposing a straightforward object-oriented API. The library depends on icalendar for iCalendar parsing, lxml for XML handling, niquests for HTTP requests, and several supporting libraries for date handling and recurring event expansion. The package offers both synchronous and asynchronous interfaces—the main caldav module for blocking I/O and caldav.aio for async/await patterns. It's actively maintained, supports modern Python versions (3.10–3.14), and has been in development since 2010. The dual GPL-3.0-or-later / Apache-2.0 licensing is noted as unclear in the metadata, so license compatibility should be verified before use in proprietary projects. Use it for: - Sync calendar events between a Python application and a CalDAV server (e.g., Nextcloud, Radicale). - Build a calendar management tool that creates, updates, or deletes events on a remote CalDAV-compatible server. - Search and retrieve events within a date range from a CalDAV server for reporting or integration workflows. - Implement async calendar operations in a high-concurrency application using caldav.aio. - Expand and query recurring events using the recurring-ical-events integration. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. A CalDAV (RFC4791) client library for Python that lets you create, modify, and search calendar events on CalDAV servers, with both synchronous and asynchronous APIs. Yes, if you need CalDAV client functionality. The library is actively maintained, has low install friction, supports current Python versions, and carries no known vulnerabilities. The main caveat is the unclear dual-license status—verify that GPL-3.0-or-later or Apache-2.0 aligns with your project's licensing before committing to it. ## Install pip install caldav uv add caldav poetry add caldav ## Installing caldav Before you install: Low install friction; pure Python wheel with nine runtime dependencies including niquests, icalendar, and lxml. Actively maintained with a release 78 days ago and recent commits; supports Python 3.10 through 3.14. License in practice: Dual-licensed under GPL-3.0-or-later or Apache-2.0, but license_treatment is marked unclear in the fact sheet. Verify which license applies to your use case before integrating into proprietary code. Quickstart: from caldav import get_davclient with get_davclient() as client: principal = client.principal() calendars = principal.get_calendars() for cal in calendars: print(f"Calendar: {cal.name}") Requires a CalDAV server endpoint and valid credentials; get_davclient() will need connection parameters (typically via environment or explicit arguments). Verify before relying: - Whether the dual-license uncertainty affects commercial use or if one license is preferred by maintainers - CalDAV server compatibility matrix and known limitations with specific server implementations - Performance characteristics when handling large numbers of events or recurring event expansions ## Package facts - License: GPL-3.0-or-later OR Apache-2.0 (unclear) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 911.4K/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags caldav client library, calendar event management python, rfc4791 caldav, sync calendar events, caldav async support, calendar server integration, icalendar python client, calendar-sync, caldav-client, async-support [View on SkillFed](https://skillfed.io/packages/caldav) · [View on PyPI](https://pypi.org/project/caldav/)