caldav-skill

This workspace contains a collection of Python scripts to interact with CalDAV servers (such as Radicale, iCloud, Google Calendar, etc.) and specific utilities to manage a Radicale server instance.

View on GitHubVisit Product
README updated March 1, 2026
README.md

CalDAV & Radicale Management Skill

This workspace contains a collection of Python scripts to interact with CalDAV servers (such as Radicale, iCloud, Google Calendar, etc.) and specific utilities to manage a Radicale server instance.

Overview

  • Manage Calendars: Create, list, and delete calendars on a CalDAV server.
  • Manage Events: Create, update, delete, and query events within calendars.
  • Manage Todos: Handle tasks (VTODO) with priorities, status, and descriptions.
  • Radicale Admin: Helper scripts to manage Radicale server configurations and users.

Prerequisites

Python Dependencies

You need to install the caldav library to run the client scripts.

pip install caldav

Environment Variables

The scripts rely on environment variables to authenticate with your CalDAV server.

export CALDAV_URL="http://localhost:5232"
export CALDAV_USER="your_username"
export CALDAV_PASSWORD="your_password"

Project Structure

.
├── SKILL.md              # Skill definition and metadata
├── scripts/
│   ├── calendars.py      # Calendar management (list, create, delete)
│   ├── events.py         # Event operations (query, add, remove)
│   ├── todos.py          # Task/Todo operations
│   ├── radicale.py       # Radicale server specific utilities
│   └── utils.py          # Shared utilities (client connection, logging)

Usage

All scripts are located in the scripts/ directory.

Managing Calendars (scripts/calendars.py)

List all available calendars for the authenticated user:

python3 scripts/calendars.py list

Create a new calendar:

python3 scripts/calendars.py create --name "My New Calendar"

Managing Events (scripts/events.py)

List events in a specific calendar:

python3 scripts/events.py list --calendar "Work"

Create a new event:

python3 scripts/events.py create \
  --calendar "Work" \
  --summary "Team Meeting" \
  --start "2023-10-27T10:00:00" \
  --end "2023-10-27T11:00:00" \
  --location "Conference Room A"

Managing Todos (scripts/todos.py)

List pending tasks:

python3 scripts/todos.py list --calendar "Personal"

Add a new task:

python3 scripts/todos.py create \
  --calendar "Personal" \
  --summary "Buy Groceries" \
  --priority 1

Radicale Server Management (scripts/radicale.py)

This script helps with server-side configuration management for Radicale.

# Check current configuration
python3 scripts/radicale.py config

# Validate users file
python3 scripts/radicale.py users

License

See the repository license for details.

    caldav-skill | Chakyiu Blog