Template Setup Guides

Booky - Bookings & Appointments Template

Template page link:


Booky is an amazing no-code app template that will allow you to launch a platform that bring users and service providers together. It can be used for Consultants, Teachers, Fitness Instructors, Handymen etc. It features responsive design, messaging, payments & refunds, cancellation policies and much more!


  • Landing page

  • Responsive design

  • Payment system

  • Messaging

  • Class search

  • Admin Dashboard

Payments: See the documentation on how to set Stripe Payments in Bubble App.

Data Structure


The user data type stores all the information about a specific user, some of these information include the basic user profile information (name, email, image, etc) and in addition to this the user type contains fields like the cancelation policy (laws governing payments and refunds), user review, user listings, searchlocation, newmessage, stripeuser, pricing, instructor (takes the value of either Yes or No and determines a user that is an instructor) and more.


A user's specialty falls under a given category, these categories are found within the Activity type. It takes just two fields that include the activityname and the icon.


Users can book appointments from listings and pay for that particular listing and this data type handles a lot of the booking process. For instance, the field canceledbyinstructor takes the value of yes or no and is True when the Instructor cancels a booking, andtime slot determines the time range for the appointment. And just like the canceledbyinstructor , fields like Available, Booked, canceledbylearner, chargeapproved, deniedbyinstructor, paymentdone and pending confrimation also takes a value of either yes or no.


When making a booking, a user can select start and end date from a calendar view for the appointment. The set date is handled within this data type that consist of fields like Available (takes a value of either yes or no) that checks if the set date is available, Booking (the associated booking), Headline and the timeslot.

Cancelation Policies

In the event that a user wants to cancel an already booked appointment, there is a policy that governs payment and refunds. The cancelation policies data type contains the fields needed for this process; they include a description, duration before cancellation becomes impossible, policy type and the refund percentage.

Class Booking

This data type only contains the built-in field.

Class Listing

All the fields associated with a listing is categorized in classes in this data type. Some of the fields include class booking, class Description, class Headline, class Location, class reviews, the associated user, etc.


Users can exchange messages and this data type holds its history inside the Message list and Recipient fields.

Learnto Listing

Users can book a lesson offered by a specialist. This data type has fields like Learnto booking, Learnto cover, Learnto Price, Learnto Rating, etc. that classifies details about the appointment.


An instructor user can post services they are offering on the application. Necessary details about the post or listing is stored in the listing data type. Fields on this data table include list of booking, cancellation Policy, class (takes a value of either yes or no), description, reviews, subject (List of Activities), etc.


The Location type takes the geographic location and the built-in fields


In addition to the built-in fields, this type contains just the Message body field that takes a text value.

The popular locations contain some information about the city, Image and the State.


Reviews can be made about posted services( Listings) and this data type contains the review body (text), review rating (number), associated listing and its listing ID


On this template, there is a view that shows testimonials of satisfied users. This type takes that testimonial with fields like text content, job title , name, photo of the customer.


Transactions happen when a listing posted by a service provider (Instructor) is booked by a user (learner) and a fee is paid for the service. The Transactions data type takes fields that are necessary for a transaction. They include Amount, Booking, Comission (An agreed percentage of the paid fee that goes to the owner of the application), Instructor, Learner, Listing, Refund (Takes either yes or no) and the stripe transaction id.



This is the landing page of the template, it also contains information about the application and how it can be used. This information is static. Also within this page, there is also a search feature to easily find service providers, buttons for user account creation and user login where applicable, featured images of service providers and a list of testimonies from satisfied customers.

Custom State

This page has no custom states.


This page is where a user can create a listing for offering a service to other users. It takes required details like the user's headline, activity (user's specialization), additional information about the activity, location, tags (dynamic keywords to filter user activity in a search), cover image, refund policy and pricing.

Custom State

This page has no custom states.


This is where requested bookings and previous bookings are viewed. A search button is also provided to search for more services.

Custom State

Custom state




Leave review popup

This state is used to change views and displays a popup view.


This page simply contains any and all information to assist instructor users or student users with any question they have or problems that they encounter.

Custom State

Custom state





This state uses its value to scroll between views on this page.


An instructor's profile page consists of three tabs that include Calendar, Listings and Bookings. On clicking on a given tab, all the details of the tab associated with the current user becomes visible. Within the Listings tab, there is an option to create more listings.

Custom States

Custom state




Group instructor main

The id state is used to change views.


Popup B

when the delete button/ icon is clicked within the listings view, this state displays a popup dialog for confirmation.


The profile page showcases the basic details about the user and provides options for a user to make changes to those details become an instructor or find one.

Custom States

There are no custom states in this page.

The search page features a filtered search using keywords from subject of the service, the location and a range in the cost. Results from a search is listed below and the location is also previewed on a map to the right of the list.

Custom States

There are no custom states on this page.


This page provides the user with options to register an account traditionally with an email and password, login with those credentials and also login directly with facebook or google.

Custom States

The signup page has no custom state.


Here is where the privacy policy and terms and conditions are displayed. It has no custom states.


This simple page shows every information about the app. This page has no custom states.


This is the template's blog page that shows blog posts in a list. No custom states here.


This page contains a request or an inquiry form that takes details like the user's name, user's email, subject of the message and the message itself. Contact page has no custom states.


When a user has a message, the inbox page displays the conversations in a list with the recipients name, and the body of the message is immediately visible once a recipient(list item) on the conversation list is clicked. The inbox page also displays the date associated with each message. In the case where the user has no messages, this page is empty. Also, the inbox page has no custom states.


This page contains the information about a particular listing that include the reviews for that listing, the portfolio of the associated user, service provider's location and options to contact the service provide by using a calendar view to book an appointment. In addition to this, the listing page provides social media share links for users to publish listings on their social media profiles.

Custom states

Custom state




Popup booking

Calculates the date for an appointment.


This page is the same as the signup page.


The settings page contains three tab views that include payment, settings and notifications. The payment view provides the user the option to add credit card details and also to connect their account with a stripe account. Also, we the settings tab, the user can make changes to their name, email, profile image and account password. Finally, the notifications tab allows the user to determine how a selected set of account information is disseminated to them.

Custom states

Custom states




User ID

This state uses its number to determine which tab view is active at a time.


A simple page that can be used as a welcome page after a successful registration or booking.


In the case where the user has marked some listings to their wish list, these listings will be populated on this page in a list while in the event that they are no listings, this page prompts the user that zero (0) results found.


This template has an admin dashboard that is used to make changes to the database via frontend. Custom states are used for navigation between tabs and inside the floating group. In the dashboard, the admin can edit / delete users, activities and popular locations. Also ability to check transactions and see testimonials.

Specific Reference


To setup your stripe account, go to, create an account. You will be allowed to access your dashboard once you have successfully verified your email address and activated your account.

Click on Developers and then, API keys. copy your API keys. Ensure to use a live API key when your template goes live

Paste the API keys in the stripe connector calling the plugin.

Things to note

Admin dashboard

The page uses a security measure to prevent deletion or editing features in demo preview.

Delete feature blocked
Edit feature blocked

In order to remove the block on these actions you'll need to make changes in the Bubble Editor in the admin page, find all pop-up elements

Pop-up elements

In the pop-up elements find the Save and Delete buttons, under conditional tab of element setting, remove the condition in place for actions to work.

Condition in place

Also for when page is loaded the condition on workflow when current user's mail is not [email protected], the first event.

Page is loaded event

Demo to preview the template