Skip to content

Google Calendar

The Google Calendar modules enable you to monitor, create, retrieve, update, or delete events and calendars in your Google Calendar.

Getting Started with Google Calendar

Prerequisites

  • A Google account

In order to use Google Calendar with Ibexa Connect, it is necessary to have a Google account. If you do not have one, you can create a Google account at accounts.google.com.

Note

The module dialog fields that are displayed in bold (in the Ibexa Connect scenario, not in this documentation article) are mandatory!

Connecting Google Calendar to Ibexa Connect

To connect your Google Calendar account to Ibexa Connect follow the general instructions for Connecting to services.

After you click the Continue button, Ibexa Connect will redirect you to the Google Calendar website where you will be prompted to grant Ibexa Connect access to your account.

googleCalendarConnect.png

Confirm the dialog by clicking the Allow button.

Calendar

List Calendars

Retrieve calendars of the authenticated user.

Minimum access role

Select the minimum access role for the user in the returned entries.

  • Free Busy Reader: The user can read free/busy information.

  • Owner: The user can read and modify events and access control lists.

  • Reader: The user can read events that are not private.

  • Writer: The user can read and modify events.

Show hidden calendars

Enable this option to return also hidden entries.

Limit

Set the maximum number of calendars Ibexa Connect will return during one execution cycle.

Get a Calendar

Returns details of the specified calendar.

Calendar ID Select or map the ID of the calendar you want to retrieve details about.

Create a Calendar

Creates a new calendar in your Google account.

Calendar name Enter a name for the new calendar.

Update a Calendar

Updates a calendar title of the specified calendar.

Calendar ID Select or map the ID of the calendar you want to rename.
Calendar name Enter a new title for the calendar.

Delete a Calendar

Deletes an existing calendar.

Calendar ID Select or map the ID of the calendar you want to rename.

Clear a Calendar

Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.

Event

Watch Events

Retrieves details of an event when the event is created, updated, deleted, started, or ended in the selected calendar.

Calendar Select the calendar you want to watch for events.
Watch events Select the change in date that triggers the module.
Show deleted events Enable this option to include deleted events (with status equals "canceled") in the result.
Query Filter the result by events that match the search term in any field, except for extended properties.
Limit Set the maximum number of events Ibexa Connect will return during one execution cycle.

Search Events

Searches for events in the selected calendar.

Calendar ID

Select the calendar you want to watch for events.

Start date

Enter the start date of the date range you want to filter results by. The list of supported date and time formats.

End date

Enter the end date of the date range you want to filter results by. The list of supported date and time formats.

Single events

Enable this option to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves.

Query

Enter the search term to find events that match these terms in any field, except for extended properties.

Order by

Select the order of the events returned in the result.

  • Start Time: Order by the start date/time (ascending). This is only available when querying single events.

  • Updated Time: Order by last modification time (descending).

Limit

Set the maximum number of events Ibexa Connect will return during one execution cycle.

Get an Event

Retrieves event details.

Calendar ID Select or map the ID of the calendar that contains the event you want to retrieve details about.
Event ID Select or map the ID of the event you want to retrieve details about.

Create an Event

Creates a new event.

Create an event

Select whether you want to quickly add the event or specify more details of the event.

Calendar ID

Select or map the ID of the calendar you want to create an event for.

Color

Select the hex code of the color you want to use for the event. The color in the brackets is the background color.

Event name

Enter text describing the event to be created. E.g. Appointment at Capitol Hill on June 3rd 10am-10:25am.

For the Quick add (selected in the Create an Event field). If no date/time is provided in this field, the quick adding event is created starting from the current time for an hour.

All day event

Enable this option if the event is an all day event.

Start date

Enter the date, in the format "yyyy-mm-dd", if this is an all-day event. The list of supported date and time formats.

End date

Enter the date, in the format "yyyy-mm-dd", if this is an all-day event. The list of supported date and time formats.

Description

Enter a description of the event. Supports HTML.

Location

Specify the geographic location of the event as free-form text.

Use the default reminder settings for this event

Enable this option to apply default calendar reminders to this event.

Reminders

Set the event reminders.

Method

Select the method used by this reminder.

  • Email - Reminders are sent via email.

  • Popup - Reminders are sent via a UI popup.

Minutes

The number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes).

Attendees

Add attendees of the event.

Name

Enter the attendee's name.

Email

Enter the attendee's email address.

Show me as

Select your status.

Visibility

Set the visibility of the event.

  • default - Uses the default visibility for events on the calendar. This is the default value.

  • public - The event is public and event details are visible to all readers of the calendar.

  • private - The event is private and only event attendees may view event details.

Send notifications about the event creation

Select whether to send notifications about the creation of a new event. Note that some emails might still be sent.

[Caution]

The None option should only be used for migration use cases.

Guests can modify the event

Enable this option to allow attendees other than the organizer to modify the event.

Recurrence

Specify the recurrence.

A list of RRULE, EXRULE, RDATE, and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.

Update an Event

Updates an existing event.

Calendar ID Select or map the ID of the calendar that contains the event you want to update.
Event ID Select or map the ID of the event you want to update.

Please find the descriptions of the fields in the Create an Event section above.

Delete an Event

Deletes a specified event.

Calendar ID Select or map the ID of the calendar that contains the event you want to delete.
Event ID Select or map the ID of the event you want to delete.
Send notifications about the event deletion Guests who should receive notifications about the deletion of the event.

Access Control Rule

List Access Control Rules

Returns the rules in the access control list for the calendar.

Calendar ID Select or map the ID of the calendar you want to retrieve ACLs for.
Limit Set the maximum number of ACLs Ibexa Connect will return during one execution cycle.

Get an Access Control Rule

Retrieves an access control rule details.

Calendar ID Select or map the ID of the calendar that contains the access control rule you want to retrieve.
Access control rule ID Select or map the ID of the access control rule you want to retrieve.

Create an Access Control Rule

Creates an access control rule.

Calendar ID

Select or map the ID of the calendar you want to create an access control rule at.

Role

Select the role assigned to the scope.

  • Free Busy Reader - Provides read access to free/busy information.

  • Reader - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.

  • Writer - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.

  • Owner - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.

Type

Select the type of scope.

  • Default - The public scope. This is the default value.

  • User- Limits the scope to a single user.

  • Group - Limits the scope to a group.

  • Domain - Limits the scope to a domain.

The permissions granted to the Default, or the public, scope apply to any user, authenticated or not.

Value

Enter the email address of a user or a group, or the name of a domain, depending on the scope type.

Update an Access Control Rule

Updates an existing access control rule.

Calendar ID

Select or map the ID of the calendar that contains the access control rule you want to update.

Access control rule ID

Select or map the ID of the access control rule you want to update.

Role

Select the role assigned to the scope.

  • None - Provides no access.

  • Free Busy Reader - Provides read access to free/busy information.

  • Reader - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden.

  • Writer - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible.

  • Owner - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.

Send notifications

Enable this option to send notifications about the calendar sharing change. Note that there are no notifications on access removal.

Delete an Access Control Rule

Deletes an existing access control rule.

Calendar ID Select or map the ID of the calendar that contains the access control rule you want to delete.
Access control rule ID Select or map the ID of the access control rule you want to delete.

Other

Make an API Call

Allows you to perform a custom API call.

URL

Enter a path relative to https://www.googleapis.com/calendar

For example/v3/users/me/calendarList

For the list of available endpoints, refer to the Google Calendar API Documentation.

Method

Select the HTTP method you want to use:

  • GET to retrieve information for an entry.

  • POST to create a new entry.

  • PUT to update/replace an existing entry.

  • PATCH to make a partial entry update.

  • DELETE to delete an entry.

Headers

Enter the desired request headers. You don't have to add authorization headers; we already did that for you.

Query string

Enter the request query string.

Body

Enter the body content for your API call.

Example of Use - List Calendars

The following API call returns calendars on your calendar list in your Google account:

URL:

/v3/users/me/calendarList

Method:

GET

googleCalenderAPICall.png

The result can be found in the module's Output under Bundle > Body > items. In our example, 3 calendars were returned:

googleCalenderAPIOutput.png

Get Free/Busy Information

Retrieves free/busy information for a set of calendars.

Minimum time Enter the start of the interval for the query. The list of supported date and time formats.
Maximum time Enter the end of the interval for the query. The list of supported date and time formats.
Calendars Specify the list of calendars and/or groups you want to query.

Common Problems

Trigger a specified amount of time before an event

It is possible to trigger a scenario a specified amount of time before an event with the help of standard Google Calendar email reminders and the Webhooks > Custom mailhook module.

  1. Use the Google Calendar > Update an event module to add an email reminder to your event:

    googleCalenderReminder.png

  2. Create a new scenario starting with the Webhooks > Custom mailhook module. Copy the mailhook's email address. Save the scenario and execute it.

  3. In Gmail, redirect the Google Calendar email reminders to the mailhook's email address:

    1. Open your Gmail settings.

    2. Open the Forwarding and POP/IMAP tab.

    3. Click Add a forwarding address:

      googleCalendarGmailForward.png

    4. Paste the copied mailhook's email address, press "Next", confirm by pressing "Proceed" in the popup window and close the dialog by pressing "OK".

    5. In Ibexa Connect, switch to the new scenario which should finish its execution by receiving the confirmation email.

    6. Click the bubble above the module to inspect the module's output.

    7. Expand the Text item and search for the Confirmation code:

      googleCalendarConfCode.png

    8. Copy the Confirmation code.

    9. In Gmail, paste the Confirmation code in the edit box and click Verify:

      googleCalendarVerify.png

    10. Open the Filters and Blocked Addresses tab.

    11. Click Create a new filter:

      GoogleCalendarCreateFilter.png

    12. Set up a filter for all emails coming from [email protected] and click Create filter:

      googleCalendarFIlter.png

    13. Tick the "Forward it to:" checkbox and choose the mailhook's email address from the list:

      googleCalendarForwardAddress.png

    14. Click Create filter

  4. In Ibexa Connect, you may add Text parser > Match pattern module after the Webhooks > Custom mailhook module to parse the email's HTML code to obtain any information you need. You may, for example, configure a module like this to obtain the event's ID:

    Pattern:<meta itemprop="eventId/googleCalendar" content="(?<evenitID>.*?)"/>

    Text: The HTML content item outputted from the Webhooks > Custom mailhook module:

    googleCalendarTextParser.png

Where are the Iterate attachments and Iterate attendees modules?

Both modules are deprecated. To iterate desired values, please use the Flow Control > Iterator module.

Change Log

last update: 2020-07-10

New Modules:

Calendar:

  • List Calendars

  • Get a Calendar

  • Update a Calendar

  • Delete a Calendar

  • Clear a Calendar

  • Get Free/Busy Information

Access Control Rule:

  • List Access Control Rules

  • Get an Access Control Rule

  • Create an Access Control Rule

  • Update an Access Control Rule

  • Delete an Access Control Rule

  • Get Free/Busy Information

Events:

  • Search Events

Updated Modules:

Events:

  • Create an Event

    • Option to add an Event Quickly

    • Option to add an Event in Detail

Deprecated Modules:

Events:

  • Watch Events (instant)

Iterators:

  • Iterate Attendees

  • Iterate Attachments