home / skills / openclaw / skills / icloud-calendar

icloud-calendar skill

/skills/teenlucifer/icloud-calendar

This skill lets you add events to your iCloud Calendar via CalDAV, automatically syncing reminders to iPhone.

npx playbooks add skill openclaw/skills --skill icloud-calendar

Review the files below or copy the command above to add this skill to your agents.

Files (4)
SKILL.md
2.6 KB
---
name: icloud-calendar
description: Add events to iCloud Calendar via CalDAV. Syncs to iPhone automatically with alarm reminders.
homepage: https://github.com/TeenLucifer/icloud-calendar-skill
metadata:
  clawdbot:
    emoji: "📅"
    requires:
      env: ["ICLOUD_EMAIL", "ICLOUD_PASSWORD"]
      bins: ["python3"]
    primaryEnv: "ICLOUD_EMAIL"
    files: ["scripts/*"]
---

# iCloud Calendar

Add events to iCloud Calendar via CalDAV. Automatically syncs to iPhone with alarm reminders.

## Features

- ✅ Add events to iCloud Calendar
- ✅ iPhone push notifications via calendar alerts  
- ✅ Customizable reminder times (default 15 min + 5 min)
- ✅ Works with any iCloud account
- ✅ Credentials stored in local .env file

## Setup

### 1. Get iCloud App Specific Password

1. Go to [appleid.apple.com](https://appleid.apple.com)
2. Sign in → "Sign-In and Security"
3. Click "App-Specific Passwords" → "+"
4. Create a new password and save it

### 2. Configure Credentials

```bash
cp secrets/.env.example secrets/.env
# Edit secrets/.env with your credentials
```

Or set environment variables directly:

```bash
export ICLOUD_EMAIL="[email protected]"
export ICLOUD_PASSWORD="your-app-specific-password"
```

## Usage

```bash
python3 scripts/add_event.py "Event Title" "YYYY-MM-DDTHH:MM:SS" "YYYY-MM-DDTHH:MM:SS" "Description"
```

### Examples

```bash
# Add a simple event
python3 scripts/add_event.py "团队会议" "2026-03-10T14:00:00" "2026-03-10T15:00:00" "讨论项目进度"

# Add event with default 1 hour duration
python3 scripts/add_event.py "医生预约" "2026-03-15T09:00:00"
```

## Security & Privacy

- **Credentials**: Stored locally in `secrets/.env` (gitignored, never committed)
- **Data in transit**: Credentials sent only to Apple's iCloud CalDAV servers
- **No external services**: Only communicates with `caldav.icloud.com`
- **User control**: Users must provide their own iCloud credentials

## External Endpoints

| Endpoint | Data Sent | Purpose |
|----------|-----------|---------|
| `https://caldav.icloud.com` | iCloud email + App-Specific Password (Base64 auth), Event data (.ics) | Create calendar events |

## Trust Statement

This skill sends your iCloud credentials to Apple's iCloud servers to create calendar events. Only install if you trust Apple with your iCloud account. The skill does not store or exfiltrate any data beyond direct communication with iCloud.


## Technical Details

- Uses iCloud CalDAV API (PROPFIND + PUT methods)
- Calendar path format: `/<user_id>/calendars/home/`
- Creates iCalendar (.ics) events with VALARM reminders
- Supports multiple alarm triggers

## License

MIT License

Overview

This skill adds events to your iCloud Calendar using the CalDAV API and creates calendar alerts that sync automatically to iPhone and other Apple devices. It supports customizable alarm reminders and stores credentials locally for offline control. The implementation is lightweight Python and communicates only with Apple's CalDAV servers.

How this skill works

The skill authenticates to iCloud CalDAV using your iCloud email and an Apple app-specific password, then issues PROPFIND and PUT requests to create .ics event resources under your calendar path. Events are generated as iCalendar files with VALARM entries so reminders trigger as calendar alerts on your devices. Credentials are read from a local .env or environment variables and are only sent to caldav.icloud.com.

When to use it

  • Add one-off or recurring events programmatically to an iCloud Calendar
  • Create events from scripts, cron jobs, or external automations that need iPhone push reminders
  • Back up or archive calendar entries by exporting .ics content
  • Trigger timed alerts on Apple devices without relying on third-party push services

Best practices

  • Use an Apple app-specific password instead of your main account password
  • Keep the secrets/.env file gitignored and store it securely on the host
  • Validate event timestamps in ISO 8601 format before sending
  • Test on a disposable calendar if you need to verify behavior before using a primary calendar
  • Limit the scope of automation to only necessary accounts and calendars

Example use cases

  • Scripted meeting creation: add calendar events from CI pipelines or scheduling bots with 15 and 5 minute alarms
  • Personal reminders: create doctor appointments or pickup reminders that push to your iPhone
  • Archival tooling: generate .ics files and upload them to your iCloud calendar as a backup
  • Automated workflows: attach calendar events to task completions so team members receive device alerts

FAQ

Do I need to share my Apple ID password?

No. You should use an Apple app-specific password created at appleid.apple.com; this avoids using your main account password.

Will event data be sent to third parties?

No. The skill communicates only with caldav.icloud.com and does not forward data to external services.