Skip to main content

Microsoft Outlook Calendar Integration

Connect your Microsoft Outlook and Office 365 calendar to Trix with Teams integration and enterprise features.

Overview

Microsoft Outlook Calendar integration is ideal for Office 365 users and enterprise environments. It offers Microsoft Teams integration, high rate limits, and automatic webhook renewal.

FeatureDetails
Sync MethodReal-time webhooks (push notifications)
Rate Limit600 requests per minute (10x Google)
Multi-CalendarYes - Primary + shared mailboxes
AuthenticationOAuth 2.0 with PKCE + tenant selection
Webhook Expiry3 days (auto-renewed by Trix)
Teams IntegrationDetects Teams meeting links automatically

Perfect for Enterprise: Microsoft Outlook Calendar supports multi-tenant configurations, shared mailboxes, and integrates seamlessly with Microsoft Teams.

Connecting Microsoft Outlook

Via Dashboard

The easiest way to connect Microsoft Outlook is through the Trix dashboard at app.trixdb.com. Navigate to Settings → Integrations → Microsoft Outlook and follow the OAuth prompts.

Note: Microsoft Calendar is connected via the dashboard or API, not the CLI. The CLI supports trix integrations connect google for Google Calendar.

Understanding Tenant Selection

Microsoft requires you to specify which type of account you're connecting:

OptionTenant IDUse When
Work/School (recommended)commonOffice 365, Azure AD, most users
Personal Accountconsumers@outlook.com, @hotmail.com, @live.com
Specific TenantCustom GUIDEnterprise with specific tenant restrictions

Not sure which to choose?
Start with "Work or School account" - it works for most Office 365 users and can fall back to personal accounts automatically.

Via API

api-connect.sh
# Step 1: Initiate OAuth with tenant
curl -X POST https://api.trixdb.com/v1/integrations/oauth/initiate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "microsoft",
    "tenant": "common",
    "redirect_uri": "http://localhost:8080/callback"
  }'

# Response includes authorization_url
# User grants permission, redirected with code

# Step 2: Complete OAuth
curl -X POST https://api.trixdb.com/v1/integrations/oauth/callback \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "microsoft",
    "code": "AUTHORIZATION_CODE",
    "state": "STATE_FROM_STEP_1"
  }'

# Returns connection_id

Scopes Requested:
• Calendars.Read - Read calendar events
• User.Read - Identify account
• offline_access - Refresh tokens automatically

Managing Calendars

List All Calendars

list-calendars.sh
# API
curl "https://api.trixdb.com/v1/integrations/connections/<connection-id>/calendars" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Example response calendars:
# Calendar (primary) - Syncing
# Team Calendar - Syncing
# Birthdays - Not syncing
# United States holidays - Not syncing

Shared Mailboxes & Calendars

If you have access to shared mailboxes, their calendars will appear in your list:

shared-calendars.sh
# Output includes shared calendars:
# Calendar (primary) - Syncing
# Team Calendar - Syncing
# Sales Team (shared) - Not syncing
# Conference Rooms (shared) - Not syncing

Enable/Disable Specific Calendars

configure-calendars.sh
# 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.com

Microsoft Teams Integration

Automatic Teams Link Detection

Events with Microsoft Teams meetings are automatically detected and enriched with meeting details:

teams-event.json
{
  "id": "evt_abc123",
  "title": "Sprint Planning",
  "start": "2026-01-13T14:00:00Z",
  "end": "2026-01-13T16:00:00Z",
  "isOnlineMeeting": true,
  "onlineMeetingProvider": "teamsForBusiness",
  "onlineMeeting": {
    "joinUrl": "https://teams.microsoft.com/l/meetup-join/...",
    "conferenceId": "123456789",
    "tollNumber": "+1 234-567-8900",
    "tollFreeNumbers": ["+1 800-123-4567"]
  }
}

Teams Meeting Features

  • Join URL - Direct link to join the Teams meeting
  • Dial-in info - Phone numbers for audio-only participants
  • Conference ID - Meeting ID for manual entry
  • Meeting type - Teams, Skype, or other provider

Pre-Meeting Briefings with Teams Context:
When Trix generates pre-meeting briefings, it automatically detects Teams meetings and includes the join link in the email reminder.

Real-Time Webhooks

Microsoft Graph API uses webhooks (called "subscriptions") to notify Trix when calendar events change. Unlike Google's 7-day expiry, Microsoft webhooks expire after 3 days.

Automatic Renewal

Trix automatically renews webhook subscriptions before they expire:

  1. Webhook created with 3-day expiration
  2. Trix checks hourly for expiring subscriptions
  3. Subscriptions renewed 1 hour before expiration
  4. If renewal fails, automatic reconnection attempt
  5. You're notified only if manual intervention needed

Zero Configuration Required!
Webhook renewal is fully automated. The shorter 3-day expiry (vs Google's 7 days) is handled automatically by Trix.

Webhook URL

For self-hosted deployments, Microsoft webhooks are received at:

webhook-url.txt
https://your-api-domain.com/v1/integrations/webhooks/microsoft

Webhook Validation

Microsoft sends a validation request when creating webhooks. Trix automatically responds with the validation token to confirm ownership.

Delta Sync (Incremental Updates)

Microsoft Graph API supports delta queries, allowing Trix to efficiently fetch only changed events since the last sync:

How Delta Sync Works

  1. Initial Sync - Fetch all upcoming events, receive delta token
  2. Store Delta Token - Save token for next sync
  3. Subsequent Syncs - Use delta token to get only changes
  4. Process Changes - Update/create/delete events as needed
  5. Update Token - Store new delta token for next time

Benefits

  • Faster sync (only changed events, not all events)
  • Lower API usage (reduces rate limit risk)
  • Detects deletions (knows when events are removed)
  • Efficient at scale (1000+ events sync in seconds)

Delta sync is automatically used for all Microsoft connections. You don't need to configure anything - Trix handles it transparently.

Enterprise Features

Multi-Tenant Support

Trix supports connecting to multiple Microsoft tenants simultaneously:

multi-tenant.sh
# Connect to work account (Tenant A) via API
curl -X POST https://api.trixdb.com/v1/integrations/oauth/initiate \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "provider": "microsoft", "tenant": "common" }'

# Connect to personal account
# Use tenant: "consumers"

# Connect to specific tenant (Tenant B)
# Use tenant: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"

# Or connect via the dashboard at app.trixdb.com

Shared Mailbox Access

If you have "Full Access" permissions to shared mailboxes, their calendars will automatically appear in your calendar list:

  • Read events from shared calendars
  • Enable/disable sync per shared calendar
  • Differentiate between personal and shared events
  • Respect mailbox permissions (read-only)

Conditional Access Policies

If your organization uses Azure AD Conditional Access policies, Trix respects them:

  • MFA (Multi-Factor Authentication) - Prompted during OAuth
  • IP restrictions - OAuth from allowed IPs only
  • Device compliance - Enforced by Azure AD
  • Session policies - Token refresh respects policies

Corporate Policy Note:
Some organizations restrict third-party app access. If you can't connect, contact your IT admin to allowlist Trix's app registration.

Permissions & Privacy

What Trix Can Access

  • Read calendar events (subject, time, location, attendees, body)
  • List available calendars (including shared)
  • Receive webhook notifications for changes
  • Read Teams meeting details (join links, dial-in)
  • Cannot create or modify events (read-only)
  • Cannot delete events
  • Cannot share calendars or change permissions
  • Cannot access emails or other Outlook data

Revoking Access

You can revoke Trix's access at any time:

Option 1: Via Trix CLI

revoke-cli.sh
# Disconnect and delete all synced data
trix integrations disconnect <connection-id>

Option 2: Via Microsoft Account

  1. Go to account.microsoft.com/privacy/app-access
  2. Find "Trix" in the list of apps
  3. Click "Remove these permissions"

Option 3: Via Azure AD (Enterprise)

  1. Go to Azure Portal → Enterprise Applications
  2. Find "Trix"
  3. Delete the app or remove user assignments

Troubleshooting

Common Issues

ProblemSolution
"AADSTS50020: User account from identity provider does not exist"Wrong tenant selected. Try "common" instead of specific tenant
"Invalid tenant" errorPersonal account selected but using work email (or vice versa)
Shared calendar not appearingEnsure you have "Full Access" permission to the mailbox
Events missing Teams linksCheck event has isOnlineMeeting: true in raw data
"Admin consent required"Your organization requires IT admin approval - contact them
Webhook stopped workingTry manual sync: trix integrations sync

Tenant Selection Guide

If you're unsure which tenant option to choose:

tenant-guide.txt
# Check your email domain
# @company.com, @university.edu -> Work/School (common)
# @outlook.com, @hotmail.com -> Personal (consumers)
# Custom tenant ID -> Ask your IT admin

# Still not sure? Try this order:
1. Work or School account (most common)
2. Personal Microsoft account (consumers) - if #1 fails
3. Specific tenant ID - only if IT admin requires it

Get Detailed Diagnostics

troubleshoot.sh
# Run built-in troubleshooter
trix integrations troubleshoot microsoft

# Output:
# OAuth token valid (expires in 5342 minutes)
# Tenant: common (work/school)
# Webhook subscription active (renews in 2 days, 4 hours)
# Delta sync enabled (token: present)
# Last sync: 5 minutes ago (success)
# Rate limit: 45/600 requests used
# Teams integration: active (3 meetings detected)
#
# Connection healthy!

Rate Limits

Microsoft Graph API has generous rate limits - 600 requests per minute (10x higher than Google). Trix optimizes API usage with:

  • Delta sync - Only fetch changed events, not all events
  • Webhook-first - Minimizes polling via push notifications
  • Smart batching - Multiple calendars in parallel requests
  • Exponential backoff - Graceful retry on throttling
  • Request tracking - Monitors usage to stay under limits

With 600 requests per minute, even power users with 50+ calendars and thousands of events will never hit the limit. Microsoft's infrastructure is built for enterprise scale.

Throttling Behavior

If Trix receives a 429 (Too Many Requests) response:

  1. Read Retry-After header from response
  2. Wait specified duration (typically 1-30 seconds)
  3. Retry the request automatically
  4. Exponential backoff if throttling continues
  5. Automatic backoff after consecutive failures

Comparison: Outlook vs Google Calendar

FeatureMicrosoft OutlookGoogle Calendar
Rate Limit600 req/min (higher)60 req/min
Webhook Expiry3 days (shorter)7 days (longer)
Delta SyncYes (efficient)No (full scan)
Teams IntegrationNativeMeet (separate)
Shared CalendarsFull mailbox supportShared calendars
Enterprise FeaturesMulti-tenant, CAPBasic
Setup ComplexityMedium (tenant selection)Easy

When to Choose Outlook

  • You use Office 365 or Microsoft 365
  • You have Microsoft Teams meetings
  • You need shared mailbox calendars
  • You work in an enterprise with Azure AD
  • You have 10+ calendars or 1000+ events

When to Choose Google

  • You primarily use Google Workspace
  • You want simpler setup (no tenant selection)
  • You use Google Meet for video calls
  • You prefer Google's ecosystem

Why Not Both?
Many users connect both Google and Microsoft calendars to get a unified view of work and personal events. Trix supports unlimited connections!

Next Steps