Configuring Google Calendar 2-way sync in Amelia Booking Plugin
Video Version
With Google Synchronization, all employees in Amelia can sync their working schedule with their Google Calendar. Each appointment booked in Amelia will be added to their Google calendar with the customer added as a participant.
If Employee already has events in Google calendar marked as busy, those will not be available for booking in Amelia – this will prevent overbooking. Rescheduling, cancelling or deleting the appointment needs to be done in Amelia. Suppose you reschedule the appointment in Google Calendar. In that case, that will not reflect in Amelia, but if you reschedule the appointment in Amelia, it will be updated in Google Calendar as well.
Client ID and Client Secret
Before you can integrate Amelia with Google Calendars, you must create a “Client ID” and “Client Secret”.
Click on “Select a project”, or if you have some other projects active, simply click on the drop-down to create a new project.
In a new window that appears, click on “NEW PROJECT” in the top right:
Enter the project name, select “No organization” and click on “CREATE”:
Please note: If you’re using your business account (G-Suite), you do need to select your organization and the location associated with it. All other steps remain the same.
You will see the project is being created in the top right, and when it is created you will see a notification similar to what you can see here:
If you click on this notification, it will take you to the Project’s dashboard -> “APIs & Services” section:
In that window select “OAuth consent screen”
The first step in the OAuth consent screen is to select the User Type. Since your employees will be registering with their own Gmail accounts, you need to select “External”, and click on “Create”.
A new window will open where you need to type “App name” and choose the “User support email”. This email will be the email of the Google account you’re logged in with, so just select it from the drop-down.
Then, you need to enter your domain under the “Authorized domains” section and add your email in the “Developer contact information” field. After adding this, click on “Save and continue”.
You will then be taken to the 2nd step in the process, but you can skip that. Once you get to Step 2, simply click on “Library” in the left-hand menu and it will take you to the API library.
Search for the Google Calendar API on the next screen:
You will see two results. Click on “Google Calendar API“
Next, click on the “Enable” button.
When the API is enabled, you will see it’s “Overview” screen. Click on “Create Credentials“button on the far right.
This will open the “Credentials” window. There you need to select:
Google Calendar API
Web browser (Javascript)
User data
And click on “What credentials do I need?”
At the second step, give the “Name” of your OAuth client ID and in the “Authorized redirect URIs” field, enter the URL from “Redirect URI” field. You can find the “Redirect URI” field in “Google Calendar Settings” dialog on Amelia Settings page. After that click on “Create OAuth client ID” button.
At the third step click on “Done” button. After that select your recently created OAuth client IDs.
When you access the OAuth client, please double check if the “Authorized Redirect URIs” is actually added.
If it is missing, please copy the “Redirect URI” from Amelia’s Google Calendar Settings again, and hit enter. The successfully added URI will look like this:
Copy and paste “Client ID” and “Client Secret” into related fields in “Amelia Settings/Integrations/Google Calendar” dialog in Amelia. After that, you or your employee (if the employee has access to the Ideakit dashboard) will be able to connect Google Calendar with Amelia from the employee edit dialog. Read more at this page to see how to connect employee with the Google Calendar.
After you copy the credentials into Amelia settings/Integrations/Google Calendar you still won’t be able to connect your employees to the calendar. To do that, go back to the “OAuth Consent screen”, and under Publishing Status click on “Publish App”. That will bring out a modal, where you need to CONFIRM that the app should be published.
Connect employees with their Google accounts
Once you’ve completed these settings, there’s one more thing to set on the employees’ side. Each employee should log in and connect to their Google calendar for the synchronization to work. All they need to do is to open the Employee dialog and click on the button beside the Google Calendar option. They will then be redirected to choose their Google Account. Once they have chosen it, they will be returned to their profile in the Amelia Plugin with the selected Google Calendar email (if the account is successfully connected the button should change the color from blue to red).
If your employees experience one of the following issues during the connection please configure your security system so that it doesn’t block requests from Google, or click on the browser URL field, delete this part at the end of the URL: “=https://www.googleapis.com/auth/calendar”, and press Enter.
“Not Acceptable! An appropriate representation of the requested resource could not be found on this server. This error was generated by Mod_Security.”
Or:
“Forbidden. You don’t have permission to access this resource.”
Again, if you see this “Forbidden” error, please delete this part at the end of the URL: “=https://www.googleapis.com/auth/calendar”, and press Enter, and your employee will be connected to the calendar.
Redirect URI
Read-only field that you should add to “Authorized redirect URIs” field in process of creating Google project.
Event Title
Here you can configure the title of the event that will be displayed in the Google Calendar. This option works with placeholders from the Notifications page so to set the title you will need to copy placeholders from the notifications page and paste them here. You will find these placeholders once you click on the </> Show Email Placeholders on the Notifications page.
Event Description
Here you can configure the description of the event that will be displayed in the Google Calendar. This option works with placeholders from the Notifications page so to have information you want here, you will need to copy placeholders from the notifications page and paste them here. You will find these placeholders once you click on the </> Show Email Placeholders on the Notifications page.
Insert Pending Appointments
When this option is enabled, appointments with pending status will be added to employee’s calendar.
Add Event’s Attendees
Enable this option if you want your employees to see customers that attend the appointment in the Google event. You can share an event with customers by adding them as attendees. This places the event on their calendar.
Customers will not be able to see other attendees of the same appointment in Google calendar.
Allow customers to see other Attendees
This option allows you to choose whether your customers will see other attendees in Google Calendar events if they choose to add scheduled group appointment in their Google Calendar. By default, this option is disabled so your customer will only see themselves in their events. If enabled, each customer that adds the group appointment to their calendar will see other customers as attendees in the list.
Send Event Invitation Email
If enabled, this sends an invitation email to the customers. This option can be enabled, only if Add Event’s Attendees option is turned on.
Remove Google Calendar Busy Slots
Enable this option if you want to remove the time slots of the Busy events in your employees’ Google Calendars from their work schedules in Amelia. When enabled, time slots in the Amelia Calendar will be removed whenever there is a Busy event in the Google Calendar.
Please note: In order to use 2-way Google synchronization properly your employees should set statuses of the events in their Google calendars as Busy. In that way, time slots occupied by those events will be removed from Amelia calendar.
Include Buffer time in Google events
This option is made for you to choose if the buffer times that you add for each service will be added in the Google events. If you enable it, the buffer times for scheduled appointments will be added together with the appointment in employee’s Google Calendar preventing the employee to add an event to the Google that would overlap his buffer time of the appointment scheduled in Amelia.
Maximum Number Of Events Returned
Here you can set the maximum number of events that will be returned from your employees’ Google Calendar into the Amelia calendar. These events will not be visible as they only affect the available time slots in the Amelia calendar.
Please note: Synchronization with Google calendar is not supported for Events at the moment, just for Services. So if you use Events in Amelia and have assigned employees to them, they will not have Amelia events in their Google calendar automatically.