Disabling workspace meeting creation from SharePoint Calendar

In many big implementations for SharePoint, TeamSites is a great tool for collaboration and for user-driven participation.
There is also another functionality in SharePoint called Workspaces, which is a small cut-down version of what a TeamSite can offer. Workspaces normally can be used to track meeting minutes, small task forces and general gatherings and its automatically creation is found inside the calendar items, which makes the creation so easy by the users. All they have to do is to flick the checkbox and click OK.
For the big enterprises, it does not make much sense to implement TeamSites and still have to manage Workspaces due to the similarities it had to Team Sites, and specially when it is so easy to create on a uncontrolled manner.
So what how to disable workspaces creation and avoid the meeting workspaces proliferation?
you can achieve this in many ways. I can tell you the most common use found on the Internet: the JavaScript solution.
It is very simple to implement. Basically you drop JavaScript in the page and the JavaScript will look for the html row that contains the workspace checkbox creation, then once found make it invisible. In fact the option is still there, the users just cant see it anymore.
From an implementation point of view, that's straight forward and many users of many levels can actually do this. From a governance and architectural point of view, that's not the best recommended:
  1. it will introduce new code into SharePoint ecosystem, and potentially a new debug variable.
  2. it does not scale well.
  3. it is vulnerable to malicious code.
  4. an advanced enough user can in fact bypass that barrier by cross-scripting himself that option to be visible again
The other approach would be to understand SharePoint and how it works internally. Always have in mind that SharePoint was not meant to be modified, but extended or configured. If you research enough might find that this setting can be controlled.
To remove the option to create workspaces in SharePoint, you need to go to:
...12 hive folder\TEMPLATE\FEATURES\EventsList\Events
Edit the file called schema.xml (I would recommend to make a backup copy, as well) and edit the field to be like that:
59 <Field ID="{08fc65f9-48eb-4e99-bd61-5946c439e691}"
60 Type="CrossProjectLink" Name="WorkspaceLink"
61 Format="EventList" DisplayName="$Resources:core,Workspace;"
62 DisplayImage="mtgicon.gif" HeaderImage="mtgicnhd.gif"
63 ClassInfo="Icon" Title="$Resources:core,Meeting_Workspace;"
64 Filterable="TRUE" Sealed="TRUE"
65 SourceID=""
66 StaticName="WorkspaceLink"
67 ShowInEditForm="FALSE" ShowInNewForm="FALSE">
the 2 new attributes ShowInEditForm and ShowInNewForm will control the workspace checkbox visibility.
Did you like that? :)
Update: Aapo from SharePoint Blues just mentioned another way to perform this operation. You should check that out.