Skip to content

Create Event (Google Calendar) v1.0.0 Help

Adds a new event to the selected Google calendar.

How can I use this Step?

Use this Step to create a new event in an existing Google calendar. First, you select an authorization connected to a Google account with permission to access the calendar, then define the calendar ID. Then, you define the new event's details. When this Step is reached during execution, the event is created, and the Flow proceeds down the next exit.

Prerequisites

In order to use any Step from the Google Calendar toolkit, you must do the following:

  1. Create a new or use an existing Google Cloud Project in your Google Cloud Console. To create a new project, follow these instructions.
  2. 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.
  3. 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:

  1. Select the authorization type in the dropdown.
  2. 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:
  • 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:

  1. Select the authorization type in the respective dropdown.
  2. Click the select authorization in current step button.
  3. Click the Gear button, then Add, or select to Create new authorization in the dropdown.
  4. 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.
  5. 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

This section is designated to defining the Google calendar that is used for creating a new event. To set up this section, take one of the following steps:

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:

TypeEmailPermission
OAuth 2.0Authorized emailMake changes and manage sharing
Service accountClient emailMake changes and manage sharing
Service accountImpersonate emailMake 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:

  1. Open your Google calendar, then click Main menu.
  2. Hover over the calendar name of the requested calendar, then click the ellipsis > settings and sharing.
  3. 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 details

Learn about the Google Calendar API limits here.

To create an event in the defined Google Calendar, do the following:

  1. Optional: provide event's text inputs, such as title, description and location.
  2. Optional: define the guests of the event by entering their emails, as well as whether to send email notifications to guests.
  3. Select the event type to set the event's start and end date and/or time.

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.

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:

json
[
 "email1@example.com",
 "email2@example.com",
 "email3@example.com"
]
[
 "email1@example.com",
 "email2@example.com",
 "email3@example.com"
]

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.

Notification

By default, the event will be created 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.

Date and time

To set the event's start and end, do the following:

  1. Select the event type. Its selection updates the other inputs of the event.
  2. Define the event's date, time and duration.

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).

All day event

To set up an all day event, do the following:

  1. Set the event start date.
  2. Define the event end:
  • Select the set event duration option to set up the event end as a number of days in the duration field.
  • Select the set specific event end option to define the event end date.

See how to set up dates and/or duration.

Note: The created event will be shown as an all day event in the calendar to all users, regardless of their timezone.

Specific time event

To set up a specific time event, do the following:

  1. Select the timezone, then set the event start date and event start time.
  2. Define the event end:
  • Select the set event duration option to set up the event end in the duration field.
  • Select the set specific event end option to define the event end date and event end time similar to event start date and event start time.

See how to set up the timezone, dates and times, and/or duration.

Note: The created event's start and end date and time are adjusted in the calendar to the respective user's timezone.

Date, time and duration settings

Date

The numeric formats yyyy-MM-dd or MM-dd-yyyy are suggested to specify dates. All the formats of event start date and event 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 create 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 as Dec 3rd, 2023, while 16-03-2023 input is interpreted as Mar 16th, 2023.

Timezone

The timezone value can be changed in the dropdown or set to the timezone of the user's device via the pin button.

Time

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.

Duration

The value entered in the duration field is transformed into milliseconds. Its acceptable formats are explained in the link under the ? icon.

The duration of an all day event is expected as a multiple of 1 day. If its value in seconds does not equal an exact number of days, the Step will result in an error. Examples of valid inputs: 1 week, 2d, 24h or 86400s.

Set the duration as 0 or 0s to create an event without specifying the end date/time:

  • an all day event is created for a single day, defined in the event start date;
  • the specific date event is created as an event with the same event start time and event end time.

Advanced settings

The Google Calendar API supports other optional event properties that can be used to create 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:

json
{
  "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 created event in createdEvent. See the list of possible properties:

KeyTypeDescription
calendarIdstringThe calendar ID of the calendar in which the event is created.
createdEventobjectContains all the properties about the created event returned by Google Calendar API.
idstringThe event ID of the created event.
statusstringThe status of the created event.
htmlLinkstringThe URL that opens the provided calendar on the start date of the created event.
createdstringThe date and time of creation of the created event in ISO 8601 format.
updatedstringThe date and time of last modification of the created event in ISO 8601 format.
summarystringThe title of the created event, if defined.
descriptionstringThe description of the created event, if defined.
locationstringThe location of the created event, if defined.
attendeesarrayAn array of objects, each containing the email and responseStatus of each guest, if defined.
emailstringThe defined email of the respective guest.
responseStatusstringThe status of the respective guest.
startobjectContains the defined start date, or start date/time and timezone of the created event.
endobjectContains the defined end date, or end date/time and timezone of the created event.
datestringThe start date and end date of an all day event in yyyy-mm-dd format.
dateTimestringThe start/end date and time of a specific time event in ISO 8601 format.
timeZonestringThe selected timezone of the specific time event in time offset format.

See below an example of the merge field object's structure:

json
{
  "calendarId": "c_oos5h8kvedslp0k8m2gaie553k@group.calendar.google.com",
  "createdEvent": {
    "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",
  "createdEvent": {
    "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"
  }
}

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