Overview
The Microsoft Teams Calendar Integration monitoring test appears in the Microsoft Teams section of the Office 365, ECLOUD-INTERNET and Remote Probe monitoring nodes.
Monitoring Benefit
The Microsoft Teams Calendar Integration test verifies the dependency chain between Teams and Exchange Online: it creates a calendar event for the synthetic user with Teams meeting capability enabled, confirms that a Teams join URL was returned, retrieves the event, and then deletes it. A pass proves that a Teams meeting can actually be created through the Exchange calendar, not merely that both services are reachable.
Teams meeting problems are frequently Exchange problems. A user reports that a meeting will not create, when the real fault is mailbox access, calendar availability, Graph permissions or Exchange Online degradation. This test isolates which.
The test creates and then removes a temporary event on every run. The event uses a short unique subject and a near-future window so it is easy to identify and does not surface to anyone as a real invitation. Cleanup runs on every path where an event was created, including runs that failed later, so no orphaned events are left behind.
How do we verify the monitoring test results?
1. Confirm the monitoring credential is valid.
For the Office 365 and ECLOUD-INTERNET monitoring tests, navigate to Server > Tuning Policy > Settings > Office 365 > Microsoft Teams > Microsoft Teams User > Verify Credential.
For the Remote Probe monitoring tests, navigate to Server > Tuning Policy > Settings > Probe Configuration > Configure Probes… > Default Office 365 Settings > Microsoft Teams > Verify Credential.
2. Confirm the mailbox scoping policy still covers the synthetic account.
The application's mailbox reach is deliberately restricted by an Exchange Online Application Access Policy so that Calendars.ReadWrite does not grant tenant-wide mailbox access. If the synthetic account has been moved out of the mail-enabled security group that policy names, calendar calls will begin returning 403 even though nothing about the application changed.
3. Reproduce the meeting creation manually.
POST https://graph.microsoft.com/v1.0/users/{synthetic user}/events
{
"subject": "Manual calendar integration check",
"start": { "dateTime": "{now+5min}", "timeZone": "UTC" },
"end": { "dateTime": "{now+35min}", "timeZone": "UTC" },
"isOnlineMeeting": true,
"onlineMeetingProvider": "teamsForBusiness"
}
A healthy result is HTTP 201 with an event id and a populated onlineMeeting.joinUrl pointing at teams.microsoft.com. Delete the event afterwards with DELETE https://graph.microsoft.com/v1.0/users/{synthetic user}/events/{id}, which should return 204.
Prerequisites
This test authenticates through an enterprise application registered in Microsoft Entra ID, acquiring a token from login.microsoftonline.com and calling Microsoft Graph at graph.microsoft.com.
The enterprise application requires the Microsoft Graph application permission Calendars.ReadWrite, admin-consented in the tenant.
The synthetic user needs a Teams licence, a provisioned Exchange Online mailbox with calendar access, and exclusion from any Conditional Access policy that would block non-interactive access for the application.
The application's mailbox reach should be restricted by an Exchange Online Application Access Policy, so that Calendars.ReadWrite grants access to the synthetic mailbox only rather than every mailbox in the tenant.
Common warning or error results, and potential solutions
| Result | Potential solution |
| Authentication failure | Token acquisition failed or Graph returned 401. Re-run Verify Credential. Confirm the client secret or certificate has not expired. |
| Calendar access failure | Graph returned 403 on the events endpoint. Either admin consent for Calendars.ReadWrite is missing, or the Exchange Application Access Policy no longer covers this mailbox. |
| Mailbox unavailable | Graph returned 404, or reported the mailbox as not provisioned. Confirm the synthetic user still has an Exchange Online mailbox and a valid licence. |
| Event creation failure | The create call did not return 201, or returned 201 without an event ID. Review the recorded Graph error code. |
| Teams meeting URL not generated | The calendar event was created but no Teams join URL came back. This is the key integration signal — the calendar is working and Teams meeting generation is not. Confirm the synthetic user holds a Teams licence and that Teams meeting creation is permitted by Teams policy for that user. |
| Event retrieval failure | The event was created but could not be read back. Confirm Exchange Online is not reporting a service issue for the mailbox. |
| Event cleanup failure | The delete call did not return 204. By default this is reported as a warning rather than a failure, because the integration itself proved out. The orphaned event ID is recorded and removed on the next run's sweep. |
| Graph throttling | Graph returned 429. The test honours Retry-After and retries before reporting. |
| Timeout | A call exceeded the per-call timeout with no response. Check outbound connectivity from the monitoring node. |
| Unknown error | A failure outside the categories above. Review the recorded HTTP status and Graph error code. |
How this test differs from Teams Exchange Integration
Both tests touch Exchange Online, and they are meant to be read together:
- Teams Exchange Integration is the read-only floor. It confirms the mailbox exists, its settings are readable and the calendar can be read. It creates nothing.
- Teams Calendar Integration (this test) is the full write path. It creates a real calendar-backed Teams meeting and checks that a join URL comes back.
If both fail, the fault is in the Exchange dependency. If Exchange Integration passes and Calendar Integration fails, the mailbox is healthy and the fault is in Teams meeting creation.
Related monitoring tests
- Microsoft Teams - Exchange Integration — the read-only dependency check described above.
- Microsoft Teams - Online Meeting — creates a Teams meeting without a calendar event, isolating the Teams meeting service from Exchange entirely.
Comments
0 comments
Please sign in to leave a comment.