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.
- 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.
You need to install the caldav library to run the client scripts.
pip install caldavThe 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".
├── 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)
All scripts are located in the scripts/ directory.
List all available calendars for the authenticated user:
python3 scripts/calendars.py listCreate a new calendar:
python3 scripts/calendars.py create --name "My New Calendar"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"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 1This script helps with server-side configuration management for Radicale.
# Check current configuration
python3 scripts/radicale.py config
# Validate users file
python3 scripts/radicale.py usersSee the repository license for details.