Skip to content

Latest commit

 

History

History
53 lines (36 loc) · 1.55 KB

File metadata and controls

53 lines (36 loc) · 1.55 KB

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.