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.
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.