How to Configure Teams Meeting Template Policies in PowerShell Using CsTeamsMeetingTemplatePolicy

In enterprise Microsoft 365 environments, meeting templates allow organisations to standardise security and collaboration configurations across internal consultations, customer briefings, all-hands town halls, and sensitive executive sessions. Rather than requiring organisers to configure lobby controls, end-to-end encryption, recording permissions, and watermark settings manually for each meeting, administrators can deploy custom or built-in meeting templates. To govern which templates are visible and accessible to specific departments, executives, or external contractors, Microsoft Teams relies on Meeting Template Policies. Using the Microsoft Teams PowerShell module and the CsTeamsMeetingTemplatePolicy cmdlets, tenant administrators can programmatically create, customize, assign, and audit template visibility across their workforce.

Understanding Teams Meeting Template Policies

Meeting template policies regulate the template catalog presented in Microsoft Teams clients when an organiser schedules a calendar event or channel meeting. Key functional capabilities include:

  • Template Visibility Management: Controls whether custom enterprise templates (e.g. “Confidential Board Review”, “Client Advisory Session”) or default system templates (e.g. “Webinar”, “Town Hall”) appear in the user interface.
  • Template Hiding: Enables administrators to suppress default or legacy templates that do not comply with departmental data governance policies.
  • Granular User and Group Assignment: Allows policy binding at the global tenant level or direct assignment to specific security groups via package or group policy assignment workflows.
  • Integration with Teams Premium: Advanced custom meeting templates with enforceably locked security parameters (such as sensitivity labels and mandatory watermarking) leverage meeting template policies to restrict publication to licensed users.

Prerequisites and PowerShell Session Initialisation

Managing meeting template policies requires the modern Microsoft Teams PowerShell module. Ensure you have the Teams Administrator, Global Administrator, or Privileged Role Administrator role assigned in Microsoft Entra ID before connecting.

Install or verify the latest Microsoft Teams module:

Get-Module -ListAvailable -Name MicrosoftTeams
Install-Module -Name MicrosoftTeams -Scope CurrentUser -Repository PSGallery -Force

Establish an authenticated remote management session:

Connect-MicrosoftTeams

Confirm the connection by verifying tenant details and checking command availability:

Get-Command *TeamsMeetingTemplatePolicy*

Inspecting Existing Meeting Template Policies

Before creating new policies, review the default configuration and any existing custom template policies established in the tenant.

Retrieve all defined meeting template policies:

Get-CsTeamsMeetingTemplatePolicy

Inspect the default Global (Org-wide default) policy parameters in detail:

Get-CsTeamsMeetingTemplatePolicy -Identity Global | Format-List Identity, Description, *

To inspect which meeting templates exist across the tenant (identifying their respective GUIDs or names for policy assignment):

Get-CsTeamsMeetingTemplate | Format-Table Identity, DisplayName, Description

Creating a Custom Meeting Template Policy

To restrict template access for specific departments—such as legal, finance, or customer service teams—create a targeted custom policy using New-CsTeamsMeetingTemplatePolicy.

Create a custom policy designed for executive governance with a clear operational description:

New-CsTeamsMeetingTemplatePolicy -Identity "Executive-Confidential-Templates" -Description "Governs access to restricted confidential meeting templates for executive leadership."

Confirm the creation of the new policy instance:

Get-CsTeamsMeetingTemplatePolicy -Identity "Executive-Confidential-Templates"

Modifying Template Visibility and Hidden Collections

Administrators govern template presentation by specifying which templates are hidden or explicitly made visible within the policy context. The Set-CsTeamsMeetingTemplatePolicy cmdlet provides parameters to update policy attributes.

To hide specific default templates (for example, hiding general open templates while enforcing managed templates) on the target policy:

Set-CsTeamsMeetingTemplatePolicy -Identity "Executive-Confidential-Templates" -Description "Executive meeting template policy with restricted visibility."

Verify that the configuration updates are committed properly:

Get-CsTeamsMeetingTemplatePolicy -Identity "Executive-Confidential-Templates" | Select-Object Identity, Description

Assigning Meeting Template Policies to Users and Groups

Once a custom template policy is defined, assign it to individual users or deploy it across departmental groups using Microsoft Entra security groups.

To assign the policy directly to a single user account:

Grant-CsTeamsMeetingTemplatePolicy -Identity "[email protected]" -PolicyName "Executive-Confidential-Templates"

Verify that the policy was successfully bound to the user profile:

Get-CsOnlineUser -Identity "[email protected]" | Select-Object UserPrincipalName, TeamsMeetingTemplatePolicy

To deploy the policy to an entire department using Group Policy Assignment (eliminating manual per-user overhead):

$GroupId = (Get-AzureADGroup -SearchString "Executive Leadership Team").ObjectId
New-CsGroupPolicyAssignment -GroupId $GroupId -PolicyType TeamsMeetingTemplatePolicy -PolicyName "Executive-Confidential-Templates" -Rank 1

To remove a direct policy assignment so the user reverts to the global default:

Grant-CsTeamsMeetingTemplatePolicy -Identity "[email protected]" -PolicyName $null

Removing and Managing Obsolete Policies

When custom administrative policies are deprecated or consolidated into broader tenant standards, remove them cleanly to avoid policy sprawl.

Ensure no users remain assigned to the policy prior to removal:

Get-CsOnlineUser -Filter {TeamsMeetingTemplatePolicy -eq "Executive-Confidential-Templates"} | Select-Object UserPrincipalName

Delete the custom policy using Remove-CsTeamsMeetingTemplatePolicy:

Remove-CsTeamsMeetingTemplatePolicy -Identity "Executive-Confidential-Templates" -Confirm:$false

Attempting to remove the built-in Global policy will result in an error, as the global default policy is immutable and serves as the baseline fallback for unassigned users.

Troubleshooting Policy Propagation and Client Refresh

When users report that newly assigned meeting templates do not appear in the Teams desktop client, keep the following timing and caching factors in mind:

  • Client Token Caching: Teams desktop and web clients cache meeting metadata locally. Users can trigger an immediate refresh by signing out completely and signing back into Microsoft Teams, or by clearing the local Teams client cache directory.
  • Replication Latency: Policy assignments generally replicate across Microsoft 365 regional directory services within 2 to 4 hours, though tenant-wide group assignments may take up to 24 hours to propagate across all endpoints.
  • License Entitlement Validation: If a meeting template leverages Teams Premium capabilities (such as custom branding or sensitivity label enforcement), ensure target organisers have active Teams Premium licenses assigned. Users lacking appropriate licensing will not see premium templates regardless of template policy visibility.

By managing meeting template policies through PowerShell with CsTeamsMeetingTemplatePolicy, enterprise administrators maintain tight governance over corporate meeting standards and protect sensitive executive communications.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.