- Print
Google Calendar Connector
Integrating Tulip with Google Calendar
Introduction
Google Calendar API allows the users to create, read and edit google calendar events with the right access set to their google accounts. The goal of this connector is to use OAuth Authentication and integrate with Google Calendar V3 Api with Tulip using HTTP Connectors & provide our customers with an out-of-box connector that can be imported into their instance.
Purpose
This document highlights different HTTP connector functions that can be built by doing HTTP calls to Google Calendar V3 API endpoints to interact with the Google Calendar to try out various read and write actions on the calendar that could be leveraged for various use cases.
API Doc
Pre-Requisites
- Create an account on Google's cloud Console & configure the OAuth 2.0 credentials. More information can be found in Google's API docs.
- Activate the Google Calendar API in the Google API Console.
Tulip Connection Details
The following information would need to be configured on Tulip's connectors.
- Running On: Cloud Connector Host
- Host:www.googleapis.com
- Port:443
- TLS: Yes
- Connector Authentication: OAuth2.0(Admin/Operator)
- Following are the scopes needed to be passed:
Connector Functions
Get All Calendars
Purpose
This connector will fetch all the calendars existing in a user's google calendar.
Endpoint
HTTP GET call to the endpoint https://www.googleapis.com:443/calendar/v3/users/me/calendarList
Required Input
No Inputs required
Required Output Extractor
- Calendar Id: Unique identifier of the Calendar which will be used to carry out the other tasks
- Title: The Title of the Calendar
- Additional parameters that are returned with the response can be included as part of the output parameters
Get all Events
Purpose
This connector will fetch all the events of a specific calendar.
Endpoint
HTTP GET call to the endpoint -https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events
Required Input
The following are the URL parameters that are to be passed
- Calendar Id- Calendar Id/ pass “primary” as a value in the calendar ID parameter. Specifying “Primary” gets all the events of a user's primary calendar.
Required Output Extractor
- Calendar Id: Unique identifier of the Calendar which will be used to carry out the other tasks
- Event ID: Unique identifier of the Event which will be used to pull details about a specific event.
- Title: The Title of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Get Events By Filter
Purpose
This connector fetches all events that fall in the specified date range given by the query parameters.
Endpoint
HTTP GET call to the endpoint -https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events?maxResults={MaxResults}&orderBy=updated&timeMax={MaxTime}&timeMin={MinTime}&singleEvents=true
Required Input
The following are the URL parameters that are to be passed
- Calendar ID: Calendar ID
- MaxResults: Number of records to fetch
- MinTime: Start Date Time of the events to fetch
- MaxTime: End Date Time of the events to fetch
Required Output Extractor
- Calendar Id: Unique identifier of the Calendar which will be used to carry out the other tasks
- Event ID: Unique identifier of the Event which will be used to carry out the other tasks
- Title: The Title of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Create a New Event for Single/Group/Multiple Users
Purpose
- Users can pass an Event Title, Description, Start DateTime, End DateTime as input & Tulip will create a new event with the event title provided. The response of the API will be the metadata and various properties of the file.
- Information is pulled from Google Calendar V3 API can then be further used either within Tulip apps, Tulip tables, or Tulip variables which would be piped into other connector functions.
Endpoint
HTTP POST call to the endpoint https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events
Required Input
The following are the parameters that are sent as the Request Body
- Calendar ID- Selected Calendar ID
- Event Title - The Event Title
- Start Date Time- Event Start Date Time
- End Date Time- Event End Date Time
- Time Zone- Event Timezone
- Attendees- Event Attendees
- Location-Event Location
- Description - Description of the Event
Required Output Extractor
- Event Id: Unique identifier of the Event which will be used to carry out the other tasks
- Event Title: The Title of the Event
- Organizer: Organizer name of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Create a New Recurring Event for Single/Group/Multiple Users
Purpose
- Users can pass an Event Title, Description, Start DateTime, End DateTime, Recurrence End DateTime, Recurrence Type, and other parameters as input & Tulip will create a new event with the event title provided. The response of the API will be the metadata and various properties of the file.
- Information is pulled from Google Calendar V3 API can then be further used either within Tulip apps, Tulip tables, or Tulip variables which would be piped into other connector functions.
Endpoint
HTTP POST call to the endpoint https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events
Required Input
The following are the parameters that are sent as the Request Body
- Calendar ID- Selected Calendar ID
- Event Title - The Event Title
- Start Date Time- Event Start Date Time
- End Date Time- Event End Date Time
- Time Zone- Event Timezone
- Attendees- Event Attendees
- Description - Description of the Event
- Location-Event Location
- Recurrence Rule- The Recurrence Rule contains all the details of how and when the event should recur. Below are the list of few recurrence rule added in-app (Refer [RFC5545](https://tools.ietf.org/html/rfc5545
##section-3.8.5) document for detailed recurrence rules) :
Daily for
RRULE:FREQ=DAILY;COUNT=
Ex: RRULE:FREQ=DAILY;COUNT=5
The event occurs for 5days from the event start date for the same start time and end time.
Daily until
RRULE:FREQ=DAILY;UNTIL=
Ex: RRULE:FREQ=DAILY;UNTIL=20210924T000000Z
The event occurs daily until “September 24 2021” from the event start date for the same start time and end time.
Weekly for
RRULE:FREQ=WEEKLY;COUNT=
Ex: RRULE:FREQ=WEEKLY;COUNT=3
The event occurs Weekly for 3 weeks for the same day of the weekday of the event start date and for the same start time and end time.
Weekly until
RRULE:FREQ=WEEKLY;UNTIL=
Ex: RRULE:FREQ=WEEKLY;UNTIL=20210924T000000Z
The event occurs Weekly until “September 24, 2021” for the same day of the weekday of the event start date and for the same start time and end time
Every Tuesday, every other month:(this)
RRULE:FREQ=MONTHLY;INTERVAL=
Ex: RRULE:FREQ=MONTHLY;INTERVAL=2;BYDAY=TU
The event occurs Tuesday of every other month for the same start time and end time.
Required Output Extractor
- Event Id: Unique identifier of the Event which will be used to carry out the other tasks
- Event Title: The Title of the Event
- Organizer: Organizer name of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Update an Event Metadata
Purpose
- Users can pass an Event Title, Description, Start DateTime, End DateTime, and other parameters as input & Tulip will update an existing event with the provided inputs. The response of the API will be the metadata and various properties of the file.
- Information is pulled from Google Calendar V3 API can then be further used either within Tulip apps, Tulip tables, or Tulip variables which would be piped into other connector functions.
Endpoint
HTTP PATCH call to the endpoint https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events/{EventID}?sendUpdates=all&fields=*
Required Input
The following are the parameters that are sent as the Request Body
- Calendar ID- Selected Calendar ID
- Event ID- Selected Event ID
- Event Title - The Event Title
- Start Date Time- Event Start Date Time
- End Date Time- Event End Date Time
- Time Zone- Event Timezone
- Location-Event Location
- Description - Description of the Event
Required Output Extractor
- Event Id: Unique identifier of the Event which will be used to carry out the other tasks
- Event Title: The Title of the Event
- Event Description: The Title of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Update a Recurring Event
Purpose
- Users can pass an Event Title, Description, Start DateTime, End DateTime, Recurrence Rule, and other parameters as input & Tulip will update an existing event with the provided inputs. The response of the API will be the metadata and various properties of the file.
- Information is pulled from Google Calendar V3 API can then be further used either within Tulip apps, Tulip tables, or Tulip variables which would be piped into other connector functions.
Endpoint
HTTP PATCH call to the endpoint https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events/{EventID}?sendUpdates=all&fields=*
Required Input
The following are the parameters that are sent as the Request Body
- Calendar ID- Selected Calendar ID
- Event ID- Selected Event ID
- Event Title - The Event Title
- Start Date Time- Event Start Date Time
- End Date Time- Event End Date Time
- Time Zone- Event Timezone
- Location-Event Location
- Description- Description of the Event
- Recurrence Rule- The Recurrence Rule contains all the details of how and when the event should recur. Refer to the list of few recurrence rules added in-app mentioned above document for detailed recurrence rules)
Required Output Extractor
- Event Id: Unique identifier of the Event which will be used to carry out the other tasks
- Event Title: The Title of the Event
- Event Description: The Title of the Event
- Additional parameters that are returned with the response can be included as part of the output parameters
Delete an Event
Purpose
- Users can pass Calendar ID & Event ID as input & Tulip will delete the event in the google calendar.
Endpoint
HTTP DELETE call to the endpoint -https://www.googleapis.com:443/calendar/v3/calendars/{CalendarID}/events/{EventID}
Required Input
The following are the parameters that are sent as the Request Body
- Calendar ID- Selected Calendar ID
- Event ID- Selected Event ID