iCal Feed
GoMeddo comes with a Visualforce page which can be exposed to a public site to display an iCalFeed, the Visualforce page is called ICalFeed
.
This Visualforce page takes a number of query parameters described in the following table:
Query Parameter | Description | Default value |
---|---|---|
dimensionIds (required) | A comma separated list of dimension ids (for example resource/staff ids). Needs to be a list of one dimension (e.g. staff/resource dimensions cannot be mixed). |
|
start (optional) | ISO date - the start date of the window you want to retrieve reservations for. |
|
end (optional) | ISO date - the end date of the window you want to retrieve reservations for
|
|
daysIntoThePast (optional) | When this value is provided the start parameter is overwritten and will be the date for the following formula | 7 |
durationInDays (optional) | When this value is provided the end parameter is overwritten and will be the date for the following formula | 21 |
The page will return a VCALENDAR
and contains a VEVENT
for each reservation that matches the filter query parameters. The following example has a single reservation:
BEGIN:VCALENDAR
PRODID:-//GoMeddo
VERSION:2.0
BEGIN:VEVENT
DTSTART:20210910T090000Z
DTEND:20210910T100000Z
DTSTAMP:20210910T094940Z
UID:a0Y7a00000JoGfcEAF
LOCATION:Test Resource
SUMMARY:Test Title
DESCRIPTION:Test Description
END:VEVENT
END:VCALENDAR
The following mapping exists between GoMeddo and the VEVENT values:
VEVENT | GoMeddo Reservation Field |
---|---|
DTSTART | B25__Start__c |
DTEND | B25__End__c |
UID | Id |
LOCATION | B25__Resource__r.Name |
SUMMARY (not present if Title is empty) | B25__Title__c |
DESCRIPTION (not present if Notes is empty) | B25__Notes__c |
Setup and permissions
To make the ICalFeed
page public you need to set up a Salesforce site, register your domain and press new under the Sites Section that will appear once your domain is registered
Give your site a name (label in the example below) and select ICalFeed as the available homepage.
Permissions
You can either adjust the guest user profile or create a permission set. Press the Public Access Settings button in your newly created site, this brings you to the profile page. Edit this page and give Read access to both the Reservation and the Resource object (if you choose the permission set route you can do this in the permissions set you have created).
Make sure you give read access to the following fields on that object. You can do this by navigating to the Object settings/Field-Level Security on the profile page and press “view” and edit the values:
User Start Datetime on Reservation
User End Datetime on Reservation
Resource on Reservation
Title on Reservation
Notes on Reservation
Name on Resource
If you choose to do this in a permission set you have to assign the permission set to the Site Guest user. Follow the steps below to assign a license but also assign the permission set under Permission Set Assignments.
Assign a License
The user that is exposing the ICalFeed needs to have a GoMeddo license. To assign this license go to Back to the profile page and press View Users at the top. This should display a user with the name <SITENAME> Site Guest User. Navigate to this user and, at the bottom, assign a GoMeddo license under managed packages.
Testing the page
If you navigate to the Site page again you can press the link Preview as admin
Any errors will be displayed on this page.
Initially it will display an error that you did not set the dimensionIds. Just navigate to the resources object, open on of the resources and copy the ids from the url. Navigate back to the public page url and add ?dimensionIds=<RESOURCEID> (replace <RESOURCEID> with the id you just copied) to the url.
If an ICS file downloads this means everything is set up correctly, you can now subscribe to that url.
For Outlook (follow Subscribe to a calendar steps): https://support.microsoft.com/en-us/topic/cff1429c-5af6-41ec-a5b4-74f2c278e98c
For Google (follow Use a link to add a public calendar steps): https://support.google.com/calendar/answer/37100?hl=en&co=GENIE.Platform%3DDesktop