Free/Busy & Contacts

Check availability across calendars and find events involving specific contacts.

GET/api/access/calendar/freebusyBearer Token

Get Free/Busy

Returns free/busy periods for calendars within a time range.

Query Parameters

ParameterTypeRequiredDescription
fromDateTimeOffsetYesStart of time range
toDateTimeOffsetYesEnd of time range
calendarsstringNoComma-separated calendar IDs to check

Examples

GET /freebusy?from=2026-02-05T00:00:00Z&to=2026-02-12T00:00:00Z
GET /freebusy?from=2026-02-05T00:00:00-06:00&to=2026-02-12T00:00:00-06:00&calendars=123,456

Response 200 OK

{
"calendars": [
{
"calendarId": 123,
"calendarName": "Team Calendar",
"busy": [
{
"startUtc": "2026-02-05T14:00:00Z",
"endUtc": "2026-02-05T15:00:00Z",
"durationMinutes": 60
}
],
"free": [
{
"startUtc": "2026-02-05T09:00:00Z",
"endUtc": "2026-02-05T14:00:00Z",
"durationMinutes": 300
}
]
}
],
"accessInfo": "Results limited to time window: Last 30 days to next 30 days."
}

FreeBusy Calendar Object

FieldTypeDescription
calendarIdlongCalendar ID
calendarNamestringCalendar display name
busyTimePeriod[]List of busy time periods
freeTimePeriod[]List of free time periods

TimePeriod Object

FieldTypeDescription
startUtcDateTimePeriod start in UTC
endUtcDateTimePeriod end in UTC
durationMinutesintDuration in minutes
GET/api/access/calendar/events/by-contactBearer Token

Get Events by Contact

Returns events involving a specific contact, searchable by email or name with partial matching.

Query Parameters

ParameterTypeRequiredDescription
emailstringNo*Attendee email (partial match supported)
namestringNo*Attendee name (partial match supported)
limitintNoMax results (1–1000, default: 50)
offsetintNoSkip N results for pagination (default: 0)

*At least one of email or name is required.

Examples

GET /events/by-contact?email=john@example.com
GET /events/by-contact?email=@acme.com&limit=20
GET /events/by-contact?name=John&offset=50
GET /events/by-contact?email=@acme.com&name=Smith

Response 200 OK

{
"events": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Meeting with John",
"startUtc": "2026-02-05T14:00:00Z",
"endUtc": "2026-02-05T15:00:00Z",
"attendees": [
{
"email": "john@example.com",
"name": "John Doe",
"response": "accepted"
}
]
}
],
"accessInfo": "Results limited to time window: Last 30 days to next 30 days.",
"currentUserCalendarEmail": "user@example.com"
}