“Cal-Heatmap” - Calendar Heatmap

Demo to preview the plugin:

Introduction

Cal-Heatmap is a powerful Bubble plugin that allows you to add a fully customizable calendar heatmap to your application. Similar to GitHub’s contribution graph, this plugin visualizes data intensity over time using color gradients. It supports multiple languages, customizable styles, and provides “clicked” events with associated states to create interactive visualizations.
The plugin is perfect for displaying activity over time, tracking habits, visualizing user engagement, or any data that benefits from a time-based heatmap visualization.
Image without caption

How to setup

Setting up the Cal-Heatmap plugin is straightforward:
  1. Install the plugin from the Bubble plugin marketplace.
  1. Add the Heatmap Calendar element to your page.
  1. Configure the data source by providing:
      • A start date
      • Data source (list of items)
      • Date field (from your data source)
      • Value field (from your data source)
  1. Customize the appearance using the style options provided.
    1. Image without caption
      Image without caption

Plugin Element Properties

The plugin contains a visual element called “Heatmap Calendar” that should be placed on your page.

Heatmap Calendar

Image without caption
Image without caption
Image without caption
Image without caption
Fields:
Title
Description
Type
Start date
The first date to show on the calendar
Date
Data type
The type of data to be displayed
Custom Type
Data source
The list of items to display on the calendar
List
Date
The date field from your data source
Date
Value
The numeric value to determine color intensity
Number
Min color
The color used for minimum values
Color
Max color
The color used for maximum values
Color
Locale
The locale used to translate date names (e.g., en-gb, fr, es)
Text
Show legend
Whether to display a color legend
Boolean
Legend cell size
Size of the legend cells
Number
Legend cell padding
Padding between legend cells
Number
Legend orientation
Orientation of the legend (horizontal/vertical)
Text
Vertical legend position
Position of the legend when vertical (top/center/bottom)
Text
Legend range 1-4
Threshold values for the legend color ranges
Number
Domain
The main time division (hour/day/week/month/year)
Text
Range
Number of domains to display
Number
Domain margin
Margin between domains
Number
Domain font size
Font size for domain labels
Number
Domain font color
Font color for domain labels
Color
Domain label format
Format for domain labels (MMMM, YYYY, etc.)
Text
Subdomain (cell)
The time division for cells (must be smaller than domain)
Text
Subdomain font size
Font size for subdomain labels
Number
Subdomain font color
Font color for subdomain labels
Color
Cell size
Size of each cell
Number
Cell padding
Padding between cells
Number
Cell radius
Border radius of cells
Number
Label position
Position of labels (bottom/top/left/right)
Text
Items (name)
The “item” name for the tooltip: “10 items on date”
Text
Connector (name)
The “connector” name for the tooltip: “10 items on date”
Text
Hide date on subdomain
Whether to hide date text on cells
Boolean
Previous selector ID
ID of the element to use as previous button
Text
Next selector ID
ID of the element to use as next button
Text
Animation duration
Duration of animations in milliseconds
Number

Element Actions

Next

Navigates to the next time period in the calendar.
Image without caption

Previous

Navigates to the previous time period in the calendar.
Image without caption

Rewind (Reset)

Resets the calendar view to the initial start date.
Image without caption
No parameters required for this action.

Exposed states

Name
Description
Type
Clicked date
The date of the cell that was clicked
Date
Clicked value
The value of the cell that was clicked
Number
Is fully loaded?
Whether the calendar has finished loading
Boolean

Element Events

Name
Description1
Cell is clicked
Triggered when a cell in the calendar is clicked

Workflow example

Here’s a basic workflow example for setting up and using the Cal-Heatmap calendar:
  1. Add the Heatmap Calendar element to your page.
  1. Set up your data source:
      • Create a data type (e.g., “Activity”).
      • Add a Date field and a Value field (numeric).
      • Create a list of these items to use as your data source.
  1. Configure the Heatmap Calendar:
      • Set the Start date.
      • Select your Data type.
      • Connect your Data source.
      • Map the Date and Value fields.
  1. Add interactivity:
      • Create a workflow that triggers on “Cell is clicked”.
      • Use the “Clicked date” and “Clicked value” states to show more details.
      • Add buttons with “Previous”, “Next”, and “Rewind” actions to navigate the calendar.
  1. Advanced implementation: Add custom navigation buttons.
      • Add two buttons to your page for Previous and Next.
      • Set their IDs in the element properties (Previous selector ID and Next selector ID).
      • The calendar will automatically use these buttons for navigation.
      Image without caption
Image without caption

Changelogs