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.
| Feature | Details |
|---|---|
| Sync Method | Real-time webhooks (push notifications) |
| Rate Limit | 600 requests per minute (10x Google) |
| Multi-Calendar | Yes - Primary + shared mailboxes |
| Authentication | OAuth 2.0 with PKCE + tenant selection |
| Webhook Expiry | 3 days (auto-renewed by Trix) |
| Teams Integration | Detects 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:
| Option | Tenant ID | Use When |
|---|---|---|
| Work/School (recommended) | common | Office 365, Azure AD, most users |
| Personal Account | consumers | @outlook.com, @hotmail.com, @live.com |
| Specific Tenant | Custom GUID | Enterprise 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
# 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_idScopes Requested:
• Calendars.Read - Read calendar events
• User.Read - Identify account
• offline_access - Refresh tokens automatically
Managing Calendars
List All Calendars
# 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 syncingShared Mailboxes & Calendars
If you have access to shared mailboxes, their calendars will appear in your list:
# Output includes shared calendars:
# Calendar (primary) - Syncing
# Team Calendar - Syncing
# Sales Team (shared) - Not syncing
# Conference Rooms (shared) - Not syncingEnable/Disable Specific Calendars
# 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.comMicrosoft Teams Integration
Automatic Teams Link Detection
Events with Microsoft Teams meetings are automatically detected and enriched with meeting details:
{
"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:
- Webhook created with 3-day expiration
- Trix checks hourly for expiring subscriptions
- Subscriptions renewed 1 hour before expiration
- If renewal fails, automatic reconnection attempt
- 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:
https://your-api-domain.com/v1/integrations/webhooks/microsoftWebhook 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
- Initial Sync - Fetch all upcoming events, receive delta token
- Store Delta Token - Save token for next sync
- Subsequent Syncs - Use delta token to get only changes
- Process Changes - Update/create/delete events as needed
- 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:
# 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.comShared 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
# Disconnect and delete all synced data
trix integrations disconnect <connection-id>Option 2: Via Microsoft Account
- Go to account.microsoft.com/privacy/app-access
- Find "Trix" in the list of apps
- Click "Remove these permissions"
Option 3: Via Azure AD (Enterprise)
- Go to Azure Portal → Enterprise Applications
- Find "Trix"
- Delete the app or remove user assignments
Troubleshooting
Common Issues
| Problem | Solution |
|---|---|
| "AADSTS50020: User account from identity provider does not exist" | Wrong tenant selected. Try "common" instead of specific tenant |
| "Invalid tenant" error | Personal account selected but using work email (or vice versa) |
| Shared calendar not appearing | Ensure you have "Full Access" permission to the mailbox |
| Events missing Teams links | Check event has isOnlineMeeting: true in raw data |
| "Admin consent required" | Your organization requires IT admin approval - contact them |
| Webhook stopped working | Try manual sync: trix integrations sync |
Tenant Selection Guide
If you're unsure which tenant option to choose:
# 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 itGet Detailed Diagnostics
# 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:
- Read
Retry-Afterheader from response - Wait specified duration (typically 1-30 seconds)
- Retry the request automatically
- Exponential backoff if throttling continues
- Automatic backoff after consecutive failures
Comparison: Outlook vs Google Calendar
| Feature | Microsoft Outlook | Google Calendar |
|---|---|---|
| Rate Limit | 600 req/min (higher) | 60 req/min |
| Webhook Expiry | 3 days (shorter) | 7 days (longer) |
| Delta Sync | Yes (efficient) | No (full scan) |
| Teams Integration | Native | Meet (separate) |
| Shared Calendars | Full mailbox support | Shared calendars |
| Enterprise Features | Multi-tenant, CAP | Basic |
| Setup Complexity | Medium (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
- Apple iCloud Calendar - Connect iCloud calendar
- Google Calendar - Compare with Google
- Calendar Overview - See all calendar features
- CLI Reference - Full command reference