Calendar API Integration: Real-Time Events, Free/Busy, Scheduling Links & Meeting Recordings Across Platforms
February 12, 2026
Calendar systems sit at the center of how teams coordinate time.
Meetings are created, rescheduled, canceled, converted into webinars, enriched with video links, and sometimes recorded with transcripts. Availability shifts constantly as new events are added. Recurring series split, single instances are edited, and conference links are regenerated.
When calendar data is stitched together with batch sync jobs or cached replicas, availability drifts, deleted events linger, and meeting links break.
Calendar API integration exists to solve this problem.
In this guide, we'll define exactly what the Unified Calendar API covers, how its objects behave in practice, how real-time updates are delivered, how recurrence and deletions work across providers, and how the Calendar category differs from Messaging, Call Center, KMS, Storage, CRM, and GenAI.
What Is the Unified Calendar API?
The Unified Calendar API provides a normalized interface for accessing scheduling data across providers such as:
- Google Calendar
- Microsoft Outlook / Office 365
- Apple iCloud
- Calendly
- Cal.com
- Acuity Scheduling
- Zoom (meetings & webinars)
- Google Meet
- GoTo
- Dialpad
- Fathom
- Fireflies
- and more
Instead of building separate integrations for each platform, you use one API surface to:
- List calendars
- Create, update, and delete events
- Check free/busy availability
- Generate scheduling links
- Retrieve meeting recordings and transcripts
- Create and manage webinars
Every request is real-time and pass-through. Unified does not cache or store calendar data. Calls are executed directly against the source platform, and results are returned immediately.
There is no replica database. No background sync jobs. No stale state.
Core Calendar Data Objects
The Unified Calendar API standardizes six primary objects.
1. Calendar
Represents a calendar container (e.g., a Google calendar or Outlook calendar).
Key fields
idcreated_atupdated_atnametimezoneis_primary
Methods
- Create
- List
- Retrieve
- Update
- Remove
Calendars group events. They do not link to CRM contacts, tickets, storage files, repository objects, or GenAI artifacts.
2. Event
Represents a scheduled meeting or appointment.
Key fields
idcalendar_idsubjectstart_atend_attimezonestatus(CONFIRMED / TENTATIVE / CANCELED)organizerattendeesrecurring_event_idrecurrencehas_conferenceconferenceattachmentsweb_urlsend_notifications
Methods
- Create
- List
- Retrieve
- Update
- Remove
Events support:
- Single meetings
- Recurring series
- Single-instance edits
- Conference link generation (Google Meet, Teams, etc.)
Organizer and attendee objects contain names and emails only. They are not CRM contacts and do not reference HR, Ticketing, or other Unified categories.
3. Busy (Free/Busy)
Represents blocks of unavailable time.
Key fields
idstart_atend_attimezonedescription
Methods
- List only
Busy objects are derived from provider free/busy endpoints. They cannot be created or modified.
There is no separate 'FreeBusy' object — Busy is the normalized representation.
4. Link (Scheduling Link)
Represents booking links (e.g., Calendly or Cal.com links).
Key fields
idnameurldurationis_activeprice_amountprice_currency
Methods
- Create
- List
- Retrieve
- Update
- Remove
A Link defines availability rules and booking metadata.
It does not represent an actual meeting. An Event is only created after someone books through the link.
5. Recording
Represents metadata about a meeting recording.
Key fields
idevent_idstart_atend_atexpires_atweb_urlmedia(recording + transcript descriptors)
Methods
- List
- Retrieve
Recordings are read-only. Unified does not store audio, video, or transcript files. It returns metadata and provider-hosted URLs.
There is no cross-link to Call Center recordings.
6. Webinar
Represents webinar sessions (e.g., Zoom Webinars).
Key fields
idcalendar_idsubjectstart_atend_atstatusjoin_urlpanelistsregistrantsrecurrencecapacityhas_recording
Methods
- Create
- List
- Retrieve
- Update
- Remove
Webinars differ from events in structure and scale. They include panelists, registrants, registration requirements, and optional Q&A/polling features.
They do not reference CRM contacts or storage files.
Recurrence & Instance Behavior
Recurring events are handled differently by each provider, but Unified normalizes the structure.
Google Calendar
recurringEventIdlinks instances to the series masteroriginalStartTimeidentifies an occurrence- Updating one instance requires patching the instance ID
- Updating 'this and following' requires splitting the series
Canceled events return minimal stubs and eventually disappear.
Microsoft Graph (Outlook)
- Series master and occurrence objects are separate
seriesMasterIdlinks occurrences to the master- Deletions appear as
@removedentries in delta queries - Single-instance edits may not trigger distinct notifications
Developers must reconcile instance changes carefully.
Zoom Meetings
- Recurrence is defined at creation
- Occurrences are referenced by
occurrence_id - Deleting one occurrence requires passing
occurrence_id - Meeting IDs expire (30 days for non-recurring, 365 days for recurring)
Zoom does not expose a 'completed' meeting state via API.
Real-Time Updates: Native vs Virtual Webhooks
Calendar systems differ widely in event delivery support.
Native Webhooks
Available for:
- Google Calendar (
events.watch) - Microsoft Graph change notifications
- Zoom meeting/webinar events
- Calendly invitee events
- Cal.com booking lifecycle events
Native webhooks deliver:
- Created
- Updated
- Deleted
- Started / Ended (Zoom, Cal.com)
- Recording completed
These are true push events from the provider.
Virtual Webhooks (Polling)
Used when providers lack push notifications.
Unified polls:
- Event lists (using
updatedMin, delta tokens, etc.) - Free/busy endpoints
- Booking endpoints
- Support created and updated events
- Do not emit deletion events unless provider supports them
- Respect rate limits
- Can be configured by interval
Deletion detection often requires full list reconciliation.
Identity & Cross-Category Isolation
Calendar objects are isolated from other Unified categories.
There are:
- No CRM contact IDs
- No Ticketing IDs
- No StorageFile references
- No Repository IDs
- No GenAI model references
Organizer and attendee objects contain:
nameemail
They are not linked to CRM or HR records.
Recording objects include:
event_id- provider-hosted URLs
They are not Storage API objects.
Unified may transform provider IDs internally. If the exact upstream identifier is needed, it is available in raw.__id.
The combination of connection_id + id uniquely identifies a calendar object.
Security & Data Handling
Unified operates under a zero-storage model.
What that means
- No calendar data is stored at rest
- No event bodies are written to logs
- No transcripts are cached
- No meeting media is stored
- No attendee data is persisted
All requests are:
- Encrypted in transit (TLS 1.2+)
- Operational metadata encrypted at rest (AES-256)
- Scoped to region (US / EU / AU)
- Executed in memory only
Customers may use:
- SAML / OIDC SSO
- IP allow-listing
- Environment-scoped API keys
- Bring-your-own secrets vault
Unified is SOC 2 Type II certified and positions itself for GDPR, CCPA/CPRA, HIPAA and PIPEDA alignment.
FAQ
What's the difference between Free/Busy and Events?
Busy returns minimal availability blocks. Event returns full meeting objects. Busy is read-only. Events support full lifecycle management.
How does a booking link differ from an event?
A Link defines availability rules and a shareable booking URL. An Event represents a confirmed meeting. A booking link does not create an event until someone selects a time.
How is a webinar different from an event?
Events are typically interactive meetings. Webinars are broadcast-oriented sessions with registrants and panelists. Webinars include join URLs, passwords, capacity controls, and optional Q&A/polls.
Does Unified store recordings or transcripts?
No. Recording objects return metadata and provider URLs only. Media remains hosted by the meeting provider.
Can I sync Google and Outlook calendars?
Yes. Unified normalizes both platforms. You can:
- List events
- Create events
- Update events
- Delete events
- Subscribe to changes
Across both providers using one schema.
Can I feed meeting transcripts into AI?
Yes. Use the Calendar Recording object to retrieve transcript metadata, then send transcript text into the GenAI API for summarization or embedding. Calendar does not run inference itself.
Build Scheduling Features Without Owning Calendar Complexity
Calendar systems are deceptively complex:
- Recurring instance edits
- Conference link immutability
- Deletion semantics
- Provider-specific lifecycle states
- Recording retention policies
- Busy polling vs push updates
Unified abstracts this into:
- One event model
- One free/busy object
- One recording object
- One webhook interface
All real-time. All pass-through. No storage layer.
If your product needs:
- Cross-platform scheduling
- Real-time availability checks
- Calendar sync
- Booking links
- Meeting recording retrieval
- Webinar creation
- Or AI-powered meeting workflows
You can build it once.