How to Update Teams to Send Meeting Invitations to All Members

Ongoing Frustration for Teams Users

A certain amount of frustration is evident in Teams users who schedule meetings and add teams as meeting attendees, only to find that the team members don’t receive individual meeting invitations. The same problem happens for channel meetings.

When you add a team as a meeting attendee (Figure 1), you add an Microsoft 365 group, and group settings dictate which (if any) of the members of that group receive meeting invitations. Creating a channel meeting adds the meeting to the group calendar, but team members don’t receive invitations unless they are explicitly added as a meeting participant.

Scheduling a Teams meeting with Microsoft 365 Groups
Figure 1: Scheduling a Teams meeting with Microsoft 365 Groups

As I explain in this post, the reason why this happens is due to the way Teams manages members of the Microsoft 365 group. Basically, Teams adds members to the membership list, which you expect, but it does not add the members to the group’s subscriber list. Because they are not subscribers, members do not receive copies of messages (like calendar events) sent to the group. There’s a lack of joined-up thinking between Teams and Microsoft 365 groups on this point that might be due to the fact that Groups were originally designed to serve Outlook before Microsoft changed their primary focus to be a membership and identity service for Microsoft 365 apps.

No doubt Microsoft is busily working out how to make things better. What seems clear is that people naturally assume that if they schedule a meeting with a team, the members of the team should receive invitations. This stance is eminently reasonable, even if it’s not currently implemented in Teams.

Scripting a Solution

What can you do about this? Well, as suggested in a response to Teams User Voice, you (in reality, a tenant administrator) can update group settings to automatically subscribe new users to receive event notifications and add existing users to the group’s subscriber list. Justin Horne contributed a script to do the job. I’ve taken the liberty of updating the script by:

  • Only process Microsoft 365 Groups enabled for Teams. Then filter to find the groups where members are not auto-subscribed or where members are not auto-subscribed to calendar events.
  • Update group settings to auto-subscribe new members to receive calendar events like meeting notifications. Note: guest members are always subscribed to groups.
  • Update the group subscriber list with existing members. You’ll see that I use the external directory object identifier to reference the group and the primary SMTP address to reference members. This is to ensure that the values are unique.
  • Reporting updates in a PowerShell list which is exported to a CSV file at the end of the script.

Updating subscriber lists for groups is not a swift process, so updating many groups will take time. You’ll also need to run the script on a regular basis to find and update new groups.

Code to Update Group Subscribers

Here’s the code. You can download a copy from GitHub. Feel free to improve it!

# UpdateSubscribersInGroupsUsedByTeams.PS1

Write-Host "Finding team-enabled Groups to process..."
$Groups = Get-UnifiedGroup -Filter {ResourceProvisioningOptions -eq "Team"} -ResultSize Unlimited
$Groups = $Groups | ? {$_.AutoSubscribeNewMembers -eq $False -Or $_.AlwaysSubscribeMembersToCalendarEvents -eq $False}

$Report = [System.Collections.Generic.List[Object]]::new() # Create output file 
#initialize progress bar
$ProgDelta = 100/($Groups.count)
$CheckCount = 0 ; $GroupNumber = 0 ; CLS
ForEach ($Group in $Groups) {
   $CheckCount += $ProgDelta
   $GroupStatus = "Processing " + $Group.DisplayName + " ["+ $GroupNumber +"/" + $Groups.Count + "]"
   Write-Progress -Activity "Updating subscriber information for group" -Status $GroupStatus -PercentComplete $CheckCount
   # Update group so that new members are added to the subscriber list and will receive calendar events
   Set-UnifiedGroup -Identity $Group.ExternalDirectoryObjectId -AutoSubscribeNewMembers:$True -AlwaysSubscribeMembersToCalendarEvents
   # Get current members and the subscribers list
   $Members = Get-UnifiedGroupLinks -Identity $Group.ExternalDirectoryObjectId -LinkType Member
   $Subscribers = Get-UnifiedGroupLinks -Identity $Group.ExternalDirectoryObjectId -LinkType Subscribers
   # Check each member and if they're not in the subscriber list, add them
   ForEach ($Member in $Members) {
     If ($Member.ExternalDirectoryObjectId -notin $Subscribers.ExternalDirectoryObjectId) { # Not in the list
    #    Write-Host "Adding" $Member.PrimarySmtpAddress "as a subscriber"
         Add-UnifiedGroupLinks -Identity $Group.ExternalDirectoryObjectId -LinkType Subscribers -Links $Member.PrimarySmtpAddress 
         $ReportLine = [PSCustomObject] @{
            Group      = $Group.DisplayName
            Subscriber = $Member.PrimarySmtpAddress
            Name       = $Member.DisplayName}
         $Report.Add($ReportLine) }   
     } #End ForEach
} #End ForEach
$Report | Export-CSV -NoTypeInformation c:\temp\SubscriberGroupUpdates.csv
Write-Host "All done. Details of updates are in c:\temp\SubscriberGroupUpdates.csv"

Remember that you’ll need to run this script periodically to update newly created teams. Alternatively, use a script to create teams and include the necessary code to update the group for each team. Also, while some team members will like to receive invitations for channel meetings, others will hate the idea. Be prepared to remove these users from the group’s subscribers list to stop them receiving invitations. You can do this by running the Remove-UnifiedGroupLinks cmdlet. For example, this command removes an account from a group’s subscribers list.

Remove-UnfiedGroupLinks -Identity "Group to Remove User from" -LinkType Subscriber -Links

Optional and Required Attendees

Team members who receive invitations sent to channel meetings because they are subscribed to the group for calendar events are considered optional attendees. This is because they are not included in the set of required attendees and effectively only learn about the meeting because they are subscribers. If you want team members to be required attendees, you need to schedule a personal meeting and invite the team.

Describing solutions to problems in Office 365 tenants is what the Office 365 for IT Pros eBook is all about. Subscribe to support our project and allow us to continue helping people to probe the dark corners of Office 365.

20 Replies to “How to Update Teams to Send Meeting Invitations to All Members”

  1. Hi, sounds interesting. But even after setting this for a group via
    Set-UnifiedGroup -Identity “My Group” -AutoSubscribeNewMembers:$True -AlwaysSubscribeMembersToCalendarEvents
    the box for “send copies of group conversations and events to group members” is not ticked.
    Do these settings have the same meaning? It seems that hte box cannot be set through Set-UnifiedGroup…

    1. You need to use Get-UnifiedGroupLinks -Id “My Group” -LinkType Subscribers to check if any users are subscribed to the group. If they are, run Remove-UnifiedGroupLinks to remove each user.

      1. Not sure if we are talking about the same thing.
        In the exchange admin center, I have three settings for a M365 group:

        o Allow external senders to email this group
        x send copies of group conversations and events to group member
        x Hide from my organization’s address list

        Getting the third option set is easy (-HiddenFromAddressListsEnabled:$True).
        I I understand correctly
        -AutoSubscribeNewMembers:$True -AlwaysSubscribeMembersToCalendarEvents
        does what the second option means.
        But the box will not be checked. Is that what you mean, that subscriptions have to be reset for it to appear checked?

      2. All of those points are valid, but what I think is happening is that some of the users have been automatically added to the group’s subscriber list and therefore receive updates, including calendar invitations, sent to the group. This often happens for older Teams.

    2. I am having the same issue currently where we want to find the code to automate this did you find the exact code to do this as i am very new to powershell i have as i have used all these commands like yourself and nothing seems to tick that box

      1. Nope. haven’t found a way. We will probably let the script run periodically.

  2. This is absolutely brilliant. We found out about the -AlwaysSubscribeMembersToCalendarEvents setting in order to get rid of the channel meeting spam, so we could consoladate meetings recordings into the channel onedrive site. However we had no way to understand or administrate this on a per user level. Some googling led me here and gave me the tools to complete the puzzle, we now have a viable way forward to get users off of streams recordings! Thank you so much for this post!

  3. Tony wrote on 21 October 2020 “No doubt Microsoft is busily working out how to make things better.” Does anyone have any inkling as to whether Microsoft is getting anywhere with this? My concern is that if l produce a whole raft of “work-around” user guidance then at the point I publish that guidance Microsoft will release some updates resolving the issues – rendering my work unnecessary.

  4. Tony also wrote: “If you want team members to be required attendees, you need to schedule a personal meeting and invite the team.” I think by “personal meeting” you mean a standalone (non-channel) meeting. This breaks the scenario for a Teams channel meeting where all the meeting content is attached to the channel (e.g. meeting side-chat and meeting recording file). In a standalone/personal meeting the meeting-chat and recording is owned by the meeting organiser and so potentially lost to team members if the meeting organiser leaves the organisation. I’m afraid that currently I advise people to add all the Team members individually to the channel meeting (or use the @ mention team message and get the team members to add the meeting themselves)

  5. How can I do if i only want a sub-group of my team members to join a meeting in a channel? when i create the meeting through the channel, everyone in the Team gets a notification or gets it in their calendars, but i want only a few people of the group to be part of that meeting.

  6. Tony you wrote on 21 October 2020 “No doubt Microsoft is busily working out how to make things better.” Did Microsoft make things better regarding this functionality? It would be good if there was a Teams owner level option on the user interface to opt-in everyone to receive channel meeting invites even if previously they were opted out.

  7. How can i set it so that when i add a new member to a group any existing 365 group meetings are added to their calendar.

    1. It’s technically possible, but you would have to write some code to read the calendar events from the group calendar and add the new member as a participant.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.