---
title: Outlook Calendar API Integration on Truto
slug: outlookcalendar
category: Scheduling
canonical: "https://truto.one/integrations/detail/outlookcalendar/"
---

# Outlook Calendar API Integration on Truto



**Category:** Scheduling  
**Status:** Generally available

## Unified APIs

### Unified User Directory API

- **Me** — 
- **Users** — The User object represents a User.

### Unified Calendar API

- **Attachments** — Represents an attachment associated with an event.
- **Availability** — Represents the availability of a person in a time period.
- **Calendars** — Represents a calendar of a user. Can have multiple events associated with it.
- **Contacts** — 
- **Events** — Events are the time-bound tasks that are associated with a calendar.
- **Users** — The User object represents a User.

## MCP-ready AI tools

Truto exposes 15 tools for Outlook Calendar that AI agents can call directly.

- **list_all_outlookcalendar_me** — Retrieves the profile information of the currently authenticated user, including their ID, name, email, and userPrincipalName
- **list_all_outlookcalendar_calendars** — List calendars for a user in Outlook Calendar. Returns id, name, color, canShare, canViewPrivateItems, canEdit, defaultOnlineMeetingProvider, isTallyingResponses, isRemovable, and owner details.
- **get_single_outlookcalendar_calendar_by_id** — Get calendar properties and relationships for a specific calendar by id in Outlook Calendar. Returns fields including id, name, color, isDefaultCalendar, canShare, canViewPrivateItems, canEdit, owner, and online meeting provider details.
- **list_all_outlookcalendar_events** — List events in the user's mailbox in Outlook Calendar. Returns event id, subject, body (HTML), bodyPreview, organizer, attendees, start and end times with time zone, and location.
- **get_single_outlookcalendar_event_by_id** — Get event details by id in Outlook Calendar. Returns subject, body (HTML), bodyPreview, organizer, attendees, start and end times, location, and hideAttendees status.
- **create_a_outlookcalendar_event** — Create an event in the specified user's calendar in Outlook Calendar.  Returns the created event with fields like id, subject, start, end, location, attendees, and online meeting info if enabled.
- **update_a_outlookcalendar_event_by_id** — Update properties of an event by id in Outlook Calendar. Returns updated event including originalStartTimeZone, originalEndTimeZone, responseStatus, recurrence, reminderMinutesBeforeStart, isOnlineMeeting, onlineMeetingProvider, isReminderOn, hideAttendees, categories, and onlineMeeting details.
- **delete_a_outlookcalendar_event_by_id** — Delete event with id from the calendar in Outlook Calendar. If the event is a meeting, deleting it sends a cancellation to attendees. Returns 204 No Content on success.
- **list_all_outlookcalendar_attachments** — Retrieve attachments from a Google Calendar event. You must specify event_id and user_id query parameters to select the event to which attachments belong and the user who owns the event. The response includes details for each attachment, such as the attachment’s name, Base64-encoded file content (contentBytes), MIME type (contentType), and the timestamp of its last modification (lastModifiedDateTime).
- **list_all_outlookcalendar_event_instances** — Get instances of an event by id within a specified time range using Outlook Calendar. Returns fields: subject, bodyPreview, seriesMasterId, type, recurrence, start, and end.
- **list_all_outlookcalendar_free_busy** — Get free/busy availability information for users, distribution lists, or resources for a specified time period in Outlook Calendar. Requires id, schedules, startTime, and endTime. Returns scheduleId, availabilityView, scheduleItems, and workingHours.
- **list_all_outlookcalendar_people** — Get a collection of person objects relevant to the user identified by id in Outlook Calendar. Returns fields such as id, displayName, jobTitle, department, officeLocation, userPrincipalName, scoredEmailAddresses, phones, and personType.
- **list_all_outlookcalendar_service_pricipals** — Get a list of servicePrincipal objects in Outlook Calendar. Returns fields including accountEnabled, displayName, servicePrincipalType, and signInAudience.
- **get_single_outlookcalendar_oauth_permission_by_id** — Get a delegated permission grant by id in Outlook Calendar. Returns clientId, consentType, id, principalId, resourceId, and scope fields representing the granted permissions and related entities.
- **list_all_outlookcalendar_calendar_view** — Get the occurrences, exceptions, and single instances of events in a calendar view for user id in Outlook Calendar. Requires start_date_time and end_date_time. Returns event fields including originalStartTimeZone, originalEndTimeZone, responseStatus, iCalUId, reminderMinutesBeforeStart, and isReminderOn.

## How it works

1. **Link your customer's Outlook Calendar account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Outlook Calendar.** The Proxy API is a 1-to-1 mapping of the Outlook Calendar API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Automate interview scheduling across panels** — ATS and recruiting platforms can query free/busy availability for multiple interviewers simultaneously, then create calendar events with Teams links — eliminating the back-and-forth email chains that slow down hiring pipelines.
- **Sync meeting activity into your CRM automatically** — Sales engagement and CRM platforms can read calendar events, match attendee emails against contact records, and auto-log completed meetings — saving reps from manual data entry and ensuring pipeline accuracy.
- **Power scheduling links with real-time availability** — Scheduling and booking tools can query Outlook Calendar's free/busy data to present accurate available time slots to external parties, preventing double-bookings without needing to read sensitive meeting details.
- **Push appointments to provider calendars from a booking portal** — Healthcare, legal, and professional services platforms can create events directly on a practitioner's Outlook Calendar when a client books through their portal, keeping the provider's schedule in sync without context switching.
- **Trigger automations from upcoming calendar events** — AI notetakers, meeting prep tools, and workflow automation platforms can poll for upcoming events, detect online meeting links, and trigger actions like bot joins, briefing doc generation, or follow-up task creation.

## What you can build

- **Smart panel availability finder** — Query free/busy schedules for multiple participants at once using the free_busy endpoint and surface overlapping open slots in your product's scheduling UI.
- **Bi-directional event sync with conflict detection** — List, create, update, and delete Outlook Calendar events from your app, keeping your internal schedule and the user's Outlook Calendar in lockstep.
- **One-click meeting creation with Teams links** — Create calendar events that automatically generate Microsoft Teams conferencing details, so your users never have to manually copy-paste join URLs.
- **Recurring event expansion and instance management** — Use the calendar view and event instances endpoints to expand complex recurrence rules into individual occurrences, making it easy to display, modify, or cancel specific instances.
- **Meeting attachment extraction pipeline** — Pull attachments from calendar events — like candidate resumes, SOWs, or agendas — directly into your app's document management system for automated processing.
- **Contact and people directory lookup** — Use the people endpoint to resolve attendee identities and enrich meeting context with organizational data from the user's Microsoft directory.

## FAQs

### What authentication method does the Outlook Calendar integration use?

The integration uses OAuth 2.0 via Microsoft identity platform. Truto handles the full OAuth flow, token refresh, and consent management so you don't need to manage Microsoft app registrations or token lifecycle yourself.

### Can I read free/busy availability without accessing full event details?

Yes. The list_all_outlookcalendar_free_busy endpoint returns availability status and working hours for one or more users within a time window, without exposing sensitive meeting subjects or attendee lists.

### How does the integration handle recurring events?

You have two options: use list_all_outlookcalendar_calendar_view to get expanded single instances within a date range, or use list_all_outlookcalendar_event_instances to expand a specific recurring series. Both approaches let you avoid parsing iCal recurrence rules yourself.

### Which Unified APIs does this integration support?

Outlook Calendar maps to Truto's Unified Calendar API (covering Events, Calendars, Attachments, Availability, Contacts, and Users) and the Unified User Directory API (Me, Users). This means you can write integration logic once and support other calendar providers with the same code.

### Can I create, update, and delete events — or is this read-only?

Full CRUD is supported. You can create events (with optional Teams meeting links), update existing events by ID, and delete events by ID, in addition to listing and reading them.

### Does Truto handle pagination and rate limiting for Microsoft Graph?

Yes. Truto manages pagination across list endpoints and handles Microsoft Graph's throttling responses transparently, so your application receives complete result sets without needing retry logic.
