Etat des lieux
Lorsque vous créez une liste de type Calendrier, automatiquement SharePoint la peuple, suivant un content type défini, avec les colonnes suivantes : titre (Title), localisation (Location), description (Description), date/heure de début (StartTime) et date/heure de fin (EndTime) et 3 cases à cocher relatives à la périodicité (Recurrence), la durée (AllDayEvent) et l’espace de travail (Workspace).
Problématique
Si vous allez voir le content type utilisé pour cette liste (à partir de la liste : Paramètres > Paramètres – liste, Paramètres avancés, Autoriser la gestion des types de contenu ? doit être à oui), vous pouvez voir que event autorise la modification de l'état de toutes les colonnes (required, optional ou hidden) SAUF les 3 colonnes associées aux cases à cocher.
Solution pour environnement de test
Solution 1 : Modification des pages utilisées pour la création (NewForm.aspx) ou la modification (EditForm.aspx) d’un élément
Solution 2 : Modification de la feature EventsList
Solution 3 : Modification de la feature ctypes
Ces solutions, même si elles sont intéressantes, ne me semblent pas satisfaisantes dans un environnement de production pour les raisons suivantes :
La solution 1 (modification de pages de référence) va engendrer le deghosting des pages. De plus, si vous avez besoin de répéter sur plusieurs sites la même opération, cela peut devenir fastidieux à moins de le faire directement sur les pages "à la source", mais cela engendre les mêmes problèmes que dans les solutions suivantes.
Pour les solutions 2 et 3, la modification des content type de référence s'appliquera à tous les sites actuels et futurs et aura un impact sur l'existant en cas de retour arrière. De plus, si un hotfix ou un service pack vient modifier ces content type de référence, vous risquez de perdre vos modifications.
Solution pour environnement de production
L'objectif étant d'avoir une solution simple et durable, voici une quatrième solution : créer un nouveau type de liste calendrier qui hérité de event mais sans espace de travail.
Descriptif des différentes étapes :
Etape 1 : Faire un copier/coller de la feature EventsList et la renommer en EventsListWS

Etape 2 : Renommer le sous répertoire Events en EventsWS
Etape 3 : Remplacer les GUID de tous les fichiers xml présents dans EventsListWS
Etape 4 : dans le fichier schema.xml :
Modifier le GUID afin de faire en sorte qu’il hérite du type event de base (0x0102).
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="CalendarWS" Direction="$Resources:Direction;" Url="Lists/CalendarWS" BaseType="0">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x010200FFCBB01636444DF29E1F5170DC0F405E">
<Folder TargetName="EventsWS" />
</ContentTypeRef>
</ContentTypes>
Supprimer toutes les lignes où l’intitulé workspace apparaît.
Il serait tout à fait possible de s'arrêter à cette étape (il faudrait ajouter une ultime étape qui correspondrait à l'installation et l'activation de cette nouvelle feature via stsadm) mais ce serait se satisfaire du minimum et devoir faire face à quelques désagréments (présence de 2 types de liste portant le même intitulé calendrier, activation/désactivation de la feature pour chaque site concerné via stsadm).