Pear iCloud 集成:同步日历、提醒事项和联系人 - Openclaw Skills
作者:互联网
2026-03-29
什么是 Pear iCloud 集成?
Pear iCloud 集成是一套功能强大的工具集,专为使用 Openclaw Skills 的开发者设计,用于将 AI 智能体与 Apple 生态系统连接起来。通过利用标准的 CalDAV 和 CardDAV 协议,该技能使智能体能够执行复杂的排程、任务管理和联系人组织任务,而无需本地 macOS 脚本。该技能充当 PIM(个人信息管理)的桥梁,允许创建复杂的 AI 助手,以管理每日议程、查找最佳会议时间,并使联系人数据库在 iCloud 云端基础架构中保持同步。它提供了一种安全的、API 驱动的方式,使用 App 专用密码和专用 API 密钥与用户数据进行交互。
下载入口:https://github.com/openclaw/skills/tree/main/skills/ashtonau/pear-apple
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install pear-apple
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 pear-apple。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
Pear iCloud 集成 应用场景
- 查看每日议程、即将举行的活动或常规日程安排。
- 创建和更新支持周期性、参与者和地点的日历活动。
- 管理待办事项列表和提醒事项,包括设置优先级和将任务标记为已完成。
- 执行联系人查找或对联系人群组和 vCard 数据进行批量更新。
- 生成考虑工作时间和用户偏好的 AI 评分会议时段。
- 用户提供 Pear API 密钥并使用 Apple App 专用密码连接其 iCloud 账户。
- 发出请求时,智能体会从 27 个可用函数中选择适当的
pear_工具。 - 该技能通过 CalDAV 或 CardDAV 协议与 iCloud 通信以获取或修改数据。
- 对于排程等复杂任务,该技能使用 AI 评分逻辑根据用户偏好评估空闲时段。
- 更改将提交至 iCloud 服务器,并立即在用户的所有 Apple 设备上同步。
Pear iCloud 集成 配置指南
要集成这些 Openclaw Skills,您必须首先获得 Pear API 密钥和 Apple App 专用密码。
# 在您的环境中设置 Pear API 密钥
export PEAR_API_KEY="pear_sk_your_key_here"
# 可选:如果不使用默认 URL,请设置自定义 MCP URL
export PEAR_MCP_URL="https://pearmcp.com/api/mcp"
在发起请求之前,请确保您已在 Pear 仪表板上授权了您的 iCloud 账户。
Pear iCloud 集成 数据架构与分类体系
该技能根据标准 Apple PIM 结构组织数据:
| 类别 | 协议 | 关键数据点 |
|---|---|---|
| 活动 | CalDAV | ISO 8601 时间戳、循环对象、参与者列表、地点 |
| 提醒事项 | VTODO | 标题、截止日期、优先级(1-9)、完成状态 |
| 联系人 | CardDAV | vCard 字段(电话、电子邮件、地址、生日、Base64 照片) |
| 简报 | 聚合 | 今日活动和待办任务的综合视图 |
| 批量操作 | JSON 数组 | 每次请求支持多达 50 个项目进行批量操作 |
name: pear-apple
description: iCloud Calendar, Reminders & Contacts via Pear. Manage events, reminders, contacts, daily briefings, and AI scheduling. 27 tools for Apple iCloud via CalDAV/CardDAV.
homepage: https://pearmcp.com
metadata:
openclaw:
emoji: "??"
primaryEnv: PEAR_API_KEY
requires:
env:
- PEAR_API_KEY
network:
- pearmcp.com
Pear — iCloud Integration
Pear provides read/write access to iCloud Calendar, Reminders, and Contacts through 27 MCP tools. All tools are prefixed with pear_ and communicate with iCloud via CalDAV/CardDAV protocols.
When to Use
Activate this skill when the user wants to:
- Check their schedule, upcoming events, or daily agenda
- Create, update, or delete calendar events
- Manage reminders or to-do lists
- Look up, create, or update contacts
- Find free time slots or schedule meetings
- Get a daily briefing of events and tasks
- Check availability for a specific time
- Work with contact groups
- Perform bulk operations on events, reminders, or contacts
Activation triggers:
- "What's on my calendar", "my schedule", "upcoming events"
- "Remind me to", "add a reminder", "my tasks", "to-do"
- "Find contact", "add a contact", "phone number for"
- "Schedule a meeting", "find a time", "when am I free"
- "Daily briefing", "what's today look like"
- "Birthday", "anniversaries"
Do NOT activate for:
- Apple Notes (not supported — CalDAV only)
- Apple Mail or iMessage
- iCloud Drive or file storage
- Apple Music, Photos, or other non-PIM services
- Local macOS Calendar.app scripting (Pear works cross-platform via API)
Prerequisites
Required Environment Variable:
PEAR_API_KEY— Your Pear API key (format:pear_sk_...)- Sign up at pearmcp.com
- Generate an API key from the dashboard
- Connect your iCloud account (requires an app-specific password)
Optional:
PEAR_MCP_URL— Custom endpoint URL (defaults tohttps://pearmcp.com/api/mcp)
Tool Reference
Events (8 tools)
| Tool | Description |
|---|---|
pear_list_calendars |
List all iCloud calendars (including read-only subscriptions) |
pear_list_events |
List events in a time range, with pagination and calendar filtering |
pear_search_events |
Search events by title or description within a date range |
pear_create_event |
Create an event with optional recurrence, alarms, attendees, and location |
pear_update_event |
Update an existing event's properties |
pear_delete_event |
Delete an event by filename |
pear_find_free_slots |
Find available time slots of a given duration |
pear_check_availability |
Check if a specific time slot is free, returns conflicts |
Reminders (4 tools)
| Tool | Description |
|---|---|
pear_list_reminders |
List reminders with optional list filtering, includes completed toggle |
pear_create_reminder |
Create a reminder with optional due date, priority (1=high, 5=med, 9=low), and notes |
pear_update_reminder |
Update a reminder's properties |
pear_complete_reminder |
Mark a reminder as completed |
Contacts (9 tools)
| Tool | Description |
|---|---|
pear_list_contacts |
List all contacts with full vCard data (phones, emails, addresses, birthdays) |
pear_search_contacts |
Search by name, email, phone, or organization |
pear_create_contact |
Create a contact with full vCard support including photo |
pear_update_contact |
Update contact fields (merges with existing data) |
pear_delete_contact |
Delete a contact |
pear_list_contact_groups |
List all contact groups with member counts |
pear_create_contact_group |
Create a new contact group |
pear_add_contact_to_group |
Add a contact to a group by name or email |
pear_update_contact_photo |
Update a contact's photo (Base64, data URI, or external URL) |
Briefing (1 tool)
| Tool | Description |
|---|---|
pear_get_daily_briefing |
Get today's events and pending reminders in one call. Enriches attendees with contact data. |
Scheduling (1 tool)
| Tool | Description |
|---|---|
pear_find_best_time |
AI-scored optimal meeting slots. Considers work hours, time-of-day preference, day-of-week preference, buffer time, and reminder deadlines. |
Batch Operations (4 tools)
| Tool | Description |
|---|---|
pear_create_events_batch |
Create up to 50 events in one call |
pear_create_reminders_batch |
Create up to 50 reminders in one call |
pear_create_contacts_batch |
Create up to 50 contacts in one call |
pear_delete_contacts_batch |
Delete up to 50 contacts in one call |
Workflow Guidelines
Dates and Times
- Always use ISO 8601 format:
2025-06-15T14:30:00Zor2025-06-15T14:30:00+10:00 - Timezone parameter: Pass
timezone(IANA format likeAmerica/New_YorkorAustralia/Sydney) for user-friendly display times - All-day events: Set
isAllDay: trueand use date-only format2025-06-15 - Date ranges:
pear_list_eventsrequires atimeRangeobject:{ start: "...", end: "..." }
Creating Events
When creating events, follow this pattern:
- If the user doesn't specify a calendar, omit
calendarName— Pear auto-selects the default - For recurring events, use the
recurrenceobject:{ frequency: "WEEKLY", interval: 1, count: 10 } - For attendees, you can pass names — Pear resolves them against the user's contacts automatically
- Use
idempotencyKeywhen retrying to prevent duplicate events - Alarms use minutes before:
{ action: "display", trigger: 15 }for a 15-minute reminder
Finding Meeting Times
For scheduling, prefer pear_find_best_time over pear_find_free_slots:
pear_find_best_timereturns AI-scored slots considering work hours, preferences, and existing commitments- Pass
preferencesto customize:{ timeOfDay: "morning", focusTime: true, workHoursStart: 9, workHoursEnd: 17 } pear_find_free_slotsis simpler — just returns raw available slots without scoring
Reminders
- Reminders are accessed via CalDAV (VTODO protocol) — basic operations work well (title, due date, priority, notes, completion). Modern Apple Reminders features like subtasks, tags, smart lists, and location-based reminders are not available via CalDAV.
- Priority values:
1= high,5= medium,9= low,0= none - To list only incomplete reminders, use
includeCompleted: false(default) - Reminder lists are auto-created if they don't exist when using
listName
Contacts
pear_update_contactmerges fields — it won't erase data you don't include in the update- Birthday format:
YYYY-MM-DDfor full date,--MM-DDfor year-unknown - Phone/email can be a single string or an array for multiple entries
- Contact photos accept Base64 or data URI format
Virtual Birthdays
Pear generates all-day birthday events from contact birthday fields. These appear as events on a "Birthdays" calendar when listing events. This is a synthesized feature — Apple's native Birthdays calendar is not exposed via CalDAV.
Daily Briefing
pear_get_daily_briefing is the most efficient way to give the user an overview:
- Returns today's events + pending reminders in a single call
- Automatically enriches event attendees with contact details (name, email, phone)
- Pass
timezonefor correct day boundaries - Pass
dateto get a briefing for a different day
Safety & Confirmation
Actions Requiring Care
| Action | Risk | Guidance |
|---|---|---|
pear_delete_event |
Removes event permanently | Confirm event title and date with user before deleting |
pear_delete_contact |
Removes contact permanently | Always confirm — show contact name first |
pear_delete_contacts_batch |
Bulk delete up to 50 contacts | Require explicit user confirmation with count |
pear_update_event |
Overwrites event fields | Summarize changes before applying |
pear_complete_reminder |
Marks as done | Safe — can be undone by updating completed: false |
| Batch create operations | Creates up to 50 items | Confirm count and summarize before executing |
Data Safety
- Read operations are always safe — listing, searching, and briefings have no side effects
- Updates merge, not replace —
pear_update_contactpreserves fields you don't mention - Batch operations are rate-limited — chunks of 5 with 200ms delays, no need to throttle manually
- Never expose the user's
PEAR_API_KEY— treat it as a secret
Error Handling
| Error Code | Meaning | What to Do |
|---|---|---|
-32001 |
Missing or invalid API key | Check PEAR_API_KEY is set correctly |
-32602 |
Invalid parameters | Check parameter names and types against tool reference |
-32603 |
Server error | Retry once, then report to user |
404 on event/reminder |
Item not found | The filename may have changed — re-list to get current filenames |
| Calendar is read-only | Cannot modify subscription calendars | List calendars first to check which are writable |
Common Patterns
Error Recovery (Idempotency)
Event creation failed mid-request or timed out:
→ Retry pear_create_event with the same idempotencyKey
→ Pear deduplicates — no double-booking even if the first request succeeded silently
Morning Briefing
User: "What's on my plate today?"
→ Call pear_get_daily_briefing with timezone
→ Summarize events chronologically, then pending reminders
Schedule a Meeting
User: "Find time for a 1-hour meeting this week"
→ Call pear_find_best_time with durationMinutes: 60 and this week's range
→ Present top 3 options with scores
→ On user selection, call pear_create_event
Quick Reminder
User: "Remind me to call the dentist tomorrow"
→ Call pear_create_reminder with title and dueDate set to tomorrow
Contact Lookup
User: "What's Sarah's phone number?"
→ Call pear_search_contacts with query: "Sarah"
→ Return matching contacts with phone numbers
Bulk Event Creation
User: "Add these 5 meetings to my calendar"
→ Call pear_create_events_batch with all events in one request
→ Summarize results (created count, any failures)
References
- Pear Documentation
- Apple App-Specific Passwords
- CalDAV Protocol (RFC 4791)
- CardDAV Protocol (RFC 6352)
- IANA Timezone Database
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
PARA 组织技能:系统化工作空间管理 - Openclaw Skills
Credence:MCP 服务器信任与安全扫描 - Openclaw 技能
Shelv:将 PDF 转换为 Markdown 文件系统 - Openclaw Skills
DataMaster Pro:自动化数据抓取与可视化 - Openclaw Skills
M365 任务管理器:自动化 Microsoft To Do - Openclaw Skills
YouTube 视频恢复:寻找已删除或私人的视频 - Openclaw Skills
A2A支付:面向AI智能体的区块链USDC支付 - Openclaw技能
Percept 语音命令:Openclaw 技能的免提语音控制
名片生成:AI 驱动的印刷设计 - Openclaw Skills
Discord 机器人:AI 驱动的服务器管理 - Openclaw Skills
AI精选
