TBR: Meeting Scheduler - Google Calendar Offline Access - Available Time Slots

I have just finished up with a new template for scheduling and allowing users to make bookings. It is really used to book a meeting. So a user can schedule a meeting with colleagues.

Users must signup for the app and connect their Google Calendar. This setup is enabled through Google offline access, meaning the users do not need to be logged into the app to get booked into a meeting.

This is perfect for SasS products. Extremely easy to integrate into exist projects.

No paid plugins were used in the creation of this template. Available time slots are generated using ListShifter plugin, which is Karma ware (I am unaffiliated with the plugin).

Check out the video demonstrating how easy it is for a user to signup and connect their Google Calendar of choice.

Check out the video demonstrating how easy it is for a user to select multiple other users, set the earliest start and end date for a meeting to take place, as well as earliest start and latest start time of a meeting plus the duration of the meeting and the booking interval and get a list of all the available time slots using the selected users Google Calendar events.

This template does not save any meeting information to the database, but it of course could be customized and configured to do so.

A simple powerful way to schedule meetings with multiple users and doing so generating available time slots across multiple days.

Screen Shot 2021-04-27 at 12.49.30 AM

Screen Shot 2021-04-27 at 12.48.38 AM


Hey @boston85719

Very slick calendaring!!

I am developing an app that has to do a lot of the availability checking but I am stumped on how to check one list against a second list (as opposed to checking just one date range against a list of date ranges. It looks like you have done this with your app. Is that correct?

If it is, how have you done that? Did you nest Listshifter Iterates or did you do both loops inside on processor?

If it is the latter, how did you iterate on the second list. I know that Processor has “contained by function” and we be a lot faster than a Bubble workflow but at this point, I can’t figure out how to do either. Saw the back and forth between you and Keith way back in November on this last night and thought I saw a way forward but am missing a critical step I believe.

Any guidance is hugely appreciated!



Another great template @boston85719 :slight_smile:

1 Like

This is great! Is it available already?

Thank you. Just waiting for Bubble to approve it. First submission was rejected because of user data having gmail accounts associated.

Hopefully the explanations as to the necessity of it, ownership of the accounts and the template not copying the database will help push past that issue. :crossed_fingers:

Hello @boston85719,

Your template looks great! For how long does the Google Calendar connexion last? If two users set up their account and one of them book a meeting with the other after several months, will it still work? Or do they need to reconnect regularly to maintain the connexion?

Connection is setup to be offline access, which means it is updated regularly automatically and the user doesn’t need to manually. If a user removes the app access from within their Google account, then they would need to manually reconnect from within the app.

I have not tested for how long an inactive user (not logging in, or not having meetings booked) will have their credentials automatically updated. If there were any reason it would not, it would be due to Google policies.

1 Like

The refresh tokens are good for quite some time. Potentially forever?

1 Like

Hello @boston85719


Based on your response, I actually bought your template Meeting Scheduler. Unfortunately, the Google connexion seems not to be working anymore.

When clicking the ‘Connect Google Calendar’ button, the following error message pops up:

Do you know why? Could you help me with that?

Many thanks!


It says in the message that there is a redirect URI mismatch.

This has to do with the settings in your Google Console for your app and the API Keys in your app associated with your Google API keys.

If you are in need of training on how to set up Google API keys, I provide private training sessions. If you would like to set up a training session, please reach out via private message.


Thanks @boston85719 for your answer!

I actually setup the Google API following tutorials and tips from the Bubble community but am still facing a problem with the redirect URI: it doesn’t work on your template whereas when I rebuild an app from scratch I manage to make it work (using the same information in my API settings)…

I have tried to authorize the following URLs into my Google Console, but none of them seem to be working:

I guess I should use a propre URL with the template? Could you please just tell me what you used to make it work? I would be really helpful :pray:

If that is the case, then it likely is not an issue with the API calls you put together, but the authorization navigation.

From the screen shot you shared, it seems like the issue is authorizing a Google account, which needs to have the proper setup for the navigation to the Google hosted authorization page.

In the template, on the page user-profile, there is a button “Text Connect to Google Calendar” that triggers the navigation workflow action to the Google hosted authorization page.

In that link there is a dynamic expression for the website home URL, which sometimes could be a problem if the Google setup does not include both the version-test and the live version of the apps link.

In the link it is part of the parameter ‘redirect uri’ and that is where I believe you are likely having an issue. Make sure the entire redirect uri parameter is setup properly for your app.