Skip to main content

🚀 Quickstart

Connect to Apple Calendar with Nango and see data flow in 2 minutes.
1

Create the integration

In Nango (free signup), go to Integrations -> Configure New Integration -> Apple Calendar.
2

Connect Apple Calendar

Go to Connections -> Add Test Connection -> Connect, then enter your Apple ID and an app-specific password. Later, you’ll let your users do the same directly from your app.
3

Call the Apple Calendar API

Apple Calendar uses CalDAV, which relies on the WebDAV PROPFIND/REPORT HTTP methods instead of GET/POST. Let’s make your first request — finding the current user’s principal URL. Replace the placeholders below with your Environment API key, integration ID, and connection ID:
A successful response is a 207 Multi-Status containing XML with an href like /123456789/principal/ — that numeric ID is the user’s principal, used in further CalDAV requests (e.g. to list calendars or query events).Or fetch credentials with the Node SDK or API.✅ You’re connected! Check the Logs tab in Nango to inspect requests.
4

Implement Nango in your app

Follow our Auth implementation guide to integrate Nango in your app.To obtain your own production credentials, follow the connect guide linked below.

📚 Apple Calendar Integration Guides

Nango maintained guides for common use cases. Official docs: Apple CalDAV and CardDAV Guide

API gotchas

  • Apple Calendar (iCloud) uses CalDAV, a WebDAV-based protocol over HTTPS — not a typical REST API. Meaningful requests use the PROPFIND and REPORT HTTP methods (not GET/POST), and always require an XML request body describing which properties or events you’re asking for.
  • Regular Apple ID passwords do not work for CalDAV. You must generate an app-specific password at appleid.apple.com — see the connect guide for the exact steps.
  • Managed Apple IDs (work/school accounts) may not support app-specific passwords, which would block CalDAV access entirely.

🧩 Pre-built syncs & actions for Apple Calendar

Enable them in your dashboard. Extend and customize to fit your needs. No pre-built syncs or actions available yet.
Not seeing the integration you need? Build your own independently.