Skip to content

python-caldav/caldav

caldav

This project is a CalDAV (RFC4791) client library for Python.

Features:

  • create, modify calendar
  • create, update and delete event
  • search events by dates
  • async support via caldav.aio module
  • etc.

Quick Start

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

Async API

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 documentation was updated as of version 2.0, and is available at https://caldav.readthedocs.io/

The package is published at Pypi

HTTP Libraries

The sync client uses niquests by default (with fallback to requests). The async client uses httpx if installed (pip install caldav[async]), otherwise falls back to niquests. See HTTP Library Configuration for details.

Licences:

Caldav is dual-licensed under the GNU GENERAL PUBLIC LICENSE Version 3 or the Apache License 2.0.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, GPL-3.0 licenses found

Licenses found

Apache-2.0
COPYING.APACHE
GPL-3.0
COPYING.GPL

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 70

Languages