The “Meet Now” feature in Microsoft Teams enables employees and students to initiate instant, unscheduled video conferences directly from private calendar entries, one-to-one chats, or collaborative team channels. While ad-hoc collaboration fosters agility, ungoverned instant meetings present substantial governance, compliance, and supervision risks—particularly within educational institutions where students must not host unmonitored sessions, or in regulated enterprises where all business interactions require formal calendar invitations and recording compliance. Microsoft 365 administrators can enforce granular administrative controls over instant meetings using the Microsoft Teams PowerShell module. This article explains how to inspect, configure, and assign Meet Now policies across an organisation using CsTeamsMeetingPolicy.
Understanding Teams Meet Now Governance Parameters
Within Microsoft Teams meeting policies (CsTeamsMeetingPolicy), ad-hoc meeting initiation is regulated through specific boolean parameters that separate private instant calls from public channel gatherings:
AllowPrivateMeetNow: Dictates whether a user can start an unscheduled ad-hoc meeting from their personal Teams calendar or private direct messaging chats. When disabled ($false), the “Meet now” button is removed from the user’s calendar interface.AllowChannelMeetingScheduling: Governs whether users can schedule formal meetings within public or private team channels.AllowMeetNow(Channel Context): Governs whether users can click the “Meet” button within a team channel header to spin up an instantaneous channel conference open to all channel members.
Administrators can configure these controls globally across the entire tenant or create tailored custom meeting policies assigned to specific security groups, educational grade tiers, or external contractors.
Connecting to the Microsoft Teams PowerShell Module
To manage meeting policies, open an elevated PowerShell window and verify that the MicrosoftTeams module is installed. Connect to your tenant using administrative credentials holding the Teams Administrator or Global Administrator role:
Connect-MicrosoftTeams
Confirm successful authentication by verifying the tenant domain and active administrative account.
Inspecting Current Meet Now Policy Configurations
Before implementing configuration changes, audit your existing meeting policies to identify current instant meeting permissions. Query the tenant-wide Global (Org-wide default) policy:
Get-CsTeamsMeetingPolicy -Identity Global | Select-Object Identity, Description, AllowPrivateMeetNow, AllowChannelMeetingScheduling
To inspect all custom meeting policies currently deployed across your Microsoft 365 organisation, run:
Get-CsTeamsMeetingPolicy | Select-Object Identity, AllowPrivateMeetNow, AllowChannelMeetingScheduling | Format-Table -AutoSize
If AllowPrivateMeetNow evaluates to True across all policies, any user licensed for Microsoft Teams can host instant ad-hoc meetings without administrative oversight.
Disabling Private Meet Now Globally or Creating Custom Policies
In highly regulated environments where ad-hoc unscheduled calls must be strictly prohibited across the entire organisation, disable private instant meetings directly on the Global default policy:
Set-CsTeamsMeetingPolicy -Identity Global -AllowPrivateMeetNow $false
In most enterprise and academic scenarios, however, administrators prefer allowing staff and faculty to use Meet Now while restricting students, contractors, or specific operational departments. To achieve this, create a dedicated custom meeting policy:
New-CsTeamsMeetingPolicy -Identity "Restricted-InstantMeetings" -Description "Disables ad-hoc Meet Now for supervised users and students" -AllowPrivateMeetNow $false -AllowChannelMeetingScheduling $false
Conversely, if you have restricted instant meetings at the Global level and wish to permit executive leadership or tenured professors to initiate ad-hoc sessions, create an elevated policy:
New-CsTeamsMeetingPolicy -Identity "Executive-MeetNow-Allowed" -Description "Permits unrestricted private instant meetings" -AllowPrivateMeetNow $true
Assigning Meet Now Policies to Individual Users and Security Groups
Once a custom policy is defined, assign it to target users. To assign the restriction policy to an individual user, execute Grant-CsTeamsMeetingPolicy:
Grant-CsTeamsMeetingPolicy -Identity "[email protected]" -PolicyName "Restricted-InstantMeetings"
To assign the policy dynamically across hundreds or thousands of users based on an Entra ID (Azure AD) security group, use the group policy assignment cmdlet:
$GroupId = (Get-MgGroup -Filter "DisplayName eq 'All Students'").Id
New-CsGroupPolicyAssignment -GroupId $GroupId -PolicyType TeamsMeetingPolicy -PolicyName "Restricted-InstantMeetings" -Rank 1
The -Rank parameter defines precedence when an employee belongs to multiple overlapping security groups, with rank 1 holding the highest priority.
Verifying Policy Propagation and Client Enforcement
To verify the effective policy applied to a specific user account, query the user policy assignment table:
Get-CsUserPolicyAssignment -Identity "[email protected]" | Where-Object { $_.PolicyType -eq "TeamsMeetingPolicy" }
Teams policy propagation typically synchronises to desktop, web, and mobile clients within 2 to 4 hours. Once propagated, users subjected to the restriction will observe that the “Meet now” button in the Teams Calendar header is completely disabled, preventing unauthorised ad-hoc video conferences while preserving standard scheduled meeting participation.