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 document for detailed recurrence rules) :
Daily for <numberOf> occurrences:
RRULE:FREQ=DAILY;COUNT=<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 <end date time>:
RRULE:FREQ=DAILY;UNTIL=<end date time>
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 <numberOf> occurrences:
RRULE:FREQ=WEEKLY;COUNT=<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 <end date time>:
RRULE:FREQ=WEEKLY;UNTIL=<end date time>
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=<interval>;BYDAY=<day>
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)(Refer RFC5545 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