Dynamic Dimension Grouping

If you have custom calendars, you might want to introduce some more structure by grouping your Dimension object. For example: on a Contact calendar, create a grouping by account. To do this, you can create one or more Dynamic Grouping Fields, which are related to the calendar you want to group objects on.

Step-by-step guide

  1. Make sure you add the Dynamic Grouping Fields related list to the Multi Calendar page layout
  2. Create the field on the Dimension object that you want to use as grouping. This could for example be an Account lookup on a Contact Dimension
  3. From the calendar record, create a new Dynamic Grouping Field from the Dynamic Grouping Fields related list, using the fields specified in the next section

Creating more than one grouping on a calendar will expose a picklist next to the View buttons on the calendar, allowing you to choose which grouping to display

Dynamic Grouping Field fields

Field namedescription
NameThe API Name of the field on the Dimension object that the object should be grouped by
LabelThe label users should see in the picklist where they can select which grouping to use. Leave blank for the label of the field.
CalendarThe calendar this grouping belongs to
DefaultDefine if this grouping should be selected by Default. If no Default is specified, the first selected grouping is random but deterministic
HierarchicalIf this setting is enabled, the Name should refer to a self-referencing field and Booker25 will create a grouping accordingly. 
No GroupingMarks this grouping as having no grouping at all. This will also disable the validation on the Name field so it can be anything.

Example

The Resource calendar with no grouping:

The Resource calendar with a Hierarchical B25__Parent__c grouping:

Combining dynamic grouping with lazy availability loading

Pervious Booker25 versions already contained an option to group dimension objects in order to increase performance. This is represented by the following fields on each View record:

Field namedescription
Enable GroupingIf enabled, the Dimension objects will be grouped into groups of size "Grouping Size", and Availabilities will only be loaded once that group is expanded
Grouping SizeThe grouping size, if Enable Grouping is TRUE

These settings continue to work as expected, but if you also define Dynamic Dimension Groupings their functionality changes slightly:

  1. The Dimension objects are first grouped according to their Dynamic Groupings
  2. If any of the resulting groups has more than "Grouping Size" objects, that group is then further split into groups of size "Grouping Size"

The Dynamic Grouping groups will also only load Availabilities when expanded. This has the advantage of speeding up the initial load time of the calendar, but it does introduce a small load time the first time you expand a grouping.

On this page