Attendees not receiving e-mails with updated information

We have been made aware of an issue where attendees are not receiving an e-mail if information about an event is updated using the Calendar E-Mail Extension. However, if the event is cancelled the attendees still receive an e-mail. You will receive the following error message in the trace log:

Error loading and running event receiver Sapiens.at.SharePoint.CalendarEmailExtension.Receiver.InvitingEventReceiver in assembly ‘Sapiens.at.SharePoint.CEE, Version=15.1.0.0, Culture=neutral, PublicKeyToken=a1ab8b914ceb8a5a’. Value does not fall within the expected range.

The cause of this error is the “Resources” column when the column is created using the group calendar options. This feature is deprecated in SharePoint 2013 and is only available for compatibility (see changes between SharePoint 2010 and 2013). The actual problem is that the resources column is created, however, the list of resources isn’t. To solve the problem there are two possibilities:

1. Delete the “Resources” column.

2. Execute the following script in the SharePoint Management Shell to create the resources list and restore the links.

#get web
$web = Get-SPWeb http://yourweb
#get the calendar list
$list = $web.Lists["Calendar"]
#activate hidden group work feature. The feature creates the following lists: Resources, Phone Call Memos, Whereabouts
$web.Features.Add([Guid]"9C03E124-EEF7-4DC6-B5EB-86CCD207CB87")
#get facilities column from calendar list
$f = $list.Fields.GetFieldByInternalName("Facilities")
#get lookup list
$lookupList = $web.Lists["Resources"]
#update facilities column and set lookup list id
$f.LookupList = $lookupList.ID.ToString("B")
#set lookup column
$f.LookupField = "Title"
#update list
$f.Update() 
#get web
$web = Get-SPWeb http://yourweb
#get the calendar list
$list = $web.Lists["Calendar"]
#activate hidden group work feature. The feature creates the following lists: Resources, Phone Call Memos, Whereabouts
$web.Features.Add([Guid]"9C03E124-EEF7-4DC6-B5EB-86CCD207CB87")
#get facilities column from calendar list
$f = $list.Fields.GetFieldByInternalName("Facilities")
#get lookup list
$lookupList = $web.Lists["Resources"]
#update facilities column and set lookup list id
$f.LookupList = $lookupList.ID.ToString("B")
#set lookup column
$f.LookupField = "Title"
#update list
$f.Update() 

I hope you found this guide useful. If you have any problems or any other questions, please send an e-mail to support@sapiens.at or post a comment.