Using PowerShell to Remove the "Use a Meeting Workspace" Option from SharePoint Calendars

07 June, 2011 · 1 minute to read

Using PowerShell to Remove the "Use a Meeting Workspace" Option from SharePoint Calendars

I've just deployed a custom meeting site to a customer to handle multiple meetings within one site. Hence the option to "Use a Meeting Workspace" when creating a new or updating a calendar item is unnecessary, so they asked me to remove it to prevent anyone using it by mistake. When creating a calendar item (or updating) this is the dialog you get, with the Use a Meeting Workspace highlighted. 

meetingWorkspace

From SharePoint Blues I discovered that if you set the calendar list field to hidden then this option would no longer display. Taking this concept, I created a PowerShell script to set this to hidden on a one off basis. The script is: 

# Script to remove Use a Meeting Workspace from a specific calendar function RemoveWorkspaceLink ([String]$siteUrl, [String]$calendarName) { [system.reflection.assembly]::LoadWithPartialName("Microsoft.Sharepoint") > $null $site = New-Object Microsoft.SharePoint.SPSite($siteUrl) if ($site -eq $null) { return } $web = $site.OpenWeb() $list = $web.Lists[$calendarName] if ($list -eq $null) { "Invalid list name " + $calendarName } else { $field = $list.Fields[[Microsoft.SharePoint.SPBuiltInFieldId]::WorkspaceLink] $field.Hidden = $true $field.Update() "Updated " + $calendarName + " on " + $siteUrl } # Dispose of the SharePoint objects if ($web) {$web.Dispose()} if ($site) {$site.Dispose()} } RemoveWorkspaceLink "http://myserver/sites/site1" "Calendar1" RemoveWorkspaceLink "http://myserver/sites/site2" "Calendar2"

 I've written this as a function so that you can update multiple calendars at the time. If you saved this as a .ps1 file and then run it, the 2 calendars referenced at the bottom would be updated. Alternatively you could . source the file and use the function interactively, or just hard code the $siteUrl and $calendarName variables each time you run it. The option is removed immediately you have run the script with no iisreset or application pool recycle required. So with the script is run this is what you see with the Meeting Workspace option removed: 

meetingWorkspaceAfter

This works well for hiding it on individual calendar lists, but doesn't affect any other existing calendars or ones created afterwards. I've since found a way to update all calendars in a site collection.

Richard Willis headshot

Written by Richard Willis

Managing Director / Founder

Richard started SalamanderSoft in 2007 after a successful career as a software developer. Wanting to start his own company and with experience in integrating school systems he set out to build the best integration system for schools and to exceed customer expectations. He starting out on his own, doing all the coding, support and sales until finally the growing number of customers meant he needed to start growing the team. He is still heavily involved in coding the core Integration Suite product in addition to running the company and being the first point of contact for prospective customers.

Copyright © 2020 SalamanderSoft Limited