Canvas Documentation
v4.1
v4.1
  • Introduction
  • Key Features
  • What's New
  • Canvas Design System Figma File
  • CANVAS FUNCTIONALITY
    • Getting Started
    • Branding & Design
    • Marketing Pages
    • Bubble Pages & Blocks
    • Roles & Permissions
    • Menus & Navigation
    • Data & Workflows
    • Emails & Alerts
      • Mail merge terms
    • Privacy rule checker
    • Miscellaneous
      • Setting up two factor authentication
      • Cookie and consent banner
      • Setting your password policy
      • Set up Payment info on Account page
      • Loading screen
      • Configuring multiple languages
      • Customizing your app's portal page colors
    • Reference
      • Pages
        • Index
        • Admin Portal
        • Account
        • Login
        • Legal
        • Reset Password
        • 404
      • Reusable elements
        • Header
        • Footer
        • Signup & Login
        • Cookies Permission
        • Widgets
          • App security
          • Header Widgets
          • Workflow Widgets
        • Admin Portal
          • Admin analytics
          • Admin email & templates
          • Admin header & footer
          • Admin legal popups
          • Admin branding, launch, and settings
          • Admin marketing pages
          • Admin portal canvas logic
          • Admin options settings
        • Menu Focus Elements
      • Data types
      • Option Sets
      • Backend Workflows
      • Design standards
        • Manually Building UI
  • Bubble Best Practices
    • Learning Bubble Basics
    • Principles
    • Database
    • Design
    • Security
    • SEO
    • Speed
    • Modularity
      • Data triggers
  • Canvas library
    • Page templates
      • Free Bubble Marketing Page
      • Premium Bubble Marketing Page
      • Centered Profile Page
      • Left-Justified Profile Page
      • Standard page
      • Toggle Tabs Page
      • Menu Page
      • Mobile Menu Page
      • Video List Page
      • Standard Portal / Dashboard Page
      • Simple Portal / Dashboard Page with Icons
      • Double Sidebar Portal Page Template
      • Search Page
      • Map Search Page with Toggle and Filters
      • Floating Map Search Page
      • Search Bar Page
      • Multi-Step Page With Progress Bar
      • Standard Multi-Step Process Page
      • Multi-Step Process Page with Sidebar
      • Gallery Profile or Product Page
      • Sidebar Profile Page
      • 2-Column Menu Tabs Page
      • 2-Column Checkout Page
      • 2-Column Video Chat Page
      • Vertical Multi-Step Page Template
    • Blocks
      • Monthly Calendar Scheduling Widget
      • No Reply Comments Thread
      • Nested Comments Thread (with Like and Reply)
      • Placeholder Group
      • List with Circular Progress Bar Repeating Group
      • Top Input Chat Widget
      • Bottom Input Chat Widget
      • Toggle Tabs Group
      • Single-Select or Multi-Select Pill Tabs Group
      • Settings group
      • To-Do List Repeating Group
      • Title Group with Button and Filters
      • Product Details Group With Progress Bar
      • Listing details with Icons and Menu Focus Group
      • Week Daily Availability Group
      • Frequently Asked Questions (FAQ) Repeating Group
      • Dismissible Module
      • Video Group
      • About Group
      • Add to Cart Group
      • Full Width Map with Directions Link
      • Location Module (Map and Directions)
      • Drag and Drop Repeating Group
      • Infinite Columns Horizontal Scroll Data Table with Fixed First Column
      • Expiration timer
    • Popups
      • Confirmation Popup
      • Message Popup
      • Image Popup
      • Video Popup
      • Vertical Scroll Popup
      • Edit Popup
      • Standard Form Popup
      • Subscribe Popup
      • Feedback / Contact Popup
      • Details Popup
      • Add List Popup
      • Advanced Form Popup
      • Rating Popup
      • Toggle Tabs Popup
      • Share Popup
      • Multi-Step Popup
      • Invoice Popup
      • Stripe Credit Card Purchase Popup
      • View Profile Popup
      • Send Message Popup
      • Multi-Select Pill Tabs Popup
      • Pricing Plans Popup
    • Reusables
      • Multimage uploader
Powered by GitBook
On this page
  • Overview
  • Structure
  • How to set up

Was this helpful?

  1. Canvas library
  2. Blocks

Monthly Calendar Scheduling Widget

Use this monthly calendar widget to display available booking dates that the user can reserve.

PreviousBlocksNextNo Reply Comments Thread

Last updated 2 years ago

Was this helpful?

Overview

This widget includes two calendars that display available booking dates. Users can select a start and end date to reserve.

Structure

  • When this block is added to a page, it is placed within a group called Blocks container 860 (do not rename) on the page. This group contains the responsive settings for all blocks.

  • This widget uses the Toolbox plugin's expression element to get a list of dates in a month. These two elements need to be visible on page for the list of dates to generate.

    • var - Expression Get days in month 1 generates the list of dates in the first month

      • RepeatingGroup month 1 days will display a list of dates in month 1

    • var - Expression Get days in month 2 generates the list of dates in the second month

      • RepeatingGroup month 2days will display a list of dates in month 2

  • The block also comes with a data type called Blocked dates. This is the data type that will store the booking dates and each of its date range (start and end dates).

  • Group Disable clicking cell? (month 1) and Group Disable clicking cell? (month 2) will control when a date in the respective month is clickable:

    • If a date is less than the current date, then the date will not be clickable

    • If the dates are the selected start and end dates, then they will not be clickable

    • If there is an existing booking (e.g. Sep 20-23):

      • When a user selects a start date of Sep 15, then the user can only select an end date prior to the start date of the next booking (e.g., Sep 19) and any date after Sep 19 with not be clickable.

      • When a user selects a start date of Sep 26, then the user can only select a start date after the end date of a previous booking (e.g, Sep 24) and select an end date up until the start date of the next booking.

  • Shape today indicator (month 1) and Shape today indicator (month 2) will show only when the month's date is the current date.

  • Clicking on Button Select first date and Button Select end date will allow users to select or edit the booking's start and end dates.

    • Group Inner select date (month 1) and Group Inner select date (month 2) will trigger the workflows to select those dates.

  • Clicking on Button Cancel will reset the select dates and clicking on Button Confirm will create an entry for Blocked dates . This will block those dates on the calendar to prevent other users from booking.

  • Popup Hidden Variables This popup includes various variables that are referenced in workflows or conditionals on the page.

    • var - ⚙️ App settings - This group stores the App settings object (e.g., app name, primary color, and etc.)

    • var - variable name placeholder - This group is a placeholder.

    • var - App variables - This group stores the App variables entry (only applicable to apps that utilize site-wide app variables).

    • var - month offset (month 1) & var - month offset (month 2) - This is used to generate the list of days in the two monthly calendars.

    • var - selected first date - This stores the selected start date.

    • var - selected second date - This stores the selected end date.

    • var - start date input selected? & var - end input selected? - These are temporary variables that check if the start or end dates are selected/focused.

    • var - blocked dates (before booked dates) & var - blocked dates (after booked dates) - These variables are used to prevents users from booking dates that overlap with existing bookings.

How to set up

This widget should work right out of the box and it is fully responsive. To customize, you may want to add a new field to the Blocked dates data object and associate the blocked dates with another thing in your database (e.g., hotel room or a product for rental).

  • If you do proceed with adding a new field, make sure to update any workflows or do a search for blocked dates logic to include that search criteria.

For more information on how to use hidden variables, click .

here