iCal Feed

Booker25 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

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 Today - daysIntoThePast

7

durationInDays (optional)

When this value is provided the end parameter is overwritten and will be the date for the following formula start + durationInDays

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:

1 2 3 4 5 6 7 8 9 10 11 12 13 BEGIN:VCALENDAR PRODID:-//Booker25 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 Booker25 and the VEVENT values:

VEVENT

Booker25 Reservation Field

VEVENT

Booker25 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 Booker25 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 Booker25 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.