Вы просите о нескольких вещах здесь ... В общем, Календарь - это список SharePoint, а безопасность обычно управляется на уровне списка. Таким образом, пользователь, который может добавлять и редактировать календарь, может добавлять и редактировать все элементы календаря. Чтобы обойти это, вам нужно реализовать безопасность на уровне элементов, что значительно увеличивает сложность вашего приложения, и я склонен избегать этого. Если вы решили использовать этот подход, то при изменении элемента возникают события itemAdding и itemUpdating. Затем вы программно обновляете безопасность для каждого элемента по мере его изменения.
С SharePoint 2010 вы можете относительно легко изменять и редактировать формы, используя конструктор SharePoint. Тем не менее, вы правы в отношении блоков кода. В web.config под узлом PageParsepaths есть параметр, который необходимо обновить, чтобы разрешить выполнение блоков кода. Подробнее здесь . С точки зрения безопасности это, как правило, плохая практика, потому что вы даете своим пользователям возможность редактировать страницу, после чего они могут вводить скрипт вредоносного кода, который может выполняться на вашем сайте. С точки зрения SharePoint, обычно вы должны создать пользовательский элемент управления (файл ASCX), который живет на сервере, чтобы обойти эту проблему. Затем вы можете встроить файл ASCX, и блоки кода будут работать нормально. Большинство файлов SharePoint в каталоге приложений SharePoint используют этот подход, и вы можете использовать один из них в качестве шаблона. Есть и другие способы лайков веб-частей и т. Д.
Babmboo Solutions имеет веб-часть Календарь, которая позволяет свернуть. Хотя я этого не пробовал, я бы исследовал использование функциональности OTB с веб-частью «Запрос контента», чтобы объединить данные вместе и посмотреть, не приведет ли это вас туда, где вы хотели бы быть.