Meeting Policies
Configure meeting join settings, recording permissions, transcription, lobby behavior, and participant capabilities during Teams meetings. Meeting policies control the features available to meeting organizers and participants.
Note: Teams policies are available with any Microsoft 365 license that includes Teams. Advanced meeting features like webinars and town halls require Teams Premium. Policy management via Graph API requires
TeamsPolicy.ReadWrite.Allpermissions.
Meeting Policy Settings
| Setting | Options | Description |
|---|---|---|
| Cloud recording | Allow / Block | Enable meeting recording to OneDrive/SharePoint |
| Transcription | Allow / Block | Enable live transcription and captions |
| Who can present | Everyone / Organizer / People in org | Default presenter role for meetings |
| Lobby bypass | Configurable | Control who skips the lobby |
| Chat in meetings | Enabled / Disabled | Allow chat during meetings |
| Screen sharing | Entire screen / Single app / Disabled | Control screen sharing mode |
| Camera for attendees | Allow / Block | Allow video for participants |
| Reactions | Enabled / Disabled | Enable meeting reactions |
Live Events Policies
Control who can create live events and configure production settings. Live events support large-scale broadcasts to up to 20,000 attendees with specialized production capabilities.
| Setting | Options | Description |
|---|---|---|
| Allow scheduling | Enabled / Disabled | Users can create and schedule live events |
| Transcription | Enabled / Disabled | Allow live captions and transcription |
| Who can join | Everyone / Org / Invited | Default audience scope for live events |
| Recording | Always / Never / Organizer | Control who can enable recording |
Update Policies
Teams update policies control which preview features users can access and how Teams client updates are delivered:
Warning: Public Preview features may contain bugs. Recommended only for IT admins and power users testing new capabilities before broader rollout.
- Public Preview — Earliest access to new features, may contain bugs, recommended for IT admins only
- Targeted Release — More stable features ahead of GA, good for pilot groups providing feedback
- General Availability — Fully tested and stable features, default for most users
Policy Assignment
Policies follow a precedence order where direct user assignments override group assignments, which override the global default.
| Assignment Type | Use Case | Scalability |
|---|---|---|
| Direct to User | Exceptions, VIPs, specific overrides | Manual, suitable for small numbers |
| Group Assignment | Departments, roles, teams | Automatic via group membership |
| Batch Assignment | Large user populations | Up to 5,000 users per batch |
Assignment Precedence (Highest to Lowest)
- Direct User Assignment — Policy assigned directly to a specific user
- Group Assignment (Ranked) — Policy assigned via group with priority ranking
- Global (Org-wide default) — Default policy applied to all users without specific assignment
Recording and Compliance
- Recordings stored in OneDrive or SharePoint
- Retention policies apply to recordings
- Transcription available for compliance and accessibility
- Meeting recordings automatically expire after a configurable period
Best Practices
Policy Design
- Use group-based assignment for scalability
- Keep the global policy restrictive as a baseline
- Test policies in pilot groups before wide deployment
- Use policy packages for common role types
Security Considerations
- Restrict external meeting join for sensitive tenants
- Enable meeting recording only where required
- Configure lobby settings to prevent unauthorized access
- Monitor policy changes via audit logs
API Reference
# Get meeting policies
GET /teams/policies/meetings# Assign meeting policy to user via PowerShell
Grant-CsTeamsMeetingPolicy -Identity user@domain.com -PolicyName "RestrictedMeetings"# OpsPilot365 API - Bulk deploy meeting policy
POST /api/teams/policies/deploy
{
"policyType": "meeting",
"policyName": "MSP-Standard-Meetings",
"tenantIds": ["tenant-1", "tenant-2"],
"assignmentType": "global",
"conflictResolution": "overwrite"
}GET /api/teams/policies/meetings— List meeting policiesPOST /api/teams/policies/meetings— Create policyPUT /api/teams/policies/meetings/:id— Update policy