Google Calendar Node
The Google Calendar node provides integration with Google Calendar in SkyStudio workflows. You can read, create, update, and delete events, and run AI-powered natural language queries.
🎬 Click to watch the video →
Connection Setup and Management
To use the Google Calendar node, you must first create a Google account connection.
Adding a New Connection
- Go to Application Connections from the left menu in SkyStudio.
- Click the Add New Connection button.
- Select Google Calendar as the provider.
- Click the Authorize with Google button.
- In the Google OAuth window that opens, select your account and approve the required permissions.
- Once authorization is completed, the connection is saved automatically.
Note: The Google Calendar node uses the OAuth 2.0 protocol. Your password is not sent to SkyStudio; only the access token provided by Google is stored.
Assigning the Connection to the Node
After adding the Google Calendar node to the canvas, select the Google account connection you created from the Application Connections dropdown in the right panel.
What is Calendar ID?
Calendar ID specifies which calendar will be used.
| Value | Description |
|---|---|
primary | Default primary calendar in your Google account |
user@gmail.com | Email address of a specific calendar |
| Custom ID | Unique calendar identifier copied from Google Calendar settings |
To find your Calendar ID: Google Calendar → Calendar Settings → Integrate calendar section → Calendar ID field.
Operations
The Google Calendar node provides 9 operations:
| Operation | Category | Description |
|---|---|---|
| Get Events | Featured | Lists events within a specific date range |
| Today’s Events | Featured | Retrieves all events for today |
| Upcoming Events | Featured | Lists events in the upcoming days |
| Google Calendar AI Assistant | Featured | Queries calendar data using natural language |
| List Calendars | Standard | Lists all calendars in the account |
| Get Event | Standard | Retrieves the details of a single event by ID |
| Create Event | Standard | Creates a new calendar event |
| Update Event | Standard | Updates an existing event |
| Delete Event | Standard | Deletes an event from the calendar |
Get Events
Returns calendar events within the specified date range. It is used in reporting and event filtering scenarios.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier from which events will be retrieved, such as primary |
| Start Date | No | Search start date. Can be entered manually. Format: 2024-06-01T00:00:00 |
| End Date | No | Search end date. Can be entered manually. Format: 2024-06-30T23:59:59 |
| Search Query | No | Text to search in the title or description |
| Max Results | No | Maximum number of events to return |
| Order By | No | Sorting criterion: startTime or updated |
Example Output
{
"items": [
{
"id": "abc123xyz",
"summary": "Project Meeting",
"start": {
"dateTime": "2024-11-15T10:00:00"
},
"end": {
"dateTime": "2024-11-15T11:00:00"
},
"location": "Meeting Room 1",
"status": "confirmed"
}
]
}
Today’s Events
Automatically retrieves all events scheduled for today in the selected calendar. It is ideal for getting a daily summary without entering date parameters.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier from which events will be retrieved |
| Timezone | No | Time zone used to determine the boundaries of the day, such as Europe/Istanbul |
Tip: If no time zone is specified, UTC is used. For workflows running in Türkiye, enter
Europe/Istanbul.
Upcoming Events
Retrieves events within the specified number of days from the current time. It is suitable for reminder and notification workflows.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier from which events will be retrieved |
| Days Ahead | No | Number of days ahead to scan, such as 7 for the next week |
| Max Results | No | Maximum number of events to return |
Google Calendar AI Assistant
Allows you to query calendar data using natural language. It is ideal for accessing information without writing complex date and time filters.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Query | Yes | Query question written in natural language |
| System Prompt | No | System instruction that customizes the AI assistant’s behavior |
Usage Example
Query: "How many meetings do I have this weekend?"
System Prompt: "Count only events that include the word 'Toplantı' or 'Meeting'."
Tip: You can use the System Prompt to define constraints for the AI assistant, such as specific calendars, people, or event categories.
List Calendars
Returns all calendars connected to your Google account, including personal, shared, and team calendars. It is used to discover which calendars you can access and to find Calendar ID values.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
Example Output
{
"items": [
{
"id": "primary",
"summary": "Ahmet Yılmaz",
"primary": true,
"accessRole": "owner"
},
{
"id": "tr.turkish#holiday@group.v.calendar.google.com",
"summary": "Holidays in Türkiye",
"accessRole": "reader"
}
]
}
Get Event
Retrieves all details of a single calendar event using a specific Event ID.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier where the event exists |
| Event ID | Yes | Google Calendar ID of the event to retrieve |
How to Find the Event ID
The id field returned by the Get Events or Today’s Events operations is the Event ID of that event. It can also be copied from the URL when you open the event in the Google Calendar web interface.
Create Event
Creates a new event in Google Calendar. Participant invitations, location, and all-day events are supported.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier where the event will be created |
| Title | Yes | Event title |
| Description | No | Event description or notes |
| Start Date Time | Yes | Start date and time. Can be entered manually. Format: 2024-06-01T10:00:00 |
| End Date Time | Yes | End date and time. Can be entered manually. Format: 2024-06-01T11:00:00 |
| Timezone | No | Time zone of the event, such as Europe/Istanbul |
| Location | No | Event location, such as an address or venue name |
| Attendees | No | Email addresses of participants to invite, separated by commas |
| All Day Event | No | Marks the event as an all-day event. If enabled, time information is ignored |
Using Attendees
To add multiple participants, separate email addresses with commas:
ali@company.com, ayse@company.com, mehmet@partner.com
A Google Calendar invitation is automatically sent to each participant.
All Day Event Mode
When All Day Event is enabled, the Start Date Time and End Date Time fields still use the same format, such as 2024-12-31T00:00:00, but the time information is ignored and the event is marked as all-day.
Update Event
Updates the information of an existing calendar event. Only the entered fields are changed; fields left empty keep their existing values.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier where the event exists |
| Event ID | Yes | ID of the event to update |
| Title | No | New event title |
| Description | No | New description or notes |
| Start Date Time | No | New start date and time |
| End Date Time | No | New end date and time |
| Timezone | No | New time zone |
| Location | No | New location information |
| Attendees | No | Updated participant list, with emails separated by commas |
Warning: When the Attendees field is entered, the entire existing participant list is replaced with the new list. To preserve existing participants, first retrieve the current list using Get Event and add new participants on top of it.
Delete Event
Permanently deletes a calendar event. This action cannot be undone.
Parameters
| Parameter | Required | Description |
|---|---|---|
| Connection | Yes | The Google account connection to use |
| Calendar ID | Yes | Calendar identifier where the event exists |
| Event ID | Yes | ID of the event to delete |
Warning: Deletion is permanent and cannot be undone. Make sure the Event ID is correct before deleting.
Quick Start Examples
Example 1: Daily Meeting Summary
A workflow that summarizes today’s meetings every morning and sends them to Slack:
Schedule (Every morning at 08:00) → Today’s Events → LLM (summarize) → Slack Message
Today’s Events settings:
- Calendar ID:
primary - Timezone:
Europe/Istanbul
Example 2: Automatic Meeting Scheduler
A workflow that automatically creates an event based on meeting information entered by the user:
Text Input → LLM (parse information) → Create Event → Confirmation Message
Create Event settings:
- Calendar ID:
primary - Title:
{{llm.output.title}} - Start Date Time:
{{llm.output.start}} - End Date Time:
{{llm.output.end}} - Attendees:
{{llm.output.attendees}} - Timezone:
Europe/Istanbul
Example 3: Upcoming Event Reminder
A workflow that sends email reminders for events within the next 24 hours:
Schedule (Every day at 09:00) → Upcoming Events → Condition (are there events?) → Send Email
Upcoming Events settings:
- Calendar ID:
primary - Days Ahead:
1 - Max Results:
10
Example 4: Natural Language Calendar Assistant
A calendar chatbot that answers user questions in natural language:
Text Input → Google Calendar AI Assistant → Text Output
Google Calendar AI Assistant settings:
- Query:
{{input.text}} - System Prompt:
"Answer the user’s calendar-related questions in Turkish. Provide date and time information in Türkiye time."
Common Errors
| Error | Possible Cause | Solution |
|---|---|---|
401 Unauthorized | OAuth token has expired or been revoked | Reauthorize the Google account from connection settings |
403 Forbidden | No write permission for the calendar | Check calendar permissions in Google Calendar |
404 Not Found | Invalid Calendar ID or Event ID | Verify the correct Calendar ID using List Calendars |
409 Conflict | Event conflict with the same Event ID | Avoid using an existing Event ID when creating a new event |
Invalid time range | Start Date Time is after End Date Time | Check that the start date is before the end date |
Calendar not found | Incorrect or inaccessible Calendar ID | Verify that the account has access permission for the relevant calendar |
Notes
- All date and time values must be entered in
YYYY-MM-DDTHH:MM:SSformat, such as2024-06-01T10:00:00. Values can be entered manually or bound with/. Timezone offset, such as+03:00, is not added to the datetime string; the time zone is specified separately in the Timezone field. - The Timezone field uses values from the IANA time zone database. Use
Europe/Istanbulfor Türkiye. - Google Calendar API has a limit of 10 requests per second. In workflows that process many events, it is recommended to add delay between requests.
- For recurring events, Delete Event deletes only the selected instance. To delete the entire series, use the Google Calendar interface.
- When All Day Event is enabled, the Timezone setting is ignored.