Key takeaway: Calendar sharing in Exchange Online is really five separate systems: default free/busy inside the organization, per-calendar permissions, delegate access, shared calendars owned by shared mailboxes, groups, or rooms, and external sharing governed by sharing policies and organization relationships. Knowing which one you are using decides who sees what, how much detail leaks, whether outsiders can book you, and why a meeting you invited someone to shows "no information" for them. This guide covers all five, the PowerShell, room and resource booking, hybrid considerations, privacy, and the problems that waste the most time.

Scheduling across a team without seeing availability turns into email ping-pong. Exchange Online solves that, but only when calendars are shared at the right level, in the right way, for the right audience.

What Is Visible by Default

Inside the organization, each user's calendar has a Default permission. In a standard tenant it is availability only (free/busy). Colleagues see when someone is busy, tentative, free, out of office, or working elsewhere, but not the subject, location, or attendees. That is enough for the Scheduling Assistant to suggest times.

Inspect it:

Get-MailboxFolderPermission -Identity "jsmith@contoso.com:\Calendar"

Entries to read:

Organization-wide settings that change this live in Get-OrganizationConfig, and per-user defaults can differ when a calendar was shared earlier or created in another system.

Permission Levels

LevelWhat the person sees or can do
AvailabilityOnlyFree/busy times only
LimitedDetailsFree/busy plus subject and location
ReviewerFull details of items, read only
ContributorCreate items only
AuthorCreate items, edit and delete their own
EditorCreate, edit, delete all items
PublishingEditorEditor plus create subfolders
OwnerEverything, including changing permissions
Delegate flagReceives meeting requests and responses on the owner's behalf

Choose the least that fits the purpose. Showing subjects to everyone is common in small teams and a problem in organizations where titles are sensitive ("Meeting with lawyer," "Interview, candidate X").

How Users Schedule Across Teams

  1. Create a new meeting in Outlook.
  2. Add attendees, and open Scheduling Assistant.
  3. Read the availability grid. Use AutoPick or the suggested times.
  4. Add a room or equipment.
  5. Add a Teams link (Teams Meeting button) and send.

Tips that save time:

Show More Detail Across the Organization

To let all colleagues see subject and location:

Set-MailboxFolderPermission -Identity "jsmith@contoso.com:\Calendar" -User Default -AccessRights LimitedDetails

To apply it to every user mailbox:

Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails UserMailbox | ForEach-Object { $cal = "$($_.PrimarySmtpAddress):\Calendar" Set-MailboxFolderPermission -Identity $cal -User Default -AccessRights LimitedDetails }

This changes behavior for everyone. Announce it, give users the ability to opt out per meeting by marking it Private, and exclude roles with confidentiality needs such as HR, legal, and executives. If your users use another language, the folder name differs; find it with Get-MailboxFolderStatistics -FolderScope Calendar. New mailboxes revert to the default unless you script the change into provisioning.

Share With Specific People

A user opens the calendar, chooses Share, adds people, and picks a level. The recipients get an invitation and, once accepted, see the calendar in their list.

Admins can do the same in PowerShell:

Add-MailboxFolderPermission -Identity "jsmith@contoso.com:\Calendar" -User asmith@contoso.com -AccessRights Reviewer Set-MailboxFolderPermission -Identity "jsmith@contoso.com:\Calendar" -User asmith@contoso.com -AccessRights Editor Remove-MailboxFolderPermission -Identity "jsmith@contoso.com:\Calendar" -User asmith@contoso.com -Confirm:$false

Share with a group to avoid per-person changes. Delegate-level access, where the delegate manages the calendar and receives meeting requests, is covered in delegate access.

Shared Team, Group, and Resource Calendars

There are four ways to give a team a calendar, and each has strengths:

OptionBest forNotes
Shared mailbox calendarA team, department, or roleNo license under 50 GB, controlled by a security group. See shared mailboxes
Microsoft 365 group calendarA team that also needs files, chat, and a plannerMembers see it in Outlook; the Teams channel calendar can use it
Room mailboxMeeting roomsAutomatic accept, decline, and rules
Equipment mailboxProjectors, cars, shared devicesSame booking rules as rooms

Room and equipment mailboxes:

New-Mailbox -Room -Name "Boardroom" -Alias boardroom -DisplayName "Boardroom" -ResourceCapacity 12 Set-CalendarProcessing -Identity boardroom ` -AutomateProcessing AutoAccept ` -AllowConflicts $false ` -BookingWindowInDays 180 ` -MaximumDurationInMinutes 480 ` -AllowRecurringMeetings $true ` -DeleteComments $false -DeleteSubject $false ` -AddOrganizerToSubject $true ` -ProcessExternalMeetingMessages $false # Require approval for a particular group; others book automatically Set-CalendarProcessing -Identity boardroom -AllBookInPolicy $false -BookInPolicy "Managers" ` -AllRequestInPolicy $true -ResourceDelegates "assistant@contoso.com"

Add rooms to room lists so Room Finder can group them by building:

New-DistributionGroup -Name "Building A Rooms" -RoomList Add-DistributionGroupMember -Identity "Building A Rooms" -Member boardroom

Keep an eye on ghost meetings, where an organizer leaves and their meetings still hold rooms. Admins can report on room use and remove meetings from a departed organizer's calendar.

Multiple Calendars and Overlay

Users can add colleagues' calendars, a room calendar, a group calendar, or an internet calendar, and overlay them. Common uses: a team leave calendar, a rota, a manager checking the team's schedule. Encourage the use of a single shared team calendar over many personal ones, because a single source avoids conflicting entries.

Sharing Outside the Organization

External sharing is controlled by two mechanisms:

  1. Sharing policies control what users can share with specific external domains.
  2. Organization relationships define a trusted relationship with another Exchange organization for free/busy lookups.
Get-SharingPolicy | Format-List Name, Domains, Enabled, Default Get-OrganizationRelationship | Format-List Name, DomainNames, FreeBusyAccessEnabled, FreeBusyAccessLevel # Allow limited-detail calendar sharing with a partner domain Set-SharingPolicy -Identity "Default Sharing Policy" -Domains "partner.com:CalendarSharingFreeBusyDetail"

Sharing policy domain actions include free/busy only, with time, subject and location, and full details. Pick the lowest that serves the business. Ask the partner to configure their side or set up an organization relationship in both directions.

Publishing a calendar. From Outlook on the web: Settings, Calendar, Shared calendars, Publish a calendar. Choose the calendar and the level (availability, limited details, full details), then you get an ICS and an HTML link. Anyone with the link can see it, and it cannot be limited to named people. Use this only for public information, such as event dates. Remove the link when it is no longer needed, and know that publishing can be disabled with a policy:

Get-SharingPolicy | Format-List Get-OwaMailboxPolicy | Format-List CalendarPublishingEnabled Set-OwaMailboxPolicy -Identity OwaMailboxPolicy-Default -CalendarPublishingEnabled $false

Meeting invitations to outsiders. Anyone can send you a meeting request. Your response (accept, decline) goes back to them. Free/busy lookup for outside people depends on the relationship above, otherwise the Scheduling Assistant shows "no information."

Hybrid and Mixed Environments

If some mailboxes are still on an on-premises Exchange server, free/busy and sharing between on-premises and online users depend on the hybrid configuration:

For the on-premises side see Exchange Server internal PKI and hybrid certificates.

Privacy and Policy

Calendar Repair and Diagnostics

Calendars can break in strange ways: duplicate entries, missing meetings, or meetings that update only for some people.

How to Check It Worked

Troubleshooting

SymptomLikely cause
"No information" for a personThey are outside the tenant with no sharing, on-premises with broken hybrid, or have no mailbox
Subjects hidden from colleaguesDefault is availability only
Cannot add a permissionAn entry already exists. Use Set-MailboxFolderPermission
Room accepts double bookingsAllowConflicts is true, or processing is off
Room declines everythingBookingWindowInDays too small, duration limit too short, or policy limits who can book
Delegate misses meeting requestsThe Delegate flag or the delegate's meeting request setting is off
Shared calendar not appearing in OutlookNot accepted, group-based grant, or cache delay
Meeting updates reach some attendees onlyCorrupt item or sync issue. Check the diagnostic log and re-send

A Short Decision Guide

Related guides: delegate access, Teams and Outlook integration, and automatic replies.

Defaults, sharing options, and cmdlet parameters change over time, and I have not run these commands against your tenant. Confirm them in Microsoft's documentation and test with a pilot group. If you run a hybrid and calendar sharing is failing, get in touch.

Exchange Online Calendar Sharing Free/Busy Room Mailboxes Hybrid Exchange