Users should not be able to share their calendars with people outside the organization
This check looks at whether Microsoft 365 lets users publish or share calendars with external people through Exchange Online sharing policies. The safe setting is to turn external calendar sharing off.
Why it matters
Calendars show who meets whom, where people are and when they are away. Microsoft Learn states that if you change nothing, all users can invite anyone with an email address to view their calendar. A single shared calendar can therefore expose project names, customer visits, travel and out-of-office periods to outsiders, and the sharing happens at user level without an admin in the loop.
Exchange Online sharing policies control this. A policy lists the domains users may share with and the level of detail: free/busy time only, time with subject and location, or time with subject, location and title. An admin can also disable a user's sharing policy to prevent external access to calendars.
Source: Sharing policies in Exchange Online, Microsoft Learn.
How to check it yourself
In the Microsoft 365 admin center, go to Settings, then Org settings, then Services and Calendar. The option that lets users share calendars with people outside the organization should be off.
With Exchange Online PowerShell, this read-only command lists the sharing policies and the domains they allow:
Connect-ExchangeOnline -ShowBanner:$false
Get-SharingPolicy | Format-List Name, Enabled, Default, DomainsA policy whose Domains value contains an entry such as Anyone:CalendarSharingFreeBusySimple allows external sharing. Also run Get-Mailbox -ResultSize 10 | Format-Table Name, SharingPolicy on a test set to see which policy is applied to mailboxes.
How to fix it
In the admin center, open Settings, Org settings, Calendar and clear the option that allows sharing with external users, then save. Alternatively, restrict the sharing policy itself from PowerShell (review it, then run it yourself; ConfigCobra never changes your tenant):
Set-SharingPolicy -Identity "Default Sharing Policy" `
-Domains @{Remove="Anyone:CalendarSharingFreeBusySimple"}Remove each external entry that Get-SharingPolicy showed. If you want to keep sharing with a few partner domains, replace the wildcard with the named domains instead of removing everything.
What changes when you fix it
Users can no longer send calendar invitations or publish links that give outsiders a view of their calendar. Calendars already shared externally may stop being visible to the recipients, so tell people who rely on them, such as executives who share availability with an outside assistant, before you switch it off.
Normal meeting invitations to external attendees still work; only calendar sharing and publishing are restricted. Collect the list of domains that have a business need first, so exceptions can be added back deliberately.
Included in
| Benchmark | CIS ID | Profile |
|---|---|---|
| CIS Microsoft 365 Foundations v7.0.0 | 1.3.3 | E3 Level 2 |
More checks in Microsoft 365 admin center
- The password expiration policy should be set to never expireCIS 1.3.1
- Idle session timeout for unmanaged devices should be three hours or lessCIS 1.3.2
- Administrative accounts should be cloud-only, not synced from on-premisesCIS 1.1.1
- Two emergency access accounts have been definedCIS 1.1.2
- The number of Global Administrators should be between two and fourCIS 1.1.3
Go further
- Microsoft 365 admin center15 controls in this section
- CIS Microsoft 365 Foundations v7.0.0160 controls
- CIS Microsoft 365 Foundations checklistEvery control in one list, as CSV
- RemediationSee what a fix changes in your tenant before you apply it, then use the generated script
- Monitoring & DriftScheduled scans, drift detection and email alerts when a control regresses
Check this on your Microsoft 365
ConfigCobra runs this check with every other control of the CIS Microsoft 365 Foundations Benchmark, read-only.