Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Direct iCloud Calendar integration via CalDAV protocol. Create, read, update, and delete calendar events without third-party services. Use when the user want...
Direct iCloud Calendar integration via CalDAV protocol. Create, read, update, and delete calendar events without third-party services. Use when the user want...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Manage iCloud Calendar directly via CalDAV protocol. No third-party services, no data leaves your machine except to Apple's servers.
Activate when the user wants to: Check their calendar or upcoming events Create new calendar events Delete existing events List available calendars Do NOT use for: Reminders (use apple-reminders skill if available) Contacts (CalDAV is calendar-only) Non-iCloud calendars (Google, Outlook, etc.)
Required credentials: APPLE_ID โ Your Apple ID email address APPLE_APP_PASSWORD โ An app-specific password (NOT your regular Apple ID password) To generate app-specific password: Go to appleid.apple.com Sign in โ Sign-In and Security โ App-Specific Passwords Generate a new password Use this password (not your regular one)
# Set credentials export APPLE_ID="your.email@icloud.com" export APPLE_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx" # List calendars ./scripts/caldav.py list-calendars # List events for next 7 days ./scripts/caldav.py list-events --days 7 # Create an event ./scripts/caldav.py create-event \ --title "Team Meeting" \ --start "2025-07-23T14:00:00" \ --duration 60 \ --calendar "Work"
OperationCommandDescriptionList calendarslist-calendarsShow all iCloud calendarsList eventslist-eventsEvents in a date rangeCreate eventcreate-eventAdd new calendar eventDelete eventdelete-eventRemove event by filename or UID
# Basic event ./scripts/caldav.py create-event \ --title "Dentist Appointment" \ --start "2025-07-25T09:30:00" \ --duration 30 # With location and description ./scripts/caldav.py create-event \ --title "Project Review" \ --start "2025-07-26T14:00:00" \ --duration 60 \ --location "Conference Room B" \ --description "Q3 planning review" \ --calendar "Work" # All-day event ./scripts/caldav.py create-event \ --title "Vacation" \ --start "2025-08-01" \ --all-day
Note: CalDAV does not support native batch operations. To create multiple events, run the script multiple times: # Create multiple events by running the command multiple times ./scripts/caldav.py create-event --title "Meeting 1" --start "2025-07-26T10:00:00" --duration 60 ./scripts/caldav.py create-event --title "Meeting 2" --start "2025-07-26T14:00:00" --duration 60 ./scripts/caldav.py create-event --title "Meeting 3" --start "2025-07-27T09:00:00" --duration 60 iCloud handles rapid sequential requests well, but there is no single API call for creating multiple events.
# Delete by filename ./scripts/caldav.py delete-event \ --file "event-name.ics" \ --calendar "Calendar" # Delete by UID (searches calendar for matching event) ./scripts/caldav.py delete-event \ --uid "openclaw-xxx@openclaw.local" \ --calendar "Calendar" Warning: Deletions are permanent. iCloud may have its own backup, but standard CalDAV DELETE immediately removes the event.
ISO 8601: 2025-07-23T14:00:00 (assumes local timezone if none specified) With timezone: 2025-07-23T14:00:00+08:00 All-day: 2025-07-23 (date only)
Credentials are read from environment variables only No credentials are logged or stored All communication is HTTPS to caldav.icloud.com App-specific passwords can be revoked anytime at appleid.apple.com
ErrorCauseSolution401 UnauthorizedBad credentialsCheck APPLE_ID and APPLE_APP_PASSWORD404 Not FoundCalendar/event doesn't existList calendars/events first403 ForbiddenRead-only calendarTry a different calendarTimeoutNetwork issueRetry the request
See references/caldav-protocol.md for CalDAV implementation details See references/icloud-endpoints.md for iCloud-specific endpoints
Workflow acceleration for inboxes, docs, calendars, planning, and execution loops.
Largest current source with strong distribution and engagement signals.