Skip to main content

How to Remove Workspace Link from a Calendar


First, we need to provision a new calendar with our custom Feature:

<?xml version="1.0" encoding="utf-8" ?>
<Feature
    Id="AF8444FE-65D9-4ae2-BAD7-C39917871474"
    Title="Calendar without Workspace Link"
    Description="Installs a new calendar without workspace link."
    Version="1.0.0.0"
    Scope="Web"
    Hidden="FALSE"
    ImageUrl="Meteoriitti/Feature.gif"
    ReceiverAssembly="..."
    ReceiverClass="CalendarFeatureReceiver"
    xmlns="http://schemas.microsoft.com/sharepoint/">
    <ElementManifests>
        <ElementManifest Location="Lists.xml"/>
    </ElementManifests>
</Feature>
Lists.xml:

<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <ListInstance
        Title="Events"
        Description="Event calendar..."
        Url="Lists/Events"
        TemplateType="106"
        OnQuickLaunch="True"
        FeatureId="00BFEA71-EC85-4903-972D-EBE475780106">
    </ListInstance>
</Elements>
And the most important part of it, the Feature Receiver:

public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
    var web = properties.Feature.Parent as SPWeb;
    if (web == null) return;
    using (web)
    {
        var list = web.Lists["Events"];
        var field = list.Fields[SPBuiltInFieldId.WorkspaceLink];
        field.Hidden = true;
        field.Update();
    }
}
You can use the code for example in a PowerShell too, if you need to modify existing calendar. It seems like you can edit sealed content types’ fields’ Hidden property without errors. I also tried deletion, but it didn’t work. ShowInNewForm property didn’t have any effect either. Finally the Hidden property worked just fine.


Having then done that I realised that you could edit the Event content type to make it hidden across the entire site collection
http://blog.salamandersoft.co.uk/index.php/2011/03/removing-the-use-a-meeting-workspace-option-from-all-existing-and-new-sharepoint-calendars-in-a-site-collection/

Comments

Popular posts from this blog

SharePoint Game Webpart

http://spgameoflifewebpart.codeplex.com/ Goal: The Game of Life web part was created for a talk I presented at SharePoint Saturday New York in 2009. At the time, SharePoint 2010 was still in Beta and most people hadn't see the Enterprise Metadata Management (taxonomy) features. I used the Game of Life web part as an introduction to the new taxonomy API. I offered to provide the code, so here it is. Requirements ----------------------- - SharePoint Server 2010 with Enterprise Features - Visual Studio 2010 (inc. SharePoint tools) Setup ----------------------- 1. Add your account as a Term Store Administrator. This right is independent to Site Collection Administrator or Farm Administrator status. To open the Term Store Management Tool go to Site Actions > Site Settings > Site Administartion > Term Store Management. You can also  open the same interface from Central Administration > Manage Service Applications > Managed Metadata Service. 2. Run the sol...