1. Overview
Google Calendar is a time-management and scheduling calendar service developed by Google. It allows users to create and edit events, set reminders, and share calendars with others. Google Calendar integrates seamlessly with other Google services and provides powerful API access for automation.
Through GoInsight's Google Calendar node, you can seamlessly integrate calendar management into your automated workflows. You can perform comprehensive calendar and event operations, including:
- Creating and managing events with detailed information including time, description, and attendees.
- Retrieving events with flexible filtering options based on time ranges.
- Checking calendar availability to find free time slots for scheduling.
- Updating and deleting events to maintain accurate calendar information.
2. Prerequisites
Before using this node, you must have a valid Google account with access to Google Calendar. You will need to create a project in the Google Cloud Console and enable the Google Calendar API. Additionally, you need to create OAuth 2.0 credentials or a service account to obtain the necessary authentication credentials for API access.
3. Credentials
For a detailed guide on how to obtain and configure credentials, please refer to our official documentation: Credentials Configuration Guide.
4. Supported Operations
Summary
This node primarily operates on resources such as Event and Availability.
| Resource | Operation | Description |
|---|---|---|
| Event | Create an Event | Add an event to calendar |
| Event | Delete an Event | WARNING: This action permanently deletes the event from Google Calendar. The operation cannot be undone. Deleted events are moved to the trash and will be permanently removed after 30 days. |
| Event | Get an Event | Get an event |
| Event | Get Many Events | Get many events |
| Event | Update an Event | Update an event |
| Availability | Get Availability | If a time-slot is available in a calendar |
Operation Details
Create an Event
Add an event to calendar
Input Parameters:
- CalendarId: The unique identifier of the target calendar. Use 'primary' to refer to your main calendar. To get IDs of other calendars, use the List Calendars action or check Google Calendar settings. Example: 'primary' or 'abc123@group.calendar.google.com'
- EventSummary: The title or subject of the event (what attendees will see in their calendar). Example: 'Team Standup Meeting' or 'Q1 Planning Session'
- EventStartTime: Event start time in RFC3339 format with timezone. Examples: - With timezone offset: '2025-07-23T10:00:00-07:00' (Pacific Time) - UTC time: '2025-07-23T17:00:00Z' - For all-day events, use date only: '2025-07-23' (requires special handling, see Google Calendar API docs)
- EventEndTime: Event end time, must be in RFC3339 format, such as '2025-07-23T11:00:00-07:00'
Options:
- EventDescription: the description of the event
Output:
- EventId (string): The unique identifier of the created event. Use this ID to update, delete, or retrieve event details via Update Event or Delete Event actions. Example: 'abc123def456'
- OriginalStatusCode (number): The original HTTP status code returned by Google Calendar API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): The HTTP status code returned by the API (e.g., 200 for a successful list request, 201 for a successful create,204 for a successful delete) or 500 if an internal error occurred during processing.
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
Delete an Event
WARNING: This action permanently deletes the event from Google Calendar. The operation cannot be undone. Deleted events are moved to the trash and will be permanently removed after 30 days.
Input Parameters:
- CalendarId: the Id of the calendar
- EventId: The unique identifier of the event to delete. Obtain this ID by calling 'List Events' or 'Search Events' actions. Example: 'abc123xyz456_20250101T100000Z'
Output:
- Deleted (bool): Indicates whether the event was deleted successfully (True for success, False for failure)
- OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): The HTTP status code returned by the API (e.g., 200 for a successful list request, 201 for a successful create,204 for a successful delete) or 500 if an internal error occurred during processing.
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
Get an Event
Get an event
Input Parameters:
- CalendarId: the Id of the calendar
- EventId: the Id of the event
Output:
- Event (object): The event details obtained. If failed, it will be an empty dictionary.
- OriginalStatusCode (number): The original HTTP status code returned by Google Calendar API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): The HTTP status code returned by the API (e.g., 200 for a successful list request, 201 for a successful create,204 for a successful delete) or 500 if an internal error occurred during processing.
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
Get Many Events
Get many events
Input Parameters:
- CalendarId: Calendar identifier. Use 'primary' for the user's primary calendar, or a specific calendar ID (e.g., 'user@example.com'). To get other calendar IDs, call the 'List Calendars' action first. Example: "primary"
Options:
- TimeMin: Lower bound (inclusive) for event start time in RFC3339 format with UTC timezone (ending in 'Z'). If omitted, defaults to current time. Example: "2025-07-01T00:00:00Z"
- TimeMax: Upper bound (exclusive) for event start time in RFC3339 format with UTC timezone. If omitted, no upper limit. Example: "2025-07-31T23:59:59Z"
- MaxResults: Maximum number of events to return per page. Range: 1-2500. Default: 10. Note: Google Calendar API may return fewer items even if more are available (check NextPageToken).
- EventTypes: Comma-separated list of event types to filter. Leave empty to include all types. Allowed values: default (Regular calendar events), birthday (Birthday reminders), focusTime (Focus time blocks), fromGmail (Events auto-created from Gmail), outOfOffice (Out-of-office/vacation status), workingLocation (Working location info). Example: "default,birthday"
- PageToken: Token for retrieving the next page of results. Obtained from the NextPageToken field of the previous response. Leave empty for the first page. Example: "CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA"
- SingleEvents: Whether to expand recurring events into individual instances. If true, recurring events will be expanded; if false, only the master event is returned. Default: true. Recommended: Keep true for most use cases.
- OrderBy: Sort order of events. Allowed values: 'startTime' (chronological order) or 'updated' (last modified time). Default: 'startTime'. Note: 'startTime' requires SingleEvents=true.
- Q: Free text search query to filter events.
- ShowDeleted: Whether to include deleted events (with status 'cancelled') in the result.
- TimeZone: The time zone of the calendar. If omitted, the calendar's default time zone is used.
Output:
- Events (object-array): List of event objects from Google Calendar. Each event contains core fields (id, summary, description, status, htmlLink), time fields (start.dateTime, start.date, end.dateTime, end.date), and people fields (attendees, creator, organizer).
- NextPageToken (string): Token for retrieving the next page of results. Empty string means no more pages available. Pass this value to the next request to continue pagination. Example: "CiAKGjBpNDd2Nmp2Zml2cXRwYjBpOXA"
- OriginalStatusCode (number): The original HTTP status code returned by Google Calendar API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
Update an Event
Update an event
Input Parameters:
- CalendarId: Calendar identifier. Common values: primary (User's primary calendar), email@gmail.com (Calendar owned by specific user), or calendar_id from 'List Calendars' action. Example: "primary" or "user@example.com"
- EventId: Event unique identifier. Obtain from List Events, Get Event, or Create Event action response. Format: Alphanumeric string. Example: "abc123def456ghi789"
- EventBody: Event update information (JSON object). Supports partial updates (only provided fields will be modified). Core fields include summary, description, start, end, and attendees.
Output:
- UpdatedEvent (object): Updated event information as a JSON object. Key fields include id, summary, description, start, end, htmlLink, attendees, status, and updated.
- OriginalStatusCode (number): The original HTTP status code returned by Google Calendar API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): Operation status code: 200=Success (check ErrorMessage for business errors), -1=Parameter validation error, 500=System error (may retry).
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
Get Availability
If a time-slot is available in a calendar
Input Parameters:
- CalendarId: The calendar ID. Use "primary" for the user's primary calendar, or obtain specific calendar IDs via the List Calendars action. Example: "primary" or "abc123@group.calendar.google.com"
- StartTime: Start time of the query in RFC3339 format. Must include timezone (use 'Z' for UTC or offset like '+08:00'). Examples: UTC time: "2025-08-01T10:00:00Z" or With timezone: "2025-08-01T18:00:00+08:00"
- EndTime: End time of the query in RFC3339 format. Must include timezone (use 'Z' for UTC or offset like '+08:00'). Note: Must be later than StartTime.
Options:
- TimeZone: Time zone identifier (IANA format). Default is "UTC". Common values: "America/New_York" (US Eastern), "Europe/London" (UK), "Asia/Shanghai" (China), "Asia/Tokyo" (Japan).
Output:
- IsAvailable (bool): Whether the time period is completely free (no events scheduled). true: No events found in the specified time range. false: At least one event exists (includes confirmed and tentative events). Note: This checks only the "busy" status. Declined events are not counted.
- FreeBusyInfo (object): The raw response object from Google Calendar FreeBusy API. Core fields include calendars.
.busy (list of busy time periods), timeMin, timeMax, and kind. - OriginalStatusCode (number): The original HTTP status code returned by the upstream API. Default 0 means the request did not reach upstream (e.g., timeout). Use for debugging.
- StatusCode (number): Operation status code: 200=Success, -1=Parameter validation error, 500=System error.
- ErrorMessage (string): A string detailing any error encountered during the request or exception thrown, it is empty when the operation succeeds.
5. Example Usage
This section will guide you through creating a simple workflow to create a calendar event using the GoInsight Google Calendar node.
Scenario: You want to automatically create a meeting event in your Google Calendar.
Workflow Overview: This example workflow consists of Start -> Google Calendar -> Answer.
Step-by-Step Guide:
- Add the Tool Node:
- In your workflow canvas, click the "+" button to add a new node.
- In the panel that appears, select the "Tools" tab.
- Find and select Google Calendar from the tools list.
- From the Google Calendar operations list, click on Create an Event. This will add the corresponding node to your canvas.
- Configure the Node:
- Click on the newly added Create an Event node. The configuration panel will open on the right side.
- Credentials Configuration: At the top of the panel, find the credentials field. Click the dropdown menu and select your configured Google Calendar credentials.
- Parameter Configuration:
- CalendarId: Enter your calendar ID, typically your Gmail address (e.g., "user@example.com") or "primary" for your primary calendar.
- EventSummary: Enter the event title, for example: "Team Meeting".
- EventStartTime: Enter the event start time in RFC3339 format, for example: "2025-12-10T10:00:00-07:00".
- EventEndTime: Enter the event end time in RFC3339 format, for example: "2025-12-10T11:00:00-07:00".
- EventDescription: Enter a description for the event, for example: "Quarterly review meeting".
- Run and Verify:
- Once all required parameters are filled correctly, the error indicator on the canvas will disappear.
- Click the "Test Run" button in the top-right corner of the canvas to execute the workflow.
- After successful execution, click the logs icon in the top-right to view the node's detailed inputs and outputs, and verify that the event was created successfully. You can also check your Google Calendar to see the new event.
Final Workflow Summary: After completing these steps, your workflow is fully configured. When you click "Test Run", a new calendar event will be created in your Google Calendar with the specified details.
6. FAQs
Q: How do I find my Calendar ID?
A: For your primary calendar, you can use "primary" as the Calendar ID. For other calendars, go to Google Calendar settings, select the calendar you want to use, and find the Calendar ID in the "Integrate calendar" section. It usually looks like an email address.
Q: What time format should I use for event times?
A: You must use RFC3339 format with timezone information. Examples:
- With timezone offset: "2025-12-10T10:00:00-07:00"
- With UTC: "2025-12-10T17:00:00Z"
Q: Can I create recurring events?
A: The current Create an Event operation creates single events. For recurring events, you would need to use the Update an Event operation with a recurrence rule in the EventBody parameter.
Q: What should I do if I get a 403 Forbidden error?
A: Check the following:
- Ensure your credentials have the necessary permissions (calendar.events scope).
- Verify that the Google Calendar API is enabled in your Google Cloud project.
- Check that you have access to the specified calendar.
Q: How do I check if a time slot is available before creating an event?
A: Use the "Get Availability" operation first with your desired start and end times. It will return IsAvailable as true if the time slot is free, allowing you to proceed with event creation.
7. Official Documentation
For more detailed information about Google Calendar API capabilities and advanced features, please refer to: Google Calendar Official API Documentation
Leave a Reply.