Skip to content
The Ashton General Systems Company
Back to posts

Pear: iCloud for AI Agents

I built Pear to connect AI agents to iCloud through the Model Context Protocol. The February 2026 version had 28 tools for Calendar, Contacts, reminders and scheduling.

Pear has since added Microsoft 365. Apple Reminders access is limited to legacy CalDAV data, not Apple's upgraded Reminders store.

Client support depends on remote MCP support and permissions. Pear maintains setup guides for each client.

Once connected, you can do things like:

  • "What's on my calendar this week?"
  • "Schedule a 1-hour meeting with John sometime Thursday afternoon"
  • "Create a reminder to review the Q1 report by Friday"
  • "Find Sarah's phone number"
  • "Give me a briefing for today"

The daily briefing combines events, pending reminders and attendee contact details.

Architecture

Pear uses CalDAV and CardDAV, the open standards that iCloud actually implements. These are the same protocols your Mac's Calendar.app uses to sync with Apple's servers.

Claude / ChatGPT / Cursor
    ↓  MCP (JSON-RPC over HTTP)
Pear API  (pearmcp.com/api/mcp)
    ↓  CalDAV / CardDAV
iCloud Servers

The core library is TypeScript, built as a monorepo with Turbo. The MCP endpoint is a Next.js 15 API route deployed on Vercel. Authentication uses bearer tokens, so your AI agent never sees your Apple credentials.

The Tools

28 tools across 7 domains:

DomainToolsHighlights
Calendar7List, search, create, update, delete events. Recurring events with RRULE support.
Reminders4Create, update, complete tasks with priority and due dates.
Contacts9Full CRUD plus groups, photo updates, and search across name/email/phone/org.
Scheduling2Slot scoring and availability checking.
Briefing1Aggregated day summary with attendee enrichment from contacts.
Batch4Bulk create/delete up to 50 items per call.
System1List available calendars.

Scheduling

The find_best_time tool scores candidate slots. Each starts at 50, with bonuses or penalties:

  • +20 for falling within work hours
  • +15 for matching your preferred time of day (morning/afternoon/evening)
  • +15 for landing on a preferred day of the week
  • -10 for proximity to reminder deadlines
  • -10 for non-work days
  • -5 for outside work hours

Work schedules are configurable per request. The algorithm generates 30-minute-aligned candidates, filters out conflicts, scores the rest, and returns the top 5 with reasoning.

Timezone Handling

The messy part was timezone behavior. iCloud stores events in various timezone formats, all-day events behave differently across calendar clients, and recurring events need timezone-aware expansion. Pear uses IANA timezones and DST transitions to return timestamps in the requested timezone.

Original security model

  • App-specific passwords: Pear never asks for your main Apple ID password. You generate a revocable app-specific password through Apple.
  • AES-256 encryption: Credentials are encrypted at rest in Supabase.
  • No caching: iCloud data is proxied in real-time, never stored on Pear's servers.

Original setup

The February version supported the Claude Plugin Marketplace:

/plugin marketplace add AshtonAU/pear-plugin

Or add it directly as an MCP server:

{
  "mcpServers": {
    "pear": {
      "url": "https://pearmcp.com/api/mcp",
      "headers": {
        "Authorization": "Bearer pear_sk_your_key_here"
      }
    }
  }
}

For a new connection, follow the current Pear setup guide for your client.