$npx skillfedfor your agent

caldav

CalDAV (RFC4791) client library

With conditionsPyPI Python ModulesReleased May 2026911.4K downloads / moGPL-3.0-or-later OR Apache-2.0Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — caldav-3.2.1-py3-none-any.whl
v3.2.1 · released 2026-05-28 · Python >=3.10 · 9 runtime deps: dnspython, icalendar-searcher, icalendar, lxml, niquests, python-dateutil, pyyaml, recurring-ical-events

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.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires a CalDAV server endpoint and valid credentials; get_davclient() will need connection parameters (typically via environment or explicit arguments).
  • 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 · maintenance · safety

GPL-3.0-or-later OR Apache-2.0 (unclear) — 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.

last release 2026-05-28 (78 days) · last repo commit 2026-06-27 · 411 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 911,396 downloads/mo, #4,746 on PyPI

Verify before relying

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}")
  • 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
Same gist for agents: .md · .json

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 on this page. Verify before relying on it.

With conditions

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

caldav on PyPI

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.

Requires a CalDAV server endpoint and valid credentials; get_davclient() will need connection parameters (typically via environment or explicit arguments).

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}")

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

LicenseGPL-3.0-or-later OR Apache-2.0 unclear
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
9 packages
dnspythonicalendar-searchericalendarlxmlniquestspython-dateutilpyyamlrecurring-ical-eventstyping-extensions
MaintenanceActively maintained 78 days since the last release
Last repo commit
First released
Downloads911,396 / month, #4,746 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 4 - BetaIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Office/Business :: SchedulingTopic :: Software Development :: Libraries :: Python Modules

Evidence: caldav-3.2.1-py3-none-any.whl

Tags

Capabilities
caldav client librarycalendar event management pythonrfc4791 caldavsync calendar eventscaldav async supportcalendar server integrationicalendar python client
Topics
calendar-synccaldav-clientasync-support

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “caldav client library”

  • caldavA CalDAV (RFC4791) client library for Python that lets you create,…
  • types-caldavProvides type stubs for caldav, enabling static type checkers like…
  • vdirsyncerVdirsyncer is a command-line tool that synchronizes calendars and…

Give your agent the search over MCP, or paste the wish link into any chat.

More Python Modules packages

idna Worth it
PyPI · Python Modules · released Jun 2026

Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.

Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.

BSD-3-Clausepure Python · 3.9+
1.8Bdownloads / mo
setuptools Worth it
PyPI · Python Modules · released Aug 2026

Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.

MITpure Python · 3.10+
1.6Bdownloads / mo
PyYAML Worth it
PyPI · Python Modules · released Sep 2025

PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.

MITcompiled wheel · 3.8+
1.2Bdownloads / mo
pydantic Worth it
PyPI · Python Modules · released May 2026

Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.

MITpure Python · 3.9+
1.1Bdownloads / mo
annotated-types Worth it
PyPI · Python Modules · released Jul 2026

Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.

Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…

MITpure Python · 3.10+
871.3Mdownloads / mo
typing-inspection Worth it
PyPI · Python Modules · released Aug 2026

Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.

MITpure Python · 3.10+
783.0Mdownloads / mo

See also ical · PyCronofy · vdirsyncer · icalendar · icalendar-searcher · types-caldav · x-wr-timezone · recurring-ical-events · ics · pyobjc-framework-CalendarStore