All projects

projects calDAV api

KalenDAV

A lightweight, async CalDAV server built with FastAPI and SQLAlchemy — full protocol support, calendar sharing, ICS feeds, and a web calendar.

Stack

  • Python
  • FastAPI
  • SQLAlchemy
  • Docker
  • Vite
  • Tailwind CSS
KalenDAV preview

A lightweight, async CalDAV server built with FastAPI and SQLAlchemy. Self-hostable via Docker, with a web calendar, admin UI, and ICS feed support.

Features

  • CalDAV Protocol Support: Full CalDAV operations (OPTIONS, PROPFIND, PROPPATCH, GET, PUT, DELETE, REPORT, MKCALENDAR) with RFC 6764 service discovery and RFC 3744 access control
  • Multiple Users & Calendars: Per-user accounts, each with multiple colour-coded calendars
  • Calendar Sharing: Share calendars between users with read, write, or admin permissions
  • Web Calendar: Day, week, and month views for managing events, with per-event colours and recurring events
  • Recurring Events: Daily, weekly, monthly, and yearly recurrence
  • ICS Feeds: Access calendars via ICS using API keys or Basic Auth
  • ICS Import: Upload .ics files from the web UI
  • Admin UI & User Dashboard: Manage users, calendars, shares, and API keys
  • Async: Built on SQLAlchemy 2.0 async support
  • SQLite & PostgreSQL: SQLite for development, PostgreSQL for production

Tech Stack

  • Backend: Python, FastAPI, SQLAlchemy 2.0 (async), Alembic migrations
  • Database: SQLite (dev), PostgreSQL via asyncpg (prod)
  • Frontend: Vite, Tailwind CSS, FullCalendar JS, Jinja2
  • Tooling: Docker / docker-compose (multi-stage build), pytest

Supported Clients

Works with most CalDAV-compatible clients, including Thunderbird, macOS Calendar, Outlook (via CalDAV Synchronizer), Evolution, iOS Calendar, and Android (via DAVx⁵ or KashCal). A built-in web calendar is available at /admin/calendar/.