!! Calendar Dashboard
Last updated
Last updated
The Calendar Dashboard represents events in monthly calendar and allows to manage them by simple dragging. Here is how this dashboard can look like:
This Kanban is a with 5 ; each of them contains the same , initialized with different . Columns in this dashboard represent days, and cards in these columns are corresponding to events. Dragging events from one column to another changes their start dates. If click on event, its detailed data will be shown in the form, where it can be edited.
To make a such dashboard administrator should do actions listed below:
Name
Event form
Data Source Object
Event
Multi Page Form?
false
Show navigation panel
true
Buttons configuration
Check "Save" button for "Edit" mode only. Uncheck other.
Header configuration
{$Event.Subject} (for all modes)
Add these elements to the form:
1
Section
section
Columns: 2
Show on Edit page: true
Show on View Page: true
Scrollable: false
2
Button
button
Close
Show on Edit page: true
Show on View Page: true
The following elements all should be added into section configured above. All these elements should be Data Source Fields:
#
Data Source Field
Name
Title
Properties
3
Subject
Subject
Subject
Required: false
Read Only: false
Show on Edit page: true
Show on View Page: true
Instructions: not set
Conditional Styles: not set
Events: not set
View Type (for picklisis): Single list
Hide 'None' (for picklists): false
Options Groups (for picklists): not set
4
Type
Type
Type
5
EventSubtype
EventSubtype
Subtype
6
StartDateTime
StartDateTime
Start Date Time
7
EndDateTime
EndDateTime
End Date Time
8
Description
Description
Description
Add these Form Actions:
1
Close Panel
Type
Form API
Form Action Type
Fire Event
Name
e.FLX_KB:ApplicationEvent
Parameters
Name: data Value Type: Object Value:
Has Conditions
false
2
Refresh Column
Type
Form API
Form Action Type
Fire Event
Name
e.FLX_KB:ApplicationEvent
Parameters
Name: data Value Type: Object Value:
Has Conditions
true
Conditions
1
Form.StartDateTime not equal to {$Event.StartDateTime}
2
Form.EndDateTime not equal to {$Event.EndDateTime}
Conditions logic
{1} OR {2}
Add the following events to the form:
1
Form
Type: onAfterSave Enabled: true
"Refresh Column" action without parameters
2
"Close" button
Type: onClick Enabled: true
"Close Panel" action without parameters
Give it a "Weekly Calendar Dashboard" name and some description.
Select "White" theme.
Save dashboard and go to Kanban Bulder.
Name columns from "Sunday" to "Saturday"
Set column descriptions to digits from "0" to "6" (thus, descriptions will contain indexes of proper weekday)
Leave columns widths default ("auto")
Leave columns "Is Active" checkboxes default (checked)
Data Source Type = SObject
Data Source = Event
Order = Start Date Time, asc
Page Size = 5
#
Column Name
Conditions
Header Cell Value
Field Name
Operator
Type
Value
1
Sunday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate})]
{$Variables.startdate} (Sunday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + HOURS(24))]
2
Monday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 1]
FORMULA[{$Variables.startdate} + 1] (Monday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 1 + HOURS(24))]
3
Tuesday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 2]
FORMULA[{$Variables.startdate} + 2] (Tuesday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 2 + HOURS(24))]
4
Wednesday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 3]
FORMULA[{$Variables.startdate} + 3] (Wednesday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 3 + HOURS(24))]
5
Thursday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 4]
FORMULA[{$Variables.startdate} + 4] (Thursday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 4 + HOURS(24))]
6
Friday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 5]
FORMULA[{$Variables.startdate} + 5] (Friday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 5 + HOURS(24))]
7
Saturday
Start Date Time
greater than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate}) + 6]
FORMULA[{$Variables.startdate} + 6] (Saturday)
Start Date Time
less than
Formula
FORMULA[DATETIMEVALUEGMT({$Variables.startDate} + 6 + HOURS(24))]
Set font-size:14px CSS style to cells in headers of each column
Set Data Source Type to "Event"
Card Layout configuration:
kanban = {$Card.Kanban}
mode = edit
id = {Event.Id}
Set Position of Card Layout to Modal
Check "Hide Footer" checkbox
Set Text of layout header to {event.Subject} ("Title Settings section of Header Configuration tab)
Set Card to Collapsible ("General" section of Card Settings)
Set CSS styles of Card to padding:0px
Set Value of the default Card Component to {Event.Subject}
Set its CSS Styles to background-color:#c6c9ff; padding:0px 5px;
Add one more Text Card Component under default and:
Set its Value to {Event.Type}
Set its CSS Styles to padding:0px 5px
Add third Text Card Component under previous and:
Set its Value to FORMULA[FORMAT({Event.StartDateTime}, 'hh:mm a')]
Set its CSS Styles to padding:0px 5px
Add fourth Text Card Component at the right of third (it will become 50% wide) and:
Set its Value to FORMULA[TOTEXTDURATION({Event.DurationInMinutes}, 24)]
Set its CSS Styles to padding:0px 5px; text-align:right;
Drag-n-drop allowed to all columns
Drop behavior left default to all columns (source column = Remove Card, target column = Refresh)
Click on card and add a new action with these properties:
Name = Update Event Start Date
Type = Field Update
Execute = Always
Status = Active
Context Object Type = Event
In the Field Update Settings section configure this:
Object Name = Event
Fields:
Start Date Time
End Date Time
Conditions:
Activity ID eqials {event.id}
Give it a "Calendar Dashboard" name and some description.
Select "White" theme.
Save dashboard and go to Kanban Bulder.
Leave their properties default
Set their titles from "Weekly Calendar 1" (topmost container) to "Weekly Calendar 5" (bottommost container)
Set API names for containers and Input Variables for each child dashboard:
Container
Container API name
Input Variable name
Input Variable value
Weekly Calendar 1
week1
startDate
{$Variables.week1Start}
Weekly Calendar 2
week2
startDate
{$Variables.week2Start}
Weekly Calendar 3
week3
startDate
{$Variables.week3Start}
Weekly Calendar 4
week4
startDate
{$Variables.week4Start}
Weekly Calendar 5
week5
startDate
{$Variables.week5Start}
Set connections to these:
Source Kanban = Weekly Calendar Dashboard
Target Kanban = Weekly Calendar Dashboard
Card Name = Event
Source Columns: all (set one connection per each)
Target Column: for each source column select target column with the same name
Action on drop: configure new with these properties:
Name = Update Event Start Date
Type = Field Update
Object name = Event
Conditions = Activity ID equals {event.id}
Fields:
Start Date Time
End Date Time
Copy this action onto each connection set
Connections should look like this:
Create the following Actions of "Define Variable" type. Set Variable Type to Text in all actions:
1
Get Previous Month
currentDate
2
Get Next Month
currentDate
3
Update Week 1 Start Variable
week1Start
4
Update Week 2 Start Variable
week2Start
5
Update Week 3 Start Variable
week3Start
6
Update Week 4 Start Variable
week4Start
7
Update Week 5 Start Variable
week5Start
8
Update Week 1 Variable
week1
9
Update Week 2 Variable
week2
10
Update Week 3 Variable
week3
11
Update Week 4 Variable
week4
12
Update Week 5 Variable
week5
Create 2 action groups and add actions from configured above to them (in the order specified below):
name = Get Previous Month Action Group
actions:
Get Previous Month
Update Week 1 Start Variable
Update Week 2 Start Variable
Update Week 3 Start Variable
Update Week 4 Start Variable
Update Week 5 Start Variable
Update Week 1 Variable
Update Week 2 Variable
Update Week 3 Variable
Update Week 4 Variable
Update Week 5 Variable
name = Get Next Month Action Group
actions:
Get Next Month
Update Week 1 Start Variable
Update Week 2 Start Variable
Update Week 3 Start Variable
Update Week 4 Start Variable
Update Week 5 Start Variable
Update Week 1 Variable
Update Week 2 Variable
Update Week 3 Variable
Update Week 4 Variable
Update Week 5 Variable
Basic Configuration tab
Set Icon to action:new_event
Statistic Configuration tab
Set its CSS Style to font-size: 24px;
Set its Value to FORMULA[FORMAT({$Variables.currentDate}, 'MMMM, yyyy')]
Variables Configuration tab
Add these variables:
1
currentDate
2
week1Start
3
week2Start
4
week3Start
5
week4Start
6
week5Start
Add the following buttons:
Previous Month
type = Icon
title = Previous Month
icon = utility:left
handler:
type =Action Group
value = Get Previous Month Action Group
parameters not set
success handler:
type = Kanban API
value = Refresh Kanbans
parameters not set
Next Month
type = Icon
title = Next Month
icon = utility:right
handler:
type =Action Group
value = Get Next Month Action Group
parameters not set
success handler:
type = Kanban API
value = Refresh Kanbans
parameters not set
to "Form".
Click "+" button to add new Form. Create with these properties:
Go to and create new standard dashboard.
Add to the dashboard.
to all columns:
to the columns and add 1 to their headers with the following values:
Set height:22px to headers of all columns
to dashboard and name it "Event"
Set to Form. Select Event Form (which was created earlier and described above)in the lookup and set its parameters to these:
configuration:
Set these to Card in all columns:
To add a sense to Cards dragging . In this example action will be the same for all columns, so, no need to configure them separately.
Go to and create new composite dashboard.
Make dashboard have in vertical stack.
Select previously created "Weekly Calendar Dashboard" kanban as in each container
You do not need to from dashboard of each container to every other because the dashboard is the same for all containers. It will be enough to set them one time from any container to any other.
Add one of Text type