One of my current activities involves sharing the contents of a SharePoint calendar, which is hosted on an Intranet site, with external contacts.Â An extranet portal would be one possible approach but it’s probably over-engineering the solution and a simple calendar export, updated on a regular basis would also suit the requirement.
SharePoint allows RSS export from a Calendar but the events are exported in the order in which they were added to the calendar, rather than in chronolical order.Â I thought it would be far more useful to export them in iCalendar format and it turns out that’s possible too – with the addition ofÂ an open source webpart called iCal Exporter (which my colleague Andrew Richardson tracked down).Â You can also interrogate the SharePoint object model directly but that’s beyond my limited coding abilities.
Installing the webpart is pretty straightforward:
- Unzip the compiled version of the iCal Exporter webpart and copy the
iCalExporter.wspfile to the hard drive on a SharePoint server (I used Windows SharePoint Services 3.0).
- From the command prompt, issue the following commands to navigate to the folder containing
stsadm.exe, install the solution and deploy the solution:
cd â€œ%commonprogramfiles%\Microsoft Shared\Web Server Extensions\12\binâ€(it may be necessary to specify other options if deploying in a multi-server environments.)
stsadm â€“o addsolution â€“filename â€œc:\iCalExporter.wspâ€
stsadm â€“o deploysolution â€“name iCalExporter.wsp â€“local
- Using a web browser, navigate to the serverâ€™s site collection features page and click the Activate button on the iCalendar export button feature.
Once installed, there is an additional option on the Actions menu export the calendar in iCalendar format.Â Give the resulting file an
.ics extension and distribute it at will – most calendar clients (I tested in Outlook but it should work for others too) will be able to view the appointment details.