Templates Plugins Courses

Google Calendar Service account permision

Hi,

I’ve recently purchased the google calendar service account and I’m having trouble displaying calendars in the visual element. I’m getting the following error:

“Events from one or more calendars could not be shown here because you do not have the permission to view them.”

I’m able to create new calendars in workflows and edit calendars that have been shared with the google service account. But when I enter a google calendar ID ([email protected]) into the visual element, I’m unable to view it. I tried both a calendar generated by the service account through the bubble workflow and a calendar I’ve shared with the service account (in the google cal web UI). And yes I’ve added full access permissions to the service account through the calendar UI as well.

I am however able to populate calendars that are made public.

Some other things I’ve tried:
-Giving the service account domain-wide delegation in google admin for calendar access.
-Authenticating myself in the application through my organization and then trying to load it.

Unfortunately, the demo doesn’t use the same UI as the one provided with the plugin.

Please let me know if I can provide any more details.

Thanks!

Hi @chris.carnduff,

Thanks for reaching out. Regarding the error message, it is impossible to display multiple calendars, unfortunately. The call is made for a single calendar only.

Regarding the Google account, it doesn’t have to deal with it, because in a single account you might have multiple calendars, but it is possible to display only one time.

As for this one:

Could you please relate a bit more what you you actually mean?

Best,
Alex

Hi @alexander,

Thanks for the quick reply. I’m not trying to display multiple calendars. I’m only trying to display one calendar at a time. What I was saying is that I can’t display a single calendar. One calendar I tried to display was a calendar created by the service account and the other I tried to display was a calendar I shared with the service account. I never tried to display two calendars at once.

Also, the calendar provided in the demo is a regular google calendar where you populate all the events. It’s not the service calendar where you enter a calendar ID.

Let me know if you have any recommendations.

Hi @chris.carnduff,

Thanks for feedback. In this case, could you please add our [email protected] account to your Settings / Collaboration tab (ignore the message regarding plan, as we are an agency and you can easily add us).

Please tell us your app name and page name where it occurs on test. Also, if you don’t mind it would be best creating a blank page for testing purposes so we can tweak the plugin on your end, it will speed things up.

We’ll investigate this troubles within your editor and get back to you with a feedback asap. :pray:

Best,
Alex

Hi @alexander ,

I’ve shared the credentials with you and PM’d you the information for access. Let me know if there is anything else you need from me.

Hi @alexander,

I’ve also noticed that there is no way to get the event ID after a new event is created so that I can save it in the database to update later if needed. Do you know if this functionality exists or if there is a workaround to save a unique ID so that I can update an event associated with a job?

Thanks.

Hi @chris.carnduff,

Thanks for feedback. I have replied via DM. The issue should be in the private key as we investigated it.

You can simply use the Result of Create New Event action and get the id, to store it in your database. :pray:

Best,
Alex

Hi @alexander,
Is there a way to get a single event’s data by ID? My use case is that I want to get the event’s start date and end date changed in the app if someone changes it in the google calendar UI. The workflow I’m trying to achieve is as follows:

-User changes times/dates of an event in the G calendar UI
-Program checks to see if the data of date and time in bubble is the same as the date and time of the google cal event.
-If it is not the same, update the date and time data in bubble database

The only way to do this currently is to call all calendar events for a calendar, filter the events by id, select the first event, get that event’s date/time. I’m also having a hard time converting the date and time of the event from the API (which is text) to a bubble date and time object.

Let me know if there is a solution for this and thank you for your help!

Hi @chris.carnduff,

Thanks for reaching out. Yes, you are right, the way you can extract the start date and end date is by using the Retrieve Calendar Events data call:

But why would you need to check for the date and time and compare it with your Bubble’s one, because when you create an event whether from Bubble or your Google Calendar account, it is in sync with your local time zone from your device.

You just need to format it accordingly. We have an example in another demo app here:

So just use the same format and it is going to work, or you can play around with the formatting to meet some other requirements of your app.

Hope it helps.

Best,
Alex

Hi alex, so I managed to find a bug with this plugin that does not allow my service account to display the calendar. The service account calendar element only authorizes the viewing of calendars that are shared with the google account that the browser is logged into. As far as I can tell, it does not even look at the service account’s credentials to see if the service account has access to the calendar. My evidence for this is when I try and view the calendar from a chrome window that is logged into a separate account, I get this error:
Events from one or more calendars could not be shown here because you do not have the permission to view them.

I’m currently able to see the calendar that is shared both with the service account and the google account that has access to the calendar.

What I am trying to do is show the calendar that is shared with the service account regardless of the bowser’s account. The demo app you provided uses a different element. Take a look here at the Calendar ID fields

Current Version

Demo Version

In addition, I know my credentials are correct because I’m able to add and delete events through a workflow just fine.

Please let me know if it is possible to fix this. Thanks.

Hi @alexander there been any updates to this?

Thanks.

Hi @chris.carnduff,

Thanks for catching up and sorry for late reply.

Our demo app is using a different element, indeed. This is simply the Bubble’s native Full Calendar plugin. You can give it a try on your side as well and try to display the calendar as per our demo setups. Meanwhile, we’ll see whether or not there is a problem with the GoogleCalendar element. :pray:

Best,
Alex

Thanks @alexander, I look forward to seeing the results.

Chris

Hi @chris.carnduff,

Could you please let me know if the Full Calendar implementation (as per our demo) is working properly on your side as well? :pray:

Best,
Alex

Hi @chris.carnduff,

I am reaching out with an important update. Unfortunately, the GoogleCalendar element is not going to function properly as part of this plugin because it is intended for the regular plugin (not Service account).

We decided to implement it in our other plugin - Google Calendar + Offline, but the Service account will remain a stable plugin but using the Bubble’s Full Calendar implementation as per our demo instructions. :pray:

Thanks a lot for your patience.

Best,
Alex