How to Configure Teams Call Park and Retrieval Policies Using PowerShell CsTeamsCallParkPolicy

In enterprise telephony, retail storefronts, reception desks, and medical clinics, call park and retrieval is an indispensable telephone feature. Rather than placing an external caller on standard hold (which ties the active call strictly to a single physical handset) or initiating a blind transfer to an uncertain extension, call park places an active telephone call on hold within a virtual parking slot assigned a short numerical retrieval code (such as 10 or 104). The receptionist or operator can then announce over an intercom or Teams channel that a caller is parked on that code, allowing any authorized staff member across the building to retrieve the call from their own Teams client. In Microsoft Teams, call park features, timeout duration, pickup range limits, and ringback failover targets are governed through PowerShell using CsTeamsCallParkPolicy.

Architecture of Microsoft Teams Call Park Policies

Call park governance in Microsoft Teams Phone System is regulated by user-level and tenant-level policies defined under CsTeamsCallParkPolicy:

  • AllowCallPark: Master boolean toggle determining whether an enterprise voice user has permission to park active inbound or outbound calls from the Teams calling interface.
  • PickupRangeStart / PickupRangeEnd: Specifies the numerical boundary for auto-generated parking slot orbit codes. Supported ranges run from 10 to 9999. Setting smaller dedicated ranges (e.g. 10 to 49) prevents code confusion across distinct branches.
  • ParkTimeoutRange: A time interval (expressed in seconds, between 120 and 1800 seconds) specifying how long a call remains parked before the system rings back the original parker. Default is typically 300 seconds (5 minutes).
  • TimeoutTargetType: Defines whether a timed-out call rings back the original parker (Default) or routes to an external destination / Auto Attendant / Call Queue.

Connecting to the Microsoft Teams PowerShell Module

To inspect and manage call park policies, launch Windows PowerShell with administrative privileges and authenticate against your Microsoft 365 tenant:

# Install Teams module if required
Install-Module -Name MicrosoftTeams -Scope CurrentUser -Repository PSGallery -Force

# Connect to the tenant
Connect-MicrosoftTeams

Ensure your account possesses the Teams Administrator or Skype for Business Administrator Entra ID role.

Auditing Existing Teams Call Park Policies

To review current call park policies across the organization:

Get-CsTeamsCallParkPolicy

To query the specific parameters of the Global default policy:

Get-CsTeamsCallParkPolicy -Identity Global | Select-Object `
    Identity, `
    AllowCallPark, `
    PickupRangeStart, `
    PickupRangeEnd, `
    ParkTimeoutRange

In standard out-of-the-box Microsoft 365 tenants, AllowCallPark is set to $false by default.

Enabling Call Park Globally for All Enterprise Voice Users

To enable call park across the entire tenant with a 5-minute timeout and two-digit parking slot codes (10 to 99):

Set-CsTeamsCallParkPolicy -Identity Global `
    -AllowCallPark $true `
    -PickupRangeStart 10 `
    -PickupRangeEnd 99 `
    -ParkTimeoutRange (New-TimeSpan -Seconds 300) `
    -Description "Global policy enabling call park with 2-digit slot codes."

Creating Custom Call Park Policies for Specific Sites

In multi-site deployments (e.g. London Headquarters vs Manchester Warehouse), assigning distinct pickup ranges prevents warehouse staff from inadvertently retrieving calls parked by executive receptionists.

To create a custom call park policy for a busy distribution warehouse with 3-digit codes and a shorter 3-minute timeout:

New-CsTeamsCallParkPolicy -Identity "CallPark-Warehouse" `
    -AllowCallPark $true `
    -PickupRangeStart 100 `
    -PickupRangeEnd 199 `
    -ParkTimeoutRange (New-TimeSpan -Seconds 180) `
    -Description "Warehouse call park policy with fast timeout and dedicated 100-199 range."

To create a restrictive policy explicitly disabling call park for external contractors or shared meeting rooms:

New-CsTeamsCallParkPolicy -Identity "CallPark-Disabled" `
    -AllowCallPark $false `
    -Description "Disables call park capabilities for shared space phones."

Assigning Call Park Policies to Users and Teams Rooms

Assign custom call park policies directly to individual phone accounts, receptionists, or shared Common Area Phones.

To assign a policy to a single user:

Grant-CsTeamsCallParkPolicy -Identity "[email protected]" -PolicyName "CallPark-Warehouse"

To assign the call park policy across an entire Entra ID security group using Group Policy Assignment:

New-CsGroupPolicyAssignment -GroupId "f6a8b123-5d44-4c78-b901-223344556677" `
    -PolicyType TeamsCallParkPolicy `
    -PolicyName "CallPark-Warehouse" `
    -Rank 1

To verify the effective call park policy assigned to an account:

Get-CsUserPolicyAssignment -Identity "[email protected]" | Where-Object { $_.PolicyType -eq "TeamsCallParkPolicy" }

Testing Call Park and Retrieval Workflow

Once assigned, verify the operational flow in the Microsoft Teams client:

  • During an active call, click the More (…) actions button in the call window.
  • Select Park call. Teams will hold the call and display a banner: “Call parked. Code: 14”.
  • From any other Teams client in the organization, navigate to the Calls tab, click Parked calls, enter code 14, and click Pick up. The call bridges instantly.
  • If the call is not retrieved within the configured timeout (e.g. 180 seconds), Teams initiates an automatic ringback to the original parker’s handset with the label “Call park recall”.

Decommissioning or Reverting Call Park Policies

To remove a user’s explicit policy override and return them to the Global tenant configuration:

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

To delete an obsolete custom policy (ensure no active accounts remain assigned before removal):

Remove-CsTeamsCallParkPolicy -Identity "CallPark-Warehouse"

Deploying structured call park governance via CsTeamsCallParkPolicy streamlines telephone call handling, prevents dropped customer transfers, and empowers distributed teams with agile voice collaboration.

Get the best tech tips delivered straight to your inbox.

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