Update Event Details (Google Calendar) v1.0.0 Help
Updates the selected details of the defined event in the selected Google calendar.
How can I use this Step?
Use this Step to substitute the selected details of the defined event from the selected Google calendar with new values. First, you select an authorization connected to a Google account with permission to access the calendar. Then you define the IDs of the calendar and the event, and define which event details to substitute. When this Step is reached during execution, the defined details of the event receive new values, and the Flow proceeds down the next exit. An option to select the Flow behavior in case the event is not found is available.
Prerequisites
In order to use any Step from the Google Calendar toolkit, you must do the following:
- Create a new or use an existing Google Cloud Project in your Google Cloud Console. To create a new project, follow these instructions.
- Create an authorization by connecting your OneReach.ai account with the Google Cloud Project. Step-by-step instructions on how to do this can be found in the collapsible group of the respective authorization type modal window.
- Get permission for the authorized email accounts to make changes and manage sharing in the defined calendar.
Authorization
To set up an authorization, do the following:
- Select the authorization type in the dropdown.
- Select one of the two options:
- Click the select authorization in current step option to select an authorization from the respective dropdown in this Step. Use this option when you need to:
- Create a new authorization;
- Select a previously created authorization manually.
- Select the inherit from previous step option to choose the authorization that was used in the last executed Step of the Google Drive/Calendar toolkits in the Flow. Use this option when you have already created an authorization of the selected authorization type and used it previously in the Flow.
Authorization type
The Google Drive and Google Calendar toolkits support two authorization types:
The OAuth 2.0 authorization is used to authenticate as an end user and access user data in your app. It requires your app to request and receive consent from the user.
The service account authorization is used to authenticate as a robot service account or to access resources on behalf of Google Workspace or Cloud Identity users through domain-wide delegation. A service account is a special kind of account used by an application, rather than a person. Read more here.
Create a new authorization
To create a new authorization, do the following:
- Select the authorization type in the respective dropdown.
- Click the select authorization in current step button.
- Click the Gear button, then Add, or select to Create new authorization in the dropdown.
- A modal window for creating a new authorization will pop up. Follow the instructions in the modal's collapsible. When finished, the created authorization name will be added to the list in the dropdown.
- Select respective authorization name in the select authorization in current step dropdown.
Select authorization in current step
The select authorization in current step dropdown lists every authorization added to your OneReach.ai account.
- To choose an authorization, select its name in the dropdown.
The gear button contains options to add a new or delete an existing authorization, as well as to refresh the list of added authorizations.
Click edit to update the fields of a service account authorization. An OAuth 2.0 authorization can be reauthorized.
Warning! If the user created an external app in their OAuth Consent Screen, the created authorization needs to be reauthorized in any Flow once approximately every 7 days.
Inherit from previous step
When a Step from the Google Drive/Calendar toolkit is added to the Flow, the user is expected to manually choose the authorization type and then an authorization from the respective dropdowns. If another Step from these toolkits is added to the Flow and their selected authorization types match, the option to inherit from previous step is chosen by default. When selected, it continues to use the same authorization as was defined in the previous Step of the Google Drive/Calendar toolkit without the need to select it manually.
Warning! If the inherit from previous step option is selected, but there is no Step with the matching authorization type in the Flow, the Step results in an error.
Calendar and event
This section is designated to defining the Google calendar and the event whose details will be updated. To set up this section, do the following:
- Define the calendar:
- Provide its calendar ID.
- Select option to inherit calendar from previous step.
- Define the event ID belonging to the calendar.
Warning! If the authorized user in the authorization section doesn't own the defined calendar, the calendar owner should provide the following permissions depending on the authorization type:
Type Permission OAuth 2.0 Authorized email Make changes and manage sharing Service account Client email Make changes and manage sharing Service account Impersonate email Make changes to events This can be done in the share with specific people or groups section of the defined calendar's setting and sharing. See how to share a calendar here.
Calendar ID
The calendar ID is a unique identifier of a Google Calendar. To find it in the Google Calendar UI, do the following:
- Open your Google calendar, then click Main menu.
- Hover over the calendar name of the requested calendar, then click the ellipsis > settings and sharing.
- Open the integrate calendar section and copy the calendar ID.
Alternatively, the calendar ID can be provided via the calendarId
merge field value of another Step from the Google Calendar toolkit.
Inherit calendar from previous step
When a Step from the Google Calendar toolkit is added to the Flow, the user is expected to provide the calendar ID manually. If another Step from the same toolkit is added to the Flow, the option to inherit calendar from previous step is selected by default. When selected, it continues to use the same calendar ID as was defined in the previous Step of the same toolkit without the need to select it manually.
Event ID
The event ID is a unique identifier of an event in a Google Calendar. It can be provided via the respective eventId
merge field value of another Step from the toolkit.
Update details
Learn about the Google Calendar API limits here.
To update details of the event in the defined Google Calendar, do the following:
- Click add parameter button. A dropdown with the list of available parameters is added.
- Select the parameter name from the dropdown. Depending on the choice, its inputs are updated. The following parameters are available:
- Event's text inputs, such as title, description and location
- Guests
- Events start and event end
- Visibility
- Status
- Define the respective new values of the selected parameter.
- To add multiple parameters, click the add parameter button, then repeat steps 2-3.
- Optional: turn on the toggle to send email notifications to guests.
Options to reorder the parameters list using the drag handle or delete a parameter using the trash bin button are available.
Note: If the same parameter is added more than once, the last one defined is used to update event details.
Event's text inputs
The title and location inputs are limited to 1024 characters and will be truncated if exceeded both in the calendar and the Step's output.
The description input is limited to 8192 characters and supports HTML code. It also will be truncated if exceeded both in the calendar and the Step's output.
Note: To remove the previously added title, description or location, leave the respective input empty.
Guests
You can define guests individually by adding each email in the respective field. To add a list of emails via a merge field, define the list as an array of values, for example:
[
"email1@example.com",
"email2@example.com",
"email3@example.com"
]
[
"email1@example.com",
"email2@example.com",
"email3@example.com"
]
Note: The Step substitutes all the previously added guests with this input. To remove the previously added guests, leave the respective input empty.
Warning! If a user sends 10,000 invites to guests outside of their primary or secondary domain in a short period, their ability to send external invitations is throttled.
Event start and end
Warning! The event type of the event defined via event ID must match the selected option in this section, otherwise the Step will result in an error.
To set the event's new start and/or end, do the following:
- Select the event type. Its selection updates the other inputs of the event.
- Define the event's start or end date and/or time.
Event types
The Google Calendar supports the following event types:
- An all day event covers the period of time defined by whole days in the calendar (e.g. a vacation, a business trip).
- A specific time event is limited by the specific date and time inputs (e.g. a meeting, an appointment).
To update an all day event:
- Set the event start or event end date, respectively.
To update a specific time event, do the following:
Date, time and timezone settings
The numeric formats yyyy-MM-dd
or MM-dd-yyyy
are suggested to specify dates. All the formats of the event start or end date values are explained in the link under the ?
icon. The event start date must be earlier or the same as the event end date value.
Note: To update an all day event lasting more than 1 day, the difference between event start date and event end date inputs must be at least 2 days.
Warning!
12-03-2023
input is interpreted asDec 3rd, 2023
, while16-03-2023
input is interpreted asMar 16th, 2023
.
The timezone value can be changed in the dropdown or set to the timezone of the user's device via the pin
button.
The numeric formats HH:mm
or hh:mm am/pm
are suggested to specify time. All the formats of event start time and event end time values are explained in the link under the ?
icon.
Visibility
The event visibility may possess one of the following statuses:
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 guests may view event details.confidential
- the event is private. This value is provided for compatibility reasons.
Read about visibility here.
Status
By default, all events in a Google Calendar created by its owner receive the confirmed
status. The option to change the status to tentative
or cancelled
is available.
Read about statuses here.
Notification
By default, the event will be updated without sending personal notifications to the guests. To inform all guests about new event details via email, turn on the toggle to send email notifications to guests.
Warning! A user can send about 2,000 emails to external guests. Using this feature with users in your primary or secondary domain does not count toward this limit.
Conflict handling
By default, in case event is not found, the Flow will proceed down the not found exit. Select the next or error option in the dropdown to take the Flow down the respective exit.
Note: the not found exit is removed from the Flow tree if a different exit is selected.
Advanced settings
The Google Calendar API supports other optional event properties that can be used to update an event with additional parameters (e.g. adding an attachment or creating a Google Meet via a conference). You can specify these parameters as a JSON expression in the body request parameters field. See the list of parameters here.
For example, to add an attachment and a Google Meet to your event, you can use the following structure:
{
"attachments": [{
"fileUrl": "https://docs.google.com/document/.../edit",
"title": " My document"
}],
"conferenceData": {
"createRequest": {
"requestId": "ft12343456fsg5"
}
}
}
{
"attachments": [{
"fileUrl": "https://docs.google.com/document/.../edit",
"title": " My document"
}],
"conferenceData": {
"createRequest": {
"requestId": "ft12343456fsg5"
}
}
}
Merge field settings
The output data of the Step will be stored under the name provided in the merge field name. It includes the defined calendar in calendarId
and all the data about the specified event in patchedEvent
. See the list of possible properties:
Key | Type | Description |
---|---|---|
calendarId | string | The calendar ID of the calendar to which the specified event belongs. |
patchedEvent | object | Contains all the properties about the specified event returned by Google Calendar API. |
id | string | The event ID of the specified event. |
status | string | The status of the specified event. |
htmlLink | string | The URL that opens the provided calendar on the start date of the specified event. |
created | string | The date and time of creation of the specified event in ISO 8601 format. |
updated | string | The date and time of last modification of the event in ISO 8601 format. |
summary | string | The title of the specified event, if defined. |
description | string | The description of the specified event, if defined. |
location | string | The location of the specified event, if defined. |
attendees | array | An array of objects, each containing the email and responseStatus properties of each guest, if defined. |
email | string | The defined email of the respective guest. |
responseStatus | string | The status of the respective guest. |
start | object | Contains the defined start date, or start date/time and timezone of the specified event. |
end | object | Contains the defined end date, or end date/time and timezone of the specified event. |
date | string | The start date and end date of an all day event in yyyy-mm-dd format. |
dateTime | string | The start/end date and time of a specific time event in ISO 8601 format. |
timeZone | string | The selected timezone of the specific time event in time offset format. |
visibility | string | The visibility of the specified event. |
See below an example of the merge field object's structure:
{
"calendarId": "c_oos5h8kvedslp0k8m2gaie553k@group.calendar.google.com",
"patchedEvent": {
"kind": "calendar#event",
"etag": "...",
"id": "...",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=...",
"created": "YYYY-MM-DDThh:mm:ss.000Z",
"updated": "YYYY-MM-DDThh:mm:ss.209Z",
"summary": "...",
"description": "...",
"creator": {
"email": "...@example.com"
},
"organizer": {
"email": "c_oos5h8kvedslp0k8m2gaie553k@group.calendar.google.com",
"displayName": "My calendar",
"self": true
},
"start": {
"dateTime": "2022-10-05T14:00:00+03:00",
"timeZone": "GMT+03:00"
},
"end": {
"dateTime": "2022-10-05T19:00:00+03:00",
"timeZone": "GMT+03:00"
},
"iCalUID": "...",
"sequence": 0,
"attendees": [{
"email": "...@example.com",
"responseStatus": "needsAction"
}],
"reminders": {
"useDefault": true
},
"eventType": "default"
}
}
{
"calendarId": "c_oos5h8kvedslp0k8m2gaie553k@group.calendar.google.com",
"patchedEvent": {
"kind": "calendar#event",
"etag": "...",
"id": "...",
"status": "confirmed",
"htmlLink": "https://www.google.com/calendar/event?eid=...",
"created": "YYYY-MM-DDThh:mm:ss.000Z",
"updated": "YYYY-MM-DDThh:mm:ss.209Z",
"summary": "...",
"description": "...",
"creator": {
"email": "...@example.com"
},
"organizer": {
"email": "c_oos5h8kvedslp0k8m2gaie553k@group.calendar.google.com",
"displayName": "My calendar",
"self": true
},
"start": {
"dateTime": "2022-10-05T14:00:00+03:00",
"timeZone": "GMT+03:00"
},
"end": {
"dateTime": "2022-10-05T19:00:00+03:00",
"timeZone": "GMT+03:00"
},
"iCalUID": "...",
"sequence": 0,
"attendees": [{
"email": "...@example.com",
"responseStatus": "needsAction"
}],
"reminders": {
"useDefault": true
},
"eventType": "default"
}
}
In case event is not found, the merge field value depends on the exit:
- next -
{}
- not found -
null
Error handling
The handle error toggle is enabled by default and adds an error exit to the Step. The Flow proceeds down this exit if any error is encountered during the Step execution, e.g. if the authorization data or the calendar ID is invalid, or you don't have permission to manage the calendar.
If the handle error toggle is disabled, the Step does not handle errors. In this case, if any error occurs during the Step execution, the Flow fails immediately after exceeding the Flow timeout. To prevent the Flow from being suspended and continue handling errors, you can place the Handle Flow Error Step before the main logic of your Flow.
Reporting
After the Step completes, it generates a report that includes its execution status and other details. You can customize the report by adjusting the Step's log level and adding tags.
Log level
By default, the Step's log level matches that of the Flow. You can change the Step's log level by selecting an appropriate option from the Log level dropdown.
Tags
Tags provide a way to classify and search for sessions based on their attributes. To create a new tag, specify its category, label, and value. You can then use tags to filter and group the sessions in the report.
Services dependencies
- studio v3.46.1
- authorization Manager v1.3.6
Release notes
v1.0.0
- Initial release