This project is a CalDAV (RFC4791) client library for Python.
Features:
caldav.aio modulefrom 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}")
For async/await support, use the caldav.aio module:
import asyncio
from caldav import aio
async def main():
async with aio.get_async_davclient() as client:
principal = await client.principal()
calendars = await principal.get_calendars()
for cal in calendars:
print(f"Calendar: {cal.name}")
asyncio.run(main())
The user documentation (up-to-date with version 3.2) is embedded under docs/source - a rendered copy is available at https://caldav.readthedocs.io/
Other documentation:
There is also a directory docs/design containing lots of documents, mostly AI-generated, containing things like design decisions and other things that neither is deemed important enough to have a document on the root of the project nor deemed to be "user documentation".
The package is published at Pypi
The sync client uses niquests by default (with fallback to requests). The async client prefers niquests as well, falling back to the httpx family (httpx2, httpxyz, httpx) - the first one installed wins. See HTTP Library Configuration for details.
The caldav library is dual-licensed under the GNU GENERAL PUBLIC LICENSE Version 3 or the Apache License 2.0.
(top 30 of 72)
Python
96.4%
Shell
3.1%
This project is a CalDAV (RFC4791) client library for Python.
Features:
caldav.aio modulefrom 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}")
For async/await support, use the caldav.aio module:
import asyncio
from caldav import aio
async def main():
async with aio.get_async_davclient() as client:
principal = await client.principal()
calendars = await principal.get_calendars()
for cal in calendars:
print(f"Calendar: {cal.name}")
asyncio.run(main())
The user documentation (up-to-date with version 3.2) is embedded under docs/source - a rendered copy is available at https://caldav.readthedocs.io/
Other documentation:
There is also a directory docs/design containing lots of documents, mostly AI-generated, containing things like design decisions and other things that neither is deemed important enough to have a document on the root of the project nor deemed to be "user documentation".
The package is published at Pypi
The sync client uses niquests by default (with fallback to requests). The async client prefers niquests as well, falling back to the httpx family (httpx2, httpxyz, httpx) - the first one installed wins. See HTTP Library Configuration for details.
The caldav library is dual-licensed under the GNU GENERAL PUBLIC LICENSE Version 3 or the Apache License 2.0.
(top 30 of 72)
Python
96.4%
Shell
3.1%