Overview
Apple iCloud Calendar integration is ideal for users in the Apple ecosystem. It uses the CalDAV protocol with app-specific passwords for secure, privacy-focused calendar sync.
| Feature | Details |
|---|---|
| Sync Method | Polling (every 15 minutes) |
| Rate Limit | ~30 requests per minute (conservative) |
| Multi-Calendar | Yes - All iCloud calendars |
| Authentication | CalDAV + App-Specific Password |
| Protocol | CalDAV (iCalendar format) |
| Privacy | End-to-end compatible, no OAuth tracking |
Privacy First: Apple iCloud uses app-specific passwords instead of OAuth, giving you fine-grained control. Revoke access instantly from your Apple ID settings without affecting your main password or other apps.
Setting Up App-Specific Password
Before connecting to Trix, you need to generate an app-specific password for iCloud Calendar:
Step 1: Enable Two-Factor Authentication
App-specific passwords require 2FA. If you haven't enabled it:
- Go to appleid.apple.com
- Sign in with your Apple ID
- Navigate to Security section
- Click Turn On Two-Factor Authentication
- Follow the prompts to verify your phone number
2FA Required: Apple requires two-factor authentication to generate app-specific passwords. This is a security measure to protect your account.
Step 2: Generate App-Specific Password
- Visit appleid.apple.com/account/manage
- Sign in with your Apple ID and password
- In the Security section, find App-Specific Passwords
- Click Generate Password or the + icon
- Enter a label:
Trix Calendar - Click Create
- Copy the 16-character password (format:
xxxx-xxxx-xxxx-xxxx)
Save It Now!
Apple shows the password only once. Copy it immediately - you'll need it in the next step. If you lose it, you'll need to revoke and generate a new one.
Step 3: Note Format
The app-specific password will look like this:
abcd-efgh-ijkl-mnop
# Spaces and dashes are optional when entering
# These are all equivalent:
abcd-efgh-ijkl-mnop
abcdefghijklmnop
abcd efgh ijkl mnopConnecting Apple iCloud Calendar
Via Dashboard
The easiest way to connect Apple iCloud Calendar is through the Trix dashboard at app.trixdb.com. Navigate to Settings → Integrations → Apple iCloud and enter your Apple ID and app-specific password.
Note: Apple Calendar is connected via the dashboard or API, not the CLI. The CLI supports trix integrations connect google for Google Calendar.
Via API
# Create Apple calendar connection
curl -X POST https://api.trixdb.com/v1/integrations/connections \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "apple",
"credentials": {
"apple_id": "[email protected]",
"app_password": "abcdefghijklmnop"
}
}'
# Response
{
"connection_id": "conn_abc123",
"provider": "apple",
"status": "active",
"calendars_found": 5,
"created_at": "2026-01-12T10:00:00Z"
}CalDAV Endpoint:
Trix automatically connects to caldav.icloud.com using your Apple ID and app-specific password. No manual CalDAV configuration needed!
Managing Calendars
List All iCloud Calendars
# API
curl "https://api.trixdb.com/v1/integrations/connections/<connection-id>/calendars" \
-H "Authorization: Bearer YOUR_API_KEY"
# Example response calendars:
# Calendar (default) - Syncing
# Work - Syncing
# Family - Syncing
# Birthdays - Not syncing
# Holidays - Not syncingCalendar Colors
iCloud calendars include color information, which Trix preserves:
{
"calendars": [
{
"id": "calendar-1",
"name": "Work",
"color": "#0E61B9",
"sync_enabled": true
},
{
"id": "calendar-2",
"name": "Family",
"color": "#63DA38",
"sync_enabled": true
}
]
}Enable/Disable Calendars
# API: Toggle calendar sync
curl -X PATCH "https://api.trixdb.com/v1/integrations/connections/<connection-id>/calendars/<calendar-id>" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "sync_enabled": true }'
# Or configure interactively via the dashboard at app.trixdb.comCalDAV Protocol
What is CalDAV?
CalDAV (Calendar Distributed Authoring and Versioning) is an open standard protocol for accessing calendar data. Unlike proprietary APIs, CalDAV:
- Works with any CalDAV-compliant server
- Uses standard iCalendar (.ics) format
- Supported by Apple, Google, Microsoft, and others
- Privacy-focused (no OAuth tracking)
- Open standard (not controlled by one company)
How Trix Uses CalDAV
When you connect an Apple calendar, Trix:
- Discovers Calendars - PROPFIND request to list all calendars
- Fetches Events - REPORT request with time range filter
- Parses iCalendar - Converts .ics format to Trix event format
- Handles Timezones - Properly converts VTIMEZONE to UTC
- Processes Recurrence - Expands recurring events (RRULE)
Polling vs Real-Time
CalDAV doesn't support push notifications like Google/Microsoft webhooks. Instead, Trix polls for changes every 15 minutes:
Every 15 minutes:
v
1. REPORT request to CalDAV server
v
2. Get events in next 30 days
v
3. Compare with previously synced events
v
4. Detect new/updated/deleted events
v
5. Update Trix memories accordingly15-Minute Delay:
Changes to your iCloud calendar may take up to 15 minutes to appear in Trix. For most users, this delay is acceptable. Need faster updates? Use Google or Microsoft with real-time webhooks.
iCalendar Format
Event Parsing
Trix parses iCalendar (.ics) format and extracts all relevant event data:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Apple Inc.//iCloud.com//EN
BEGIN:VEVENT
UID:[email protected]
DTSTART;TZID=America/New_York:20260113T100000
DTEND;TZID=America/New_York:20260113T110000
SUMMARY:Team Standup
LOCATION:Conference Room A
DESCRIPTION:Daily sync meeting
ORGANIZER;CN=John Doe:mailto:[email protected]
ATTENDEE;CN=Jane Smith:mailto:[email protected]
ATTENDEE;CN=Bob Jones:mailto:[email protected]
STATUS:CONFIRMED
END:VEVENT
END:VCALENDARParsed into:
{
"id": "[email protected]",
"title": "Team Standup",
"start": "2026-01-13T15:00:00Z",
"end": "2026-01-13T16:00:00Z",
"location": "Conference Room A",
"description": "Daily sync meeting",
"organizer": {
"name": "John Doe",
"email": "[email protected]"
},
"attendees": [
{"name": "Jane Smith", "email": "[email protected]"},
{"name": "Bob Jones", "email": "[email protected]"}
],
"status": "confirmed"
}Recurring Events
Recurring events (RRULE) are automatically expanded into individual occurrences:
# iCalendar recurring event
RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR;UNTIL=20260131T235959Z
# Expanded by Trix into:
# Mon Jan 13, 10:00 AM
# Wed Jan 15, 10:00 AM
# Fri Jan 17, 10:00 AM
# Mon Jan 20, 10:00 AM
# ... (until Jan 31)Timezone Handling
iCalendar events include timezone definitions (VTIMEZONE). Trix properly converts all times to UTC for storage and back to your local timezone for display.
Privacy & Security
App-Specific Passwords vs OAuth
Apple's app-specific password approach offers unique privacy benefits:
- No third-party OAuth tracking
- Password only works with specific app
- Doesn't grant access to other Apple services
- Instant revocation without password change
- No refresh token vulnerabilities
- Must generate password manually
- Password shown only once
- No automatic expiration (revoke manually)
- Requires 2FA to be enabled
What Trix Can Access
- Read calendar events from iCloud
- List available calendars
- Detect calendar color and settings
- Cannot create or modify events (read-only)
- Cannot delete events
- Cannot access contacts, email, photos, or other iCloud data
Minimal Access:
The app-specific password only grants access to CalDAV (calendar data). It cannot access your email, photos, iCloud Drive, or any other Apple services.
Revoking Access
You can revoke Trix's access instantly:
Option 1: Via Trix CLI
# Disconnect and delete all synced data
trix integrations disconnect <connection-id>Option 2: Via Apple ID
- Go to appleid.apple.com/account/manage
- Navigate to Security → App-Specific Passwords
- Find "Trix Calendar" in the list
- Click Revoke or the x icon
- Confirm revocation
Revoking the password immediately blocks Trix from accessing your calendar. Your main Apple ID password and other apps are unaffected.
Troubleshooting
Common Issues
| Problem | Solution |
|---|---|
| "Invalid username or password" | 1. Verify Apple ID is correct (email, not phone) 2. Regenerate app-specific password 3. Ensure 2FA is enabled |
| Can't generate app-specific password | Enable Two-Factor Authentication on your Apple ID first |
| Safari shows warning copying password | Use Chrome/Firefox, or manually type password (copy often fails) |
| Events from yesterday showing | Expected - Trix fetches 3 days past to 30 days future |
| Changes taking 15+ minutes to sync | CalDAV uses polling (not real-time). Wait one polling cycle. |
| Missing calendar in list | Ensure calendar exists in iCloud.com (some only on device) |
| Recurring event showing duplicates | Expected - each occurrence is a separate event |
Password Entry Tips
Copy-Paste Issues?
Safari sometimes adds extra characters when copying app-specific passwords. Try these workarounds:
1. Use Chrome or Firefox to generate the password
2. Manually type the password (remove spaces/dashes)
3. Paste into a text editor first, then copy again
Get Detailed Diagnostics
# Run built-in troubleshooter
trix integrations troubleshoot apple
# Output:
# CalDAV connection active
# Apple ID: [email protected]
# App-specific password: valid (no expiration)
# Last sync: 3 minutes ago (success)
# Calendars syncing: 3 of 5 enabled
# Events found: 47 upcoming
# Polling interval: 15 minutes (no real-time)
#
# Connection healthy!
#
# Note: Changes may take up to 15 minutes to appear.Comparison: Apple vs Google vs Microsoft
| Feature | Apple iCloud | Microsoft | |
|---|---|---|---|
| Sync Speed | 15-min polling | Real-time webhooks | Real-time webhooks |
| Privacy | App passwords (best) | OAuth tracking | OAuth tracking |
| Setup | Manual password | Automatic OAuth | Automatic OAuth |
| Revocation | Instant (Apple ID) | Instant (Google Account) | Instant (MS Account) |
| Protocol | Open (CalDAV) | Proprietary REST | Proprietary Graph API |
| Multi-Calendar | Yes | Yes | Yes |
| Rate Limit | ~30 req/min | 60 req/min | 600 req/min |
When to Choose Apple iCloud
- You use iPhone, iPad, or Mac exclusively
- You value privacy over real-time sync
- You prefer app-specific passwords over OAuth
- 15-minute delay is acceptable for your use case
- You don't need instant notifications
When to Choose Google/Microsoft Instead
- You need real-time sync (< 1 minute)
- You prefer automatic OAuth over manual passwords
- You use Google Workspace or Office 365
- You want instant push notifications
Mix and Match:
Use Apple for personal calendar (privacy) and Google/Microsoft for work calendar (real-time). Trix supports unlimited connections across all providers!
Frequently Asked Questions
Q: Can I use my main Apple ID password?
A: No. Apple requires app-specific passwords for third-party apps when 2FA is enabled. This is a security feature to protect your account. App-specific passwords can be revoked independently without affecting your main password.
Q: How long does the app-specific password last?
A: Indefinitely, until you manually revoke it. Unlike OAuth tokens that expire, app-specific passwords remain valid until you delete them from your Apple ID settings.
Q: Can Trix modify my calendar events?
A: No. Trix only requests read-only CalDAV access. It cannot create, update, or delete events. All calendar modifications must be made through Apple's Calendar app or iCloud.com.
Q: Why is there a 15-minute delay?
A: CalDAV doesn't support push notifications like Google/Microsoft APIs. Trix polls for changes every 15 minutes to balance freshness with API usage. This is a limitation of the CalDAV protocol, not Trix.
Q: Can I connect multiple Apple IDs?
A: Yes! Create separate connections for each Apple ID. Useful for work and personal iCloud accounts, or family sharing scenarios.
Q: Does this work with Family Sharing calendars?
A: Yes. Any calendar shared with your Apple ID (including Family Sharing calendars) will appear in the calendar list. You can selectively enable which ones to sync.
Q: What if I change my Apple ID password?
A: App-specific passwords remain valid even if you change your main Apple ID password. However, if you disable 2FA or deactivate your Apple ID, all app-specific passwords are revoked.
Next Steps
- Google Calendar - Compare with Google
- Microsoft Outlook - Compare with Microsoft
- Calendar Overview - See all calendar features
- CLI Reference - Full command reference