# nodes

node_type: nodes-base.gong
package_name: n8n-nodes-base
display_name: Gong
description: Interact with Gong API
category: transform
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Gong node documentation
  description: Learn how to use the Gong node in n8n. Follow technical documentation to integrate Gong node into your workflows.
  contentType: [integration, reference]
  ---

  # Gong node

  Use the Gong node to automate work in Gong and integrate Gong with other applications. n8n has built-in support for a wide range of Gong features, which includes getting one or more calls and users.

  On this page, you'll find a list of operations the Gong node supports, and links to more resources.

  ///  note  | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/gong.md).
  ///


  ## Operations

  <!-- vale off -->
  * Call
  	* Get
  	* Get Many
  * User
  	* Get
  	* Get Many
  <!-- vale on -->

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'gong') ]]

  ## Related resources

  Refer to [Gong's documentation](https://gong.app.gong.io/settings/api/documentation){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "accessToken",
      "options": [
        {
          "name": "Access Token",
          "value": "accessToken"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "call",
      "options": [
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve data for a specific call",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/v2/calls/extensive",
              "ignoreHttpStatusErrors": true
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get call"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve a list of calls",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/v2/calls/extensive",
              "body": {
                "filter": {}
              },
              "ignoreHttpStatusErrors": true
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get many calls"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Call to Get",
      "name": "call",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "getCalls",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "placeholder": "e.g. 7782342274025937895",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[0-9]{1,20}",
                "errorMessage": "Not a valid Gong Call ID"
              }
            }
          ]
        },
        {
          "displayName": "By URL",
          "name": "url",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/[a-zA-Z0-9-]+\\.app\\.gong\\.io\\/call\\?id=([0-9]{1,20})"
          },
          "placeholder": "e.g. https://subdomain.app.gong.io/call?id=7782342274025937895",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/[a-zA-Z0-9-]+\\.app\\.gong\\.io\\/call\\?id=([0-9]{1,20})",
                "errorMessage": "Not a valid Gong URL"
              }
            }
          ]
        }
      ]
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Call Data to Include",
          "name": "properties",
          "type": "multiOptions",
          "default": [],
          "description": "The Call properties to include in the returned results. Choose from a list, or specify IDs using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>.",
          "options": [
            {
              "name": "Action Items",
              "value": "pointsOfInterest",
              "description": "Call points of interest"
            },
            {
              "name": "Audio and Video URLs",
              "value": "media",
              "description": "Audio and video URL of the call. The URLs will be available for 8 hours."
            },
            {
              "name": "Brief",
              "value": "brief",
              "description": "Spotlight call brief",
              "routing": {
                "send": {
                  "type": "body",
                  "property": "contentSelector.exposedFields.content.brief",
                  "propertyInDotNotation": true,
                  "value": "={{ $value }}"
                }
              }
            },
            {
              "name": "Comments",
              "value": "publicComments",
              "description": "Public comments made for this call"
            },
            {
              "name": "Highlights",
              "value": "highlights",
              "description": "Call highlights"
            },
            {
              "name": "Keypoints",
              "value": "keyPoints",
              "description": "Key points of the call"
            },
            {
              "name": "Outcome",
              "value": "callOutcome",
              "description": "Outcome of the call"
            },
            {
              "name": "Outline",
              "value": "outline",
              "description": "Call outline"
            },
            {
              "name": "Participants",
              "value": "parties",
              "description": "Information about the participants of the call"
            },
            {
              "name": "Structure",
              "value": "structure",
              "description": "Call agenda"
            },
            {
              "name": "Topics",
              "value": "topics",
              "description": "Duration of call topics"
            },
            {
              "name": "Trackers",
              "value": "trackers",
              "description": "Smart tracker and keyword tracker information for the call"
            },
            {
              "name": "Transcript",
              "value": "transcript",
              "description": "Information about the participants"
            }
          ],
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "After",
          "name": "fromDateTime",
          "default": "",
          "description": "Returns calls that started on or after the specified date and time. If not provided, list starts with earliest call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
          "placeholder": "e.g. 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z",
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.fromDateTime",
              "propertyInDotNotation": true,
              "value": "={{ new Date($value).toISOString() }}"
            }
          },
          "type": "dateTime",
          "validateType": "dateTime"
        },
        {
          "displayName": "Before",
          "name": "toDateTime",
          "default": "",
          "description": "Returns calls that started up to but excluding specified date and time. If not provided, list ends with most recent call. For web-conference calls recorded by Gong, the date denotes its scheduled time, otherwise, it denotes its actual start time.",
          "placeholder": "e.g. 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z",
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.toDateTime",
              "propertyInDotNotation": true,
              "value": "={{ new Date($value).toISOString() }}"
            }
          },
          "type": "dateTime",
          "validateType": "dateTime"
        },
        {
          "displayName": "Workspace ID",
          "name": "workspaceId",
          "default": "",
          "description": "Return only the calls belonging to this workspace",
          "placeholder": "e.g. 623457276584334",
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.workspaceId",
              "propertyInDotNotation": true,
              "value": "={{ $value }}"
            }
          },
          "type": "string",
          "validateType": "number"
        },
        {
          "displayName": "Call IDs",
          "name": "callIds",
          "default": "",
          "description": "List of calls IDs to be filtered",
          "hint": "Comma separated list of IDs, array of strings can be set in expression",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "placeholder": "e.g. 7782342274025937895",
          "type": "string"
        },
        {
          "displayName": "Organizer",
          "name": "primaryUserIds",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Return only the calls hosted by the specified user",
          "modes": [
            {
              "displayName": "From List",
              "name": "list",
              "type": "list",
              "typeOptions": {
                "searchListMethod": "getUsers",
                "searchable": true
              }
            },
            {
              "displayName": "By ID",
              "name": "id",
              "placeholder": "e.g. 7782342274025937895",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "[0-9]{1,20}",
                    "errorMessage": "Not a valid Gong User ID"
                  }
                }
              ]
            }
          ],
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.primaryUserIds",
              "propertyInDotNotation": true,
              "value": "={{ [$value] }}"
            }
          },
          "type": "resourceLocator"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Call Data to Include",
          "name": "properties",
          "type": "multiOptions",
          "default": [],
          "description": "The Call properties to include in the returned results. Choose from a list, or specify IDs using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>.",
          "options": [
            {
              "name": "Participants",
              "value": "parties",
              "description": "Information about the participants of the call"
            },
            {
              "name": "Topics",
              "value": "topics",
              "description": "Information about the topics of the call"
            }
          ],
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve data for a specific user",
          "action": "Get user",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/v2/users/extensive",
              "ignoreHttpStatusErrors": true
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          }
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve a list of users",
          "action": "Get many users",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/v2/users/extensive",
              "body": {
                "filter": {}
              },
              "ignoreHttpStatusErrors": true
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "User to Get",
      "name": "user",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "getUsers",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "placeholder": "e.g. 7782342274025937895",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[0-9]{1,20}",
                "errorMessage": "Not a valid Gong User ID"
              }
            }
          ]
        }
      ]
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filters",
      "name": "filters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Created After",
          "name": "createdFromDateTime",
          "default": "",
          "description": "An optional user creation time lower limit, if supplied the API will return only the users created at or after this time",
          "placeholder": "e.g. 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z",
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.createdFromDateTime",
              "propertyInDotNotation": true,
              "value": "={{ new Date($value).toISOString() }}"
            }
          },
          "type": "dateTime",
          "validateType": "dateTime"
        },
        {
          "displayName": "Created Before",
          "name": "createdToDateTime",
          "default": "",
          "description": "An optional user creation time upper limit, if supplied the API will return only the users created before this time",
          "placeholder": "e.g. 2018-02-18T02:30:00-07:00 or 2018-02-18T08:00:00Z",
          "routing": {
            "send": {
              "type": "body",
              "property": "filter.createdToDateTime",
              "propertyInDotNotation": true,
              "value": "={{ new Date($value).toISOString() }}"
            }
          },
          "type": "dateTime",
          "validateType": "dateTime"
        },
        {
          "displayName": "User IDs",
          "name": "userIds",
          "default": "",
          "description": "Set of Gong's unique numeric identifiers for the users (up to 20 digits)",
          "hint": "Comma separated list of IDs, array of strings can be set in expression",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "placeholder": "e.g. 7782342274025937895",
          "type": "string"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve data for a specific call",
      "resource": "call"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of calls",
      "resource": "call"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve data for a specific user",
      "resource": "user"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of users",
      "resource": "user"
    }
  ]

credentials_required:
  [
    {
      "name": "gongApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "accessToken"
          ]
        }
      }
    },
    {
      "name": "gongOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleAdsTool
package_name: n8n-nodes-base
display_name: Google Ads Tool
description: Use the Google Ads API (AI Tool variant for use with AI Agents)
category: transform
development_style: programmatic
version: 1
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-16 09:43:08
tool_variant_of: nodes-base.googleAds
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Ads node documentation
  description: Learn how to use the Google Ads node in n8n. Follow technical documentation to integrate Google Ads node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Ads node

  Use the Google Ads node to automate work in Google Ads, and integrate Google Ads with other applications. n8n has built-in support for a wide range of Google Ads features, including getting campaigns. 

  On this page, you'll find a list of operations the Google Ads node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Ads credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Campaign
    * Get all campaigns
    * Get a campaign

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-ads') ]]

  ## Related resources

  Refer to [Google Ads' documentation](https://developers.google.com/google-ads/api/docs/start){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Ads"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Campaign",
          "value": "campaign"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many campaigns linked to the specified account",
          "routing": {
            "request": {
              "method": "POST",
              "url": "={{\"/v20/customers/\" + $parameter[\"clientCustomerId\"].toString().replace(/-/g, \"\")  + \"/googleAds:search\"}}",
              "body": {
                "query": "={{ \"select campaign.id, campaign.name, campaign_budget.amount_micros, campaign_budget.period,campaign.status,campaign.optimization_score,campaign.advertising_channel_type,campaign.advertising_channel_sub_type,metrics.impressions,metrics.interactions,metrics.interaction_rate,metrics.average_cost,metrics.cost_micros,metrics.conversions,metrics.cost_per_conversion,metrics.conversions_from_interactions_rate,metrics.video_views,metrics.average_cpm,metrics.ctr from campaign where campaign.id > 0 \" + ([\"allTime\", undefined, \"\"].includes($parameter.additionalOptions?.dateRange) ? \"\" : \" and segments.date DURING \" + $parameter.additionalOptions.dateRange) + \" \" + ([\"all\", undefined, \"\"].includes($parameter.additionalOptions?.campaignStatus) ? \"\" : \" and campaign.status = '\" + $parameter.additionalOptions.campaignStatus + \"'\") + \"\" }}"
              },
              "headers": {
                "login-customer-id": "={{$parameter[\"managerCustomerId\"].toString().replace(/-/g, \"\")}}"
              }
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get many campaigns"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a specific campaign",
          "routing": {
            "request": {
              "method": "POST",
              "url": "={{\"/v20/customers/\" + $parameter[\"clientCustomerId\"].toString().replace(/-/g, \"\") + \"/googleAds:search\"}}",
              "returnFullResponse": true,
              "body": {
                "query": "={{ \"select campaign.id, campaign.name, campaign_budget.amount_micros, campaign_budget.period,campaign.status,campaign.optimization_score,campaign.advertising_channel_type,campaign.advertising_channel_sub_type,metrics.impressions,metrics.interactions,metrics.interaction_rate,metrics.average_cost,metrics.cost_micros,metrics.conversions,metrics.cost_per_conversion,metrics.conversions_from_interactions_rate,metrics.video_views,metrics.average_cpm,metrics.ctr from campaign where campaign.id = \" + $parameter[\"campaignId\"].toString().replace(/-/g, \"\")}}"
              },
              "headers": {
                "login-customer-id": "={{$parameter[\"managerCustomerId\"].toString().replace(/-/g, \"\")}}"
              }
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get a campaign"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Divide field names expressed with <i>micros</i> by 1,000,000 to get the actual value",
      "name": "campaigsNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Manager Customer ID",
      "name": "managerCustomerId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Client Customer ID",
      "name": "clientCustomerId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Campaign ID",
      "name": "campaignId",
      "type": "string",
      "default": "",
      "description": "ID of the campaign",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Additional Options",
      "name": "additionalOptions",
      "type": "collection",
      "default": {},
      "description": "Additional options for fetching campaigns",
      "options": [
        {
          "displayName": "Date Range",
          "name": "dateRange",
          "description": "Filters statistics by period",
          "type": "options",
          "options": [
            {
              "name": "All Time",
              "value": "allTime",
              "description": "Fetch statistics for all period"
            },
            {
              "name": "Today",
              "value": "TODAY",
              "description": "Today only"
            },
            {
              "name": "Yesterday",
              "value": "YESTERDAY",
              "description": "Yesterday only"
            },
            {
              "name": "Last 7 Days",
              "value": "LAST_7_DAYS",
              "description": "Last 7 days, not including today"
            },
            {
              "name": "Last Business Week",
              "value": "LAST_BUSINESS_WEEK",
              "description": "The 5 day business week, Monday through Friday, of the previous business week"
            },
            {
              "name": "This Month",
              "value": "THIS_MONTH",
              "description": "All days in the current month"
            },
            {
              "name": "Last Month",
              "value": "LAST_MONTH",
              "description": "All days in the previous month"
            },
            {
              "name": "Last 14 Days",
              "value": "LAST_14_DAYS",
              "description": "The last 14 days not including today"
            },
            {
              "name": "Last 30 Days",
              "value": "LAST_30_DAYS",
              "description": "The last 30 days not including today"
            }
          ],
          "default": "allTime"
        },
        {
          "displayName": "Show Campaigns by Status",
          "name": "campaignStatus",
          "description": "Filters campaigns by status",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Fetch all campaigns regardless of status"
            },
            {
              "name": "Enabled",
              "value": "ENABLED",
              "description": "Filter only active campaigns"
            },
            {
              "name": "Paused",
              "value": "PAUSED",
              "description": "Filter only paused campaigns"
            },
            {
              "name": "Removed",
              "value": "REMOVED",
              "description": "Filter only removed campaigns"
            }
          ],
          "default": "all"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many campaigns linked to the specified account",
      "resource": "campaign"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a specific campaign",
      "resource": "campaign"
    }
  ]

credentials_required:
  [
    {
      "name": "googleAdsOAuth2Api",
      "required": true,
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/v20/customers:listAccessibleCustomers"
        }
      }
    }
  ]


node_type: nodes-base.googleAds
package_name: n8n-nodes-base
display_name: Google Ads
description: Use the Google Ads API
category: transform
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Ads node documentation
  description: Learn how to use the Google Ads node in n8n. Follow technical documentation to integrate Google Ads node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Ads node

  Use the Google Ads node to automate work in Google Ads, and integrate Google Ads with other applications. n8n has built-in support for a wide range of Google Ads features, including getting campaigns. 

  On this page, you'll find a list of operations the Google Ads node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Ads credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Campaign
    * Get all campaigns
    * Get a campaign

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-ads') ]]

  ## Related resources

  Refer to [Google Ads' documentation](https://developers.google.com/google-ads/api/docs/start){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Campaign",
          "value": "campaign"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many campaigns linked to the specified account",
          "routing": {
            "request": {
              "method": "POST",
              "url": "={{\"/v20/customers/\" + $parameter[\"clientCustomerId\"].toString().replace(/-/g, \"\")  + \"/googleAds:search\"}}",
              "body": {
                "query": "={{ \"select campaign.id, campaign.name, campaign_budget.amount_micros, campaign_budget.period,campaign.status,campaign.optimization_score,campaign.advertising_channel_type,campaign.advertising_channel_sub_type,metrics.impressions,metrics.interactions,metrics.interaction_rate,metrics.average_cost,metrics.cost_micros,metrics.conversions,metrics.cost_per_conversion,metrics.conversions_from_interactions_rate,metrics.video_views,metrics.average_cpm,metrics.ctr from campaign where campaign.id > 0 \" + ([\"allTime\", undefined, \"\"].includes($parameter.additionalOptions?.dateRange) ? \"\" : \" and segments.date DURING \" + $parameter.additionalOptions.dateRange) + \" \" + ([\"all\", undefined, \"\"].includes($parameter.additionalOptions?.campaignStatus) ? \"\" : \" and campaign.status = '\" + $parameter.additionalOptions.campaignStatus + \"'\") + \"\" }}"
              },
              "headers": {
                "login-customer-id": "={{$parameter[\"managerCustomerId\"].toString().replace(/-/g, \"\")}}"
              }
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get many campaigns"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a specific campaign",
          "routing": {
            "request": {
              "method": "POST",
              "url": "={{\"/v20/customers/\" + $parameter[\"clientCustomerId\"].toString().replace(/-/g, \"\") + \"/googleAds:search\"}}",
              "returnFullResponse": true,
              "body": {
                "query": "={{ \"select campaign.id, campaign.name, campaign_budget.amount_micros, campaign_budget.period,campaign.status,campaign.optimization_score,campaign.advertising_channel_type,campaign.advertising_channel_sub_type,metrics.impressions,metrics.interactions,metrics.interaction_rate,metrics.average_cost,metrics.cost_micros,metrics.conversions,metrics.cost_per_conversion,metrics.conversions_from_interactions_rate,metrics.video_views,metrics.average_cpm,metrics.ctr from campaign where campaign.id = \" + $parameter[\"campaignId\"].toString().replace(/-/g, \"\")}}"
              },
              "headers": {
                "login-customer-id": "={{$parameter[\"managerCustomerId\"].toString().replace(/-/g, \"\")}}"
              }
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get a campaign"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Divide field names expressed with <i>micros</i> by 1,000,000 to get the actual value",
      "name": "campaigsNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Manager Customer ID",
      "name": "managerCustomerId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Client Customer ID",
      "name": "clientCustomerId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Campaign ID",
      "name": "campaignId",
      "type": "string",
      "default": "",
      "description": "ID of the campaign",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "campaign"
          ]
        }
      }
    },
    {
      "displayName": "Additional Options",
      "name": "additionalOptions",
      "type": "collection",
      "default": {},
      "description": "Additional options for fetching campaigns",
      "options": [
        {
          "displayName": "Date Range",
          "name": "dateRange",
          "description": "Filters statistics by period",
          "type": "options",
          "options": [
            {
              "name": "All Time",
              "value": "allTime",
              "description": "Fetch statistics for all period"
            },
            {
              "name": "Today",
              "value": "TODAY",
              "description": "Today only"
            },
            {
              "name": "Yesterday",
              "value": "YESTERDAY",
              "description": "Yesterday only"
            },
            {
              "name": "Last 7 Days",
              "value": "LAST_7_DAYS",
              "description": "Last 7 days, not including today"
            },
            {
              "name": "Last Business Week",
              "value": "LAST_BUSINESS_WEEK",
              "description": "The 5 day business week, Monday through Friday, of the previous business week"
            },
            {
              "name": "This Month",
              "value": "THIS_MONTH",
              "description": "All days in the current month"
            },
            {
              "name": "Last Month",
              "value": "LAST_MONTH",
              "description": "All days in the previous month"
            },
            {
              "name": "Last 14 Days",
              "value": "LAST_14_DAYS",
              "description": "The last 14 days not including today"
            },
            {
              "name": "Last 30 Days",
              "value": "LAST_30_DAYS",
              "description": "The last 30 days not including today"
            }
          ],
          "default": "allTime"
        },
        {
          "displayName": "Show Campaigns by Status",
          "name": "campaignStatus",
          "description": "Filters campaigns by status",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Fetch all campaigns regardless of status"
            },
            {
              "name": "Enabled",
              "value": "ENABLED",
              "description": "Filter only active campaigns"
            },
            {
              "name": "Paused",
              "value": "PAUSED",
              "description": "Filter only paused campaigns"
            },
            {
              "name": "Removed",
              "value": "REMOVED",
              "description": "Filter only removed campaigns"
            }
          ],
          "default": "all"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many campaigns linked to the specified account",
      "resource": "campaign"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a specific campaign",
      "resource": "campaign"
    }
  ]

credentials_required:
  [
    {
      "name": "googleAdsOAuth2Api",
      "required": true,
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/v20/customers:listAccessibleCustomers"
        }
      }
    }
  ]


node_type: nodes-base.googleAnalytics
package_name: n8n-nodes-base
display_name: Google Analytics
description: Use the Google Analytics API
category: transform
development_style: programmatic
version: 2
credentials_required:
  [
  {
  "name": "googleAnalyticsOAuth2",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Analytics node documentation
  description: Learn how to use the Google Analytics node in n8n. Follow technical documentation to integrate Google Analytics node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Analytics node

  Use the Google Analytics node to automate work in Google Analytics, and integrate Google Analytics with other applications. n8n has built-in support for a wide range of Google Analytics features, including returning reports and user activities.


  On this page, you'll find a list of operations the Google Analytics node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Analytics credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * Report
      * Get
  * User Activity
      * Search

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-analytics') ]]

  ## Related resources

  Refer to [Google Analytics' documentation](https://developers.google.com/analytics){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "report",
      "options": [
        {
          "name": "Report",
          "value": "report"
        },
        {
          "name": "User Activity",
          "value": "userActivity"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Return the analytics data",
          "action": "Get a report"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Property Type",
      "name": "propertyType",
      "type": "options",
      "default": "ga4",
      "description": "Google Analytics 4 is the latest version. Universal Analytics is an older version that is not fully functional after the end of June 2023.",
      "options": [
        {
          "name": "Google Analytics 4",
          "value": "ga4"
        },
        {
          "name": "Universal Analytics",
          "value": "universal"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Property",
      "name": "propertyId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The Property of Google Analytics",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "placeholder": "Select a property...",
          "typeOptions": {
            "searchListMethod": "searchProperties",
            "searchFilterRequired": false,
            "searchable": false
          }
        },
        {
          "displayName": "By URL",
          "name": "url",
          "type": "string",
          "placeholder": "https://analytics.google.com/analytics/...",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": ".*analytics\\.google\\.com\\/analytics.*\\/p([0-9]{1,})(?:\\/.*|)*",
                "errorMessage": "Not a valid Google Analytics URL"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": ".*analytics\\.google\\.com\\/analytics.*\\/p([0-9]{1,})(?:\\/.*|)"
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "placeholder": "123456",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[0-9]{1,}",
                "errorMessage": "Not a valid Google Analytics Property ID"
              }
            }
          ],
          "url": "=https://analytics.google.com/analytics/web/#/p{{$value}}/"
        }
      ]
    },
    {
      "displayName": "Date Range",
      "name": "dateRange",
      "type": "options",
      "default": "last7days",
      "options": [
        {
          "name": "Last 7 Days",
          "value": "last7days"
        },
        {
          "name": "Last 30 Days",
          "value": "last30days"
        },
        {
          "name": "Today",
          "value": "today"
        },
        {
          "name": "Yesterday",
          "value": "yesterday"
        },
        {
          "name": "Last Complete Calendar Week",
          "value": "lastCalendarWeek"
        },
        {
          "name": "Last Complete Calendar Month",
          "value": "lastCalendarMonth"
        },
        {
          "name": "Custom",
          "value": "custom"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "Start",
      "name": "startDate",
      "type": "dateTime",
      "default": "2026-04-08T00:00:00.000+02:00",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "dateRange": [
            "custom"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "endDate",
      "type": "dateTime",
      "default": "2026-04-15T00:00:00.000+02:00",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "dateRange": [
            "custom"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "Metrics",
      "name": "metricsGA4",
      "type": "fixedCollection",
      "default": {
        "metricValues": [
          {
            "listName": "totalUsers"
          }
        ]
      },
      "description": "The quantitative measurements of a report. For example, the metric eventCount is the total number of events. Requests are allowed up to 10 metrics.",
      "options": [
        {
          "displayName": "Values",
          "name": "metricValues",
          "values": [
            {
              "displayName": "Metric",
              "name": "listName",
              "type": "options",
              "default": "totalUsers",
              "options": [
                {
                  "name": "1 Day Active Users",
                  "value": "active1DayUsers"
                },
                {
                  "name": "28 Day Active Users",
                  "value": "active28DayUsers"
                },
                {
                  "name": "7 Day Active Users",
                  "value": "active7DayUsers"
                },
                {
                  "name": "Checkouts",
                  "value": "checkouts"
                },
                {
                  "name": "Events",
                  "value": "eventCount"
                },
                {
                  "name": "Page Views",
                  "value": "screenPageViews"
                },
                {
                  "name": "Session Duration",
                  "value": "userEngagementDuration"
                },
                {
                  "name": "Sessions",
                  "value": "sessions"
                },
                {
                  "name": "Sessions per User",
                  "value": "sessionsPerUser"
                },
                {
                  "name": "Total Users",
                  "value": "totalUsers"
                },
                {
                  "name": "Other metrics…",
                  "value": "other"
                },
                {
                  "name": "Custom metric…",
                  "value": "custom"
                }
              ]
            },
            {
              "displayName": "Name or ID",
              "name": "name",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getMetricsGA4",
                "loadOptionsDependsOn": [
                  "propertyId.value"
                ]
              },
              "default": "totalUsers",
              "hint": "If expression is specified, name can be any string that you would like",
              "description": "The name of the metric. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
              "displayOptions": {
                "show": {
                  "listName": [
                    "other"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "custom_metric",
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              }
            },
            {
              "displayName": "Expression",
              "name": "expression",
              "type": "string",
              "default": "",
              "description": "A mathematical expression for derived metrics. For example, the metric Event count per user is eventCount/totalUsers.",
              "placeholder": "e.g. eventCount/totalUsers",
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              }
            },
            {
              "displayName": "Invisible",
              "name": "invisible",
              "type": "boolean",
              "default": false,
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              },
              "description": "Whether a metric is invisible in the report response. If a metric is invisible, the metric will not produce a column in the response, but can be used in metricFilter, orderBys, or a metric expression."
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Dimensions to split by",
      "name": "dimensionsGA4",
      "type": "fixedCollection",
      "default": {
        "dimensionValues": [
          {
            "listName": "date"
          }
        ]
      },
      "description": "Dimensions are attributes of your data. For example, the dimension city indicates the city from which an event originates. Dimension values in report responses are strings; for example, the city could be \"Paris\" or \"New York\". Requests are allowed up to 9 dimensions.",
      "options": [
        {
          "displayName": "Values",
          "name": "dimensionValues",
          "values": [
            {
              "displayName": "Dimension",
              "name": "listName",
              "type": "options",
              "default": "date",
              "options": [
                {
                  "name": "Browser",
                  "value": "browser"
                },
                {
                  "name": "Campaign",
                  "value": "campaignName"
                },
                {
                  "name": "City",
                  "value": "city"
                },
                {
                  "name": "Country",
                  "value": "country"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Device Category",
                  "value": "deviceCategory"
                },
                {
                  "name": "Item Name",
                  "value": "itemName"
                },
                {
                  "name": "Language",
                  "value": "language"
                },
                {
                  "name": "Page Location",
                  "value": "pageLocation"
                },
                {
                  "name": "Source / Medium",
                  "value": "sourceMedium"
                },
                {
                  "name": "Other dimensions…",
                  "value": "other"
                }
              ]
            },
            {
              "displayName": "Name or ID",
              "name": "name",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getDimensionsGA4",
                "loadOptionsDependsOn": [
                  "propertyId.value"
                ]
              },
              "default": "date",
              "description": "The name of the dimension. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
              "displayOptions": {
                "show": {
                  "listName": [
                    "other"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "ga4"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Currency Code",
          "name": "currencyCode",
          "type": "string",
          "default": "",
          "description": "A currency code in ISO4217 format, such as \"AED\", \"USD\", \"JPY\". If the field is empty, the report uses the property's default currency."
        },
        {
          "displayName": "Dimensions Filters",
          "name": "dimensionFiltersUI",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Filter",
          "options": [
            {
              "displayName": "Filter Expressions",
              "name": "filterExpressions",
              "values": [
                {
                  "displayName": "Filter Expression Type",
                  "name": "filterExpressionType",
                  "type": "options",
                  "default": "andGroup",
                  "options": [
                    {
                      "name": "And Group",
                      "value": "andGroup"
                    },
                    {
                      "name": "Or Group",
                      "value": "orGroup"
                    }
                  ]
                },
                {
                  "displayName": "Expression",
                  "name": "expression",
                  "type": "fixedCollection",
                  "typeOptions": {
                    "multipleValues": true
                  },
                  "default": {},
                  "placeholder": "Add Expression",
                  "options": [
                    {
                      "displayName": "String Filter",
                      "name": "stringFilter",
                      "values": [
                        {
                          "displayName": "Dimension",
                          "name": "listName",
                          "type": "options",
                          "default": "date",
                          "options": [
                            {
                              "name": "Browser",
                              "value": "browser"
                            },
                            {
                              "name": "Campaign",
                              "value": "campaignName"
                            },
                            {
                              "name": "City",
                              "value": "city"
                            },
                            {
                              "name": "Country",
                              "value": "country"
                            },
                            {
                              "name": "Date",
                              "value": "date"
                            },
                            {
                              "name": "Device Category",
                              "value": "deviceCategory"
                            },
                            {
                              "name": "Item Name",
                              "value": "itemName"
                            },
                            {
                              "name": "Language",
                              "value": "language"
                            },
                            {
                              "name": "Page Location",
                              "value": "pageLocation"
                            },
                            {
                              "name": "Source / Medium",
                              "value": "sourceMedium"
                            },
                            {
                              "name": "Other dimensions…",
                              "value": "other"
                            }
                          ]
                        },
                        {
                          "displayName": "Name or ID",
                          "name": "name",
                          "type": "options",
                          "typeOptions": {
                            "loadOptionsMethod": "getDimensionsGA4",
                            "loadOptionsDependsOn": [
                              "propertyId.value"
                            ]
                          },
                          "default": "date",
                          "description": "The name of the dimension. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "other"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Value",
                          "name": "value",
                          "type": "string",
                          "default": ""
                        },
                        {
                          "displayName": "Case Sensitive",
                          "name": "caseSensitive",
                          "type": "boolean",
                          "default": true
                        },
                        {
                          "displayName": "Match Type",
                          "name": "matchType",
                          "type": "options",
                          "default": "EXACT",
                          "options": [
                            {
                              "name": "Begins With",
                              "value": "BEGINS_WITH"
                            },
                            {
                              "name": "Contains Value",
                              "value": "CONTAINS"
                            },
                            {
                              "name": "Ends With",
                              "value": "ENDS_WITH"
                            },
                            {
                              "name": "Exact Match",
                              "value": "EXACT"
                            },
                            {
                              "name": "Full Match for the Regular Expression",
                              "value": "FULL_REGEXP"
                            },
                            {
                              "name": "Partial Match for the Regular Expression",
                              "value": "PARTIAL_REGEXP"
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "displayName": "In List Filter",
                      "name": "inListFilter",
                      "values": [
                        {
                          "displayName": "Dimension",
                          "name": "listName",
                          "type": "options",
                          "default": "date",
                          "options": [
                            {
                              "name": "Browser",
                              "value": "browser"
                            },
                            {
                              "name": "Campaign",
                              "value": "campaignName"
                            },
                            {
                              "name": "City",
                              "value": "city"
                            },
                            {
                              "name": "Country",
                              "value": "country"
                            },
                            {
                              "name": "Date",
                              "value": "date"
                            },
                            {
                              "name": "Device Category",
                              "value": "deviceCategory"
                            },
                            {
                              "name": "Item Name",
                              "value": "itemName"
                            },
                            {
                              "name": "Language",
                              "value": "language"
                            },
                            {
                              "name": "Page Location",
                              "value": "pageLocation"
                            },
                            {
                              "name": "Source / Medium",
                              "value": "sourceMedium"
                            },
                            {
                              "name": "Other dimensions…",
                              "value": "other"
                            }
                          ]
                        },
                        {
                          "displayName": "Name or ID",
                          "name": "name",
                          "type": "options",
                          "typeOptions": {
                            "loadOptionsMethod": "getDimensionsGA4",
                            "loadOptionsDependsOn": [
                              "propertyId.value"
                            ]
                          },
                          "default": "date",
                          "description": "The name of the dimension. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "other"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Values",
                          "name": "values",
                          "type": "string",
                          "default": "",
                          "hint": "Comma separated list of values. Must be non-empty."
                        },
                        {
                          "displayName": "Case Sensitive",
                          "name": "caseSensitive",
                          "type": "boolean",
                          "default": true
                        }
                      ]
                    },
                    {
                      "displayName": "Numeric Filter",
                      "name": "numericFilter",
                      "values": [
                        {
                          "displayName": "Dimension",
                          "name": "listName",
                          "type": "options",
                          "default": "date",
                          "options": [
                            {
                              "name": "Browser",
                              "value": "browser"
                            },
                            {
                              "name": "Campaign",
                              "value": "campaignName"
                            },
                            {
                              "name": "City",
                              "value": "city"
                            },
                            {
                              "name": "Country",
                              "value": "country"
                            },
                            {
                              "name": "Date",
                              "value": "date"
                            },
                            {
                              "name": "Device Category",
                              "value": "deviceCategory"
                            },
                            {
                              "name": "Item Name",
                              "value": "itemName"
                            },
                            {
                              "name": "Language",
                              "value": "language"
                            },
                            {
                              "name": "Page Location",
                              "value": "pageLocation"
                            },
                            {
                              "name": "Source / Medium",
                              "value": "sourceMedium"
                            },
                            {
                              "name": "Other dimensions…",
                              "value": "other"
                            }
                          ]
                        },
                        {
                          "displayName": "Name or ID",
                          "name": "name",
                          "type": "options",
                          "typeOptions": {
                            "loadOptionsMethod": "getDimensionsGA4",
                            "loadOptionsDependsOn": [
                              "propertyId.value"
                            ]
                          },
                          "default": "date",
                          "description": "The name of the dimension. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "other"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Value Type",
                          "name": "valueType",
                          "type": "options",
                          "default": "doubleValue",
                          "options": [
                            {
                              "name": "Double Value",
                              "value": "doubleValue"
                            },
                            {
                              "name": "Integer Value",
                              "value": "int64Value"
                            }
                          ]
                        },
                        {
                          "displayName": "Value",
                          "name": "value",
                          "type": "string",
                          "default": ""
                        },
                        {
                          "displayName": "Operation",
                          "name": "operation",
                          "type": "options",
                          "noDataExpression": true,
                          "default": "EQUAL",
                          "options": [
                            {
                              "name": "Equal",
                              "value": "EQUAL"
                            },
                            {
                              "name": "Greater Than",
                              "value": "GREATER_THAN"
                            },
                            {
                              "name": "Greater than or Equal",
                              "value": "GREATER_THAN_OR_EQUAL"
                            },
                            {
                              "name": "Less Than",
                              "value": "LESS_THAN"
                            },
                            {
                              "name": "Less than or Equal",
                              "value": "LESS_THAN_OR_EQUAL"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Metric Aggregation",
          "name": "metricAggregations",
          "type": "multiOptions",
          "default": [],
          "options": [
            {
              "name": "MAXIMUM",
              "value": "MAXIMUM"
            },
            {
              "name": "MINIMUM",
              "value": "MINIMUM"
            },
            {
              "name": "TOTAL",
              "value": "TOTAL"
            }
          ],
          "displayOptions": {
            "show": {
              "/simple": [
                false
              ]
            }
          }
        },
        {
          "displayName": "Metrics Filters",
          "name": "metricsFiltersUI",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Filter",
          "options": [
            {
              "displayName": "Filter Expressions",
              "name": "filterExpressions",
              "values": [
                {
                  "displayName": "Filter Expression Type",
                  "name": "filterExpressionType",
                  "type": "options",
                  "default": "andGroup",
                  "options": [
                    {
                      "name": "And Group",
                      "value": "andGroup"
                    },
                    {
                      "name": "Or Group",
                      "value": "orGroup"
                    }
                  ]
                },
                {
                  "displayName": "Expression",
                  "name": "expression",
                  "type": "fixedCollection",
                  "typeOptions": {
                    "multipleValues": true
                  },
                  "default": {},
                  "placeholder": "Add Expression",
                  "options": [
                    {
                      "displayName": "Between Filter",
                      "name": "betweenFilter",
                      "values": [
                        {
                          "displayName": "Metric",
                          "name": "listName",
                          "type": "options",
                          "default": "totalUsers",
                          "options": [
                            {
                              "name": "1 Day Active Users",
                              "value": "active1DayUsers"
                            },
                            {
                              "name": "28 Day Active Users",
                              "value": "active28DayUsers"
                            },
                            {
                              "name": "7 Day Active Users",
                              "value": "active7DayUsers"
                            },
                            {
                              "name": "Checkouts",
                              "value": "checkouts"
                            },
                            {
                              "name": "Events",
                              "value": "eventCount"
                            },
                            {
                              "name": "Page Views",
                              "value": "screenPageViews"
                            },
                            {
                              "name": "Session Duration",
                              "value": "userEngagementDuration"
                            },
                            {
                              "name": "Sessions",
                              "value": "sessions"
                            },
                            {
                              "name": "Sessions per User",
                              "value": "sessionsPerUser"
                            },
                            {
                              "name": "Total Users",
                              "value": "totalUsers"
                            },
                            {
                              "name": "Other metrics…",
                              "value": "other"
                            },
                            {
                              "name": "Custom metric…",
                              "value": "custom"
                            }
                          ]
                        },
                        {
                          "displayName": "Name or ID",
                          "name": "name",
                          "type": "options",
                          "typeOptions": {
                            "loadOptionsMethod": "getMetricsGA4",
                            "loadOptionsDependsOn": [
                              "propertyId.value"
                            ]
                          },
                          "default": "totalUsers",
                          "hint": "If expression is specified, name can be any string that you would like",
                          "description": "The name of the metric. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "other"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Name",
                          "name": "name",
                          "type": "string",
                          "default": "custom_metric",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "custom"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Value Type",
                          "name": "valueType",
                          "type": "options",
                          "default": "doubleValue",
                          "options": [
                            {
                              "name": "Double Value",
                              "value": "doubleValue"
                            },
                            {
                              "name": "Integer Value",
                              "value": "int64Value"
                            }
                          ]
                        },
                        {
                          "displayName": "From Value",
                          "name": "fromValue",
                          "type": "string",
                          "default": ""
                        },
                        {
                          "displayName": "To Value",
                          "name": "toValue",
                          "type": "string",
                          "default": ""
                        }
                      ]
                    },
                    {
                      "displayName": "Numeric Filter",
                      "name": "numericFilter",
                      "values": [
                        {
                          "displayName": "Metric",
                          "name": "listName",
                          "type": "options",
                          "default": "totalUsers",
                          "options": [
                            {
                              "name": "1 Day Active Users",
                              "value": "active1DayUsers"
                            },
                            {
                              "name": "28 Day Active Users",
                              "value": "active28DayUsers"
                            },
                            {
                              "name": "7 Day Active Users",
                              "value": "active7DayUsers"
                            },
                            {
                              "name": "Checkouts",
                              "value": "checkouts"
                            },
                            {
                              "name": "Events",
                              "value": "eventCount"
                            },
                            {
                              "name": "Page Views",
                              "value": "screenPageViews"
                            },
                            {
                              "name": "Session Duration",
                              "value": "userEngagementDuration"
                            },
                            {
                              "name": "Sessions",
                              "value": "sessions"
                            },
                            {
                              "name": "Sessions per User",
                              "value": "sessionsPerUser"
                            },
                            {
                              "name": "Total Users",
                              "value": "totalUsers"
                            },
                            {
                              "name": "Other metrics…",
                              "value": "other"
                            },
                            {
                              "name": "Custom metric…",
                              "value": "custom"
                            }
                          ]
                        },
                        {
                          "displayName": "Name or ID",
                          "name": "name",
                          "type": "options",
                          "typeOptions": {
                            "loadOptionsMethod": "getMetricsGA4",
                            "loadOptionsDependsOn": [
                              "propertyId.value"
                            ]
                          },
                          "default": "totalUsers",
                          "hint": "If expression is specified, name can be any string that you would like",
                          "description": "The name of the metric. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "other"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Name",
                          "name": "name",
                          "type": "string",
                          "default": "custom_metric",
                          "displayOptions": {
                            "show": {
                              "listName": [
                                "custom"
                              ]
                            }
                          }
                        },
                        {
                          "displayName": "Value Type",
                          "name": "valueType",
                          "type": "options",
                          "default": "doubleValue",
                          "options": [
                            {
                              "name": "Double Value",
                              "value": "doubleValue"
                            },
                            {
                              "name": "Integer Value",
                              "value": "int64Value"
                            }
                          ]
                        },
                        {
                          "displayName": "Value",
                          "name": "value",
                          "type": "string",
                          "default": ""
                        },
                        {
                          "displayName": "Operation",
                          "name": "operation",
                          "type": "options",
                          "noDataExpression": true,
                          "default": "EQUAL",
                          "options": [
                            {
                              "name": "Equal",
                              "value": "EQUAL"
                            },
                            {
                              "name": "Greater Than",
                              "value": "GREATER_THAN"
                            },
                            {
                              "name": "Greater than or Equal",
                              "value": "GREATER_THAN_OR_EQUAL"
                            },
                            {
                              "name": "Less Than",
                              "value": "LESS_THAN"
                            },
                            {
                              "name": "Less than or Equal",
                              "value": "LESS_THAN_OR_EQUAL"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Empty Rows",
          "name": "keepEmptyRows",
          "type": "boolean",
          "default": false,
          "description": "Whether false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter."
        },
        {
          "displayName": "Order By",
          "name": "orderByUI",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "placeholder": "Add Order",
          "description": "Specifies how rows are ordered in the response",
          "options": [
            {
              "displayName": "Metric Order By",
              "name": "metricOrderBy",
              "values": [
                {
                  "displayName": "Descending",
                  "name": "desc",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether true, sorts by descending order"
                },
                {
                  "displayName": "Metric Name or ID",
                  "name": "metricName",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getMetricsGA4",
                    "loadOptionsDependsOn": [
                      "propertyId.value"
                    ]
                  },
                  "default": "",
                  "description": "Sorts by metric values. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                }
              ]
            },
            {
              "displayName": "Dimmension Order By",
              "name": "dimmensionOrderBy",
              "values": [
                {
                  "displayName": "Descending",
                  "name": "desc",
                  "type": "boolean",
                  "default": false,
                  "description": "Whether true, sorts by descending order"
                },
                {
                  "displayName": "Dimmension Name or ID",
                  "name": "dimensionName",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getDimensionsGA4",
                    "loadOptionsDependsOn": [
                      "propertyId.value"
                    ]
                  },
                  "default": "",
                  "description": "Sorts by metric values. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
                },
                {
                  "displayName": "Order Type",
                  "name": "orderType",
                  "type": "options",
                  "default": "ORDER_TYPE_UNSPECIFIED",
                  "options": [
                    {
                      "name": "Alphanumeric",
                      "value": "ALPHANUMERIC",
                      "description": "Alphanumeric sort by Unicode code point"
                    },
                    {
                      "name": "Case Insensitive Alphanumeric",
                      "value": "CASE_INSENSITIVE_ALPHANUMERIC",
                      "description": "Case insensitive alphanumeric sort by lower case Unicode code point"
                    },
                    {
                      "name": "Numeric",
                      "value": "NUMERIC",
                      "description": "Dimension values are converted to numbers before sorting"
                    },
                    {
                      "name": "Unspecified",
                      "value": "ORDER_TYPE_UNSPECIFIED"
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "displayName": "Return Property Quota",
          "name": "returnPropertyQuota",
          "type": "boolean",
          "default": false,
          "description": "Whether to return the current state of this Analytics Property's quota. Quota is returned in PropertyQuota.",
          "displayOptions": {
            "show": {
              "/simple": [
                false
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "ga4"
          ]
        }
      }
    },
    {
      "displayName": "View",
      "name": "viewId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The View of Google Analytics",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "placeholder": "Select a view...",
          "typeOptions": {
            "searchListMethod": "searchViews",
            "searchFilterRequired": false,
            "searchable": false
          }
        },
        {
          "displayName": "By URL",
          "name": "url",
          "type": "string",
          "placeholder": "https://analytics.google.com/analytics/...",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": ".*analytics.google.com/analytics.*p[0-9]{1,}.*",
                "errorMessage": "Not a valid Google Analytics URL"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": ".*analytics.google.com/analytics.*p([0-9]{1,})"
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "placeholder": "123456",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[0-9]{1,}",
                "errorMessage": "Not a valid Google Analytics View ID"
              }
            }
          ]
        }
      ]
    },
    {
      "displayName": "Date Range",
      "name": "dateRange",
      "type": "options",
      "default": "last7days",
      "options": [
        {
          "name": "Last 7 Days",
          "value": "last7days"
        },
        {
          "name": "Last 30 Days",
          "value": "last30days"
        },
        {
          "name": "Today",
          "value": "today"
        },
        {
          "name": "Yesterday",
          "value": "yesterday"
        },
        {
          "name": "Last Complete Calendar Week",
          "value": "lastCalendarWeek"
        },
        {
          "name": "Last Complete Calendar Month",
          "value": "lastCalendarMonth"
        },
        {
          "name": "Custom",
          "value": "custom"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ]
        }
      }
    },
    {
      "displayName": "Start",
      "name": "startDate",
      "type": "dateTime",
      "default": "2026-04-08T00:00:00.000+02:00",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ],
          "dateRange": [
            "custom"
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "endDate",
      "type": "dateTime",
      "default": "2026-04-15T00:00:00.000+02:00",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ],
          "dateRange": [
            "custom"
          ]
        }
      }
    },
    {
      "displayName": "Metrics",
      "name": "metricsUA",
      "type": "fixedCollection",
      "default": {
        "metricValues": [
          {
            "listName": "ga:users"
          }
        ]
      },
      "description": "Metrics in the request",
      "options": [
        {
          "displayName": "Metric",
          "name": "metricValues",
          "values": [
            {
              "displayName": "Metric",
              "name": "listName",
              "type": "options",
              "default": "ga:users",
              "options": [
                {
                  "name": "Checkouts",
                  "value": "ga:productCheckouts"
                },
                {
                  "name": "Events",
                  "value": "ga:totalEvents"
                },
                {
                  "name": "Page Views",
                  "value": "ga:pageviews"
                },
                {
                  "name": "Session Duration",
                  "value": "ga:sessionDuration"
                },
                {
                  "name": "Sessions",
                  "value": "ga:sessions"
                },
                {
                  "name": "Sessions per User",
                  "value": "ga:sessionsPerUser"
                },
                {
                  "name": "Total Users",
                  "value": "ga:users"
                },
                {
                  "name": "Other metrics…",
                  "value": "other"
                },
                {
                  "name": "Custom metric…",
                  "value": "custom"
                }
              ]
            },
            {
              "displayName": "Name or ID",
              "name": "name",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getMetrics",
                "loadOptionsDependsOn": [
                  "viewId.value"
                ]
              },
              "default": "ga:users",
              "hint": "If expression is specified, name can be any string that you would like",
              "description": "The name of the metric. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
              "displayOptions": {
                "show": {
                  "listName": [
                    "other"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "default": "custom_metric",
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              }
            },
            {
              "displayName": "Expression",
              "name": "expression",
              "type": "string",
              "default": "",
              "placeholder": "e.g. ga:totalRefunds/ga:users",
              "description": "Learn more about Google Analytics <a href=\"https://developers.google.com/analytics/devguides/reporting/core/v4/rest/v4/reports/batchGet#Metric\">metric expressions</a>",
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              }
            },
            {
              "displayName": "Formatting Type",
              "name": "formattingType",
              "type": "options",
              "default": "INTEGER",
              "description": "Specifies how the metric expression should be formatted",
              "options": [
                {
                  "name": "Currency",
                  "value": "CURRENCY"
                },
                {
                  "name": "Float",
                  "value": "FLOAT"
                },
                {
                  "name": "Integer",
                  "value": "INTEGER"
                },
                {
                  "name": "Percent",
                  "value": "PERCENT"
                },
                {
                  "name": "Time",
                  "value": "TIME"
                }
              ],
              "displayOptions": {
                "show": {
                  "listName": [
                    "custom"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Dimensions to split by",
      "name": "dimensionsUA",
      "type": "fixedCollection",
      "default": {
        "dimensionValues": [
          {
            "listName": "ga:date"
          }
        ]
      },
      "description": "Dimensions are attributes of your data. For example, the dimension ga:city indicates the city, for example, \"Paris\" or \"New York\", from which a session originates.",
      "options": [
        {
          "displayName": "Values",
          "name": "dimensionValues",
          "values": [
            {
              "displayName": "Dimension",
              "name": "listName",
              "type": "options",
              "default": "ga:date",
              "options": [
                {
                  "name": "Browser",
                  "value": "ga:browser"
                },
                {
                  "name": "Campaign",
                  "value": "ga:campaign"
                },
                {
                  "name": "City",
                  "value": "ga:city"
                },
                {
                  "name": "Country",
                  "value": "ga:country"
                },
                {
                  "name": "Date",
                  "value": "ga:date"
                },
                {
                  "name": "Device Category",
                  "value": "ga:deviceCategory"
                },
                {
                  "name": "Item Name",
                  "value": "ga:productName"
                },
                {
                  "name": "Language",
                  "value": "ga:language"
                },
                {
                  "name": "Page",
                  "value": "ga:pagePath"
                },
                {
                  "name": "Source / Medium",
                  "value": "ga:sourceMedium"
                },
                {
                  "name": "Other dimensions…",
                  "value": "other"
                }
              ]
            },
            {
              "displayName": "Name or ID",
              "name": "name",
              "type": "options",
              "typeOptions": {
                "loadOptionsMethod": "getDimensions",
                "loadOptionsDependsOn": [
                  "viewId.value"
                ]
              },
              "default": "ga:date",
              "description": "Name of the dimension to fetch, for example ga:browser. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
              "displayOptions": {
                "show": {
                  "listName": [
                    "other"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "universal"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "universal"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Simplify Output",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "report"
          ],
          "propertyType": [
            "universal"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Dimension Filters",
          "name": "dimensionFiltersUi",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "placeholder": "Add Dimension Filter",
          "description": "Dimension Filters in the request",
          "options": [
            {
              "displayName": "Filters",
              "name": "filterValues",
              "values": [
                {
                  "displayName": "Dimension",
                  "name": "listName",
                  "type": "options",
                  "default": "ga:date",
                  "options": [
                    {
                      "name": "Browser",
                      "value": "ga:browser"
                    },
                    {
                      "name": "Campaign",
                      "value": "ga:campaign"
                    },
                    {
                      "name": "City",
                      "value": "ga:city"
                    },
                    {
                      "name": "Country",
                      "value": "ga:country"
                    },
                    {
                      "name": "Date",
                      "value": "ga:date"
                    },
                    {
                      "name": "Device Category",
                      "value": "ga:deviceCategory"
                    },
                    {
                      "name": "Item Name",
                      "value": "ga:productName"
                    },
                    {
                      "name": "Language",
                      "value": "ga:language"
                    },
                    {
                      "name": "Page",
                      "value": "ga:pagePath"
                    },
                    {
                      "name": "Source / Medium",
                      "value": "ga:sourceMedium"
                    },
                    {
                      "name": "Other dimensions…",
                      "value": "other"
                    }
                  ]
                },
                {
                  "displayName": "Name or ID",
                  "name": "name",
                  "type": "options",
                  "typeOptions": {
                    "loadOptionsMethod": "getDimensions",
                    "loadOptionsDependsOn": [
                      "viewId.value"
                    ]
                  },
                  "default": "ga:date",
                  "description": "Name of the dimension to fetch, for example ga:browser. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
                  "displayOptions": {
                    "show": {
                      "listName": [
                        "other"
                      ]
                    }
                  }
                },
                {
                  "displayName": "Operator",
                  "name": "operator",
                  "type": "options",
                  "default": "EXACT",
                  "description": "Operator to use in combination with value",
                  "options": [
                    {
                      "name": "Begins With",
                      "value": "BEGINS_WITH"
                    },
                    {
                      "name": "Ends With",
                      "value": "ENDS_WITH"
                    },
                    {
                      "name": "Equals (Number)",
                      "value": "NUMERIC_EQUAL"
                    },
                    {
                      "name": "Exactly Matches",
                      "value": "EXACT"
                    },
                    {
                      "name": "Greater Than (Number)",
                      "value": "NUMERIC_GREATER_THAN"
                    },
                    {
                      "name": "Less Than (Number)",
                      "value": "NUMERIC_LESS_THAN"
                    },
                    {
                      "name": "Partly Matches",
                      "value": "PARTIAL"
                    },
                    {
                      "name": "Regular Expression",
                      "value": "REGEXP"
                    }
                  ]
                },
                {
                  "displayName": "Value",
                  "name": "expressions",
                  "type": "string",
                  "default": "",
                  "placeholder": "",
                  "description": "String or <a href=\"https://support.google.com/analytics/answer/1034324?hl=en\">regular expression</a> to match against"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Hide Totals",
          "name": "hideTotals",
          "type": "boolean",
          "default": false,
          "description": "Whether to hide the total of all metrics for all the matching rows, for every date range",
          "displayOptions": {
            "show": {
              "/simple": [
                false
              ]
            }
          }
        },
        {
          "displayName": "Hide Value Ranges",
          "name": "hideValueRanges",
          "type": "boolean",
          "default": false,
          "description": "Whether to hide the minimum and maximum across all matching rows",
          "displayOptions": {
            "show": {
              "/simple": [
                false
              ]
            }
          }
        },
        {
          "displayName": "Include Empty Rows",
          "name": "includeEmptyRows",
          "type": "boolean",
          "default": false,
          "description": "Whether the response exclude rows if all the retrieved metrics are equal to zero"
        },
        {
          "displayName": "Use Resource Quotas",
          "name": "useResourceQuotas",
          "type": "boolean",
          "default": false,
          "description": "Whether to enable resource based quotas",
          "displayOptions": {
            "show": {
              "/simple": [
                false
              ]
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ],
          "operation": [
            "get"
          ],
          "propertyType": [
            "universal"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "description": "Return user activity data",
          "action": "Search user activity data"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "userActivity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "View Name or ID",
      "name": "viewId",
      "type": "options",
      "default": "",
      "description": "The view from Google Analytics. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "userActivity"
          ],
          "operation": [
            "search"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getViews"
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of a user",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "userActivity"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "userActivity"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "userActivity"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Activity Types",
          "name": "activityTypes",
          "type": "multiOptions",
          "options": [
            {
              "name": "Ecommerce",
              "value": "ECOMMERCE"
            },
            {
              "name": "Event",
              "value": "EVENT"
            },
            {
              "name": "Goal",
              "value": "GOAL"
            },
            {
              "name": "Pageview",
              "value": "PAGEVIEW"
            },
            {
              "name": "Screenview",
              "value": "SCREENVIEW"
            }
          ],
          "description": "Type of activites requested",
          "default": []
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "search"
          ],
          "resource": [
            "userActivity"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Return the analytics data",
      "resource": "report"
    },
    {
      "operation": "search",
      "name": "Search",
      "description": "Return user activity data",
      "resource": "userActivity"
    }
  ]


node_type: nodes-base.googleBigQuery
package_name: n8n-nodes-base
display_name: Google BigQuery
description: Consume Google BigQuery API
category: input
development_style: programmatic
version: 2.1
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google BigQuery node documentation
  description: Learn how to use the Google BigQuery node in n8n. Follow technical documentation to integrate Google BigQuery node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google BigQuery node

  Use the Google BigQuery node to automate work in Google BigQuery, and integrate Google BigQuery with other applications. n8n has built-in support for a wide range of Google BigQuery features, including creating, and retrieving records.

  On this page, you'll find a list of operations the Google BigQuery node supports and links to more resources.

  /// note | Credentials
  Refer to [Google BigQuery credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  - Execute Query
  - Insert

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-bigquery') ]]

  ## Related resources

  Refer to [Google BigQuery's documentation](https://cloud.google.com/bigquery/docs/reference/rest){:target=_blank .external-link} for more information about the service.

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "hidden",
      "default": "database",
      "options": [
        {
          "name": "Database",
          "value": "database"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "executeQuery",
      "options": [
        {
          "name": "Execute Query",
          "value": "executeQuery",
          "description": "Execute a SQL query",
          "action": "Execute a SQL query"
        },
        {
          "name": "Insert",
          "value": "insert",
          "description": "Insert rows in a table",
          "action": "Insert rows in a table"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Project",
      "name": "projectId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Projects to which you have been granted any project role",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "executeQuery",
            "insert"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "searchProjects",
            "searchable": true
          }
        },
        {
          "displayName": "By URL",
          "name": "url",
          "type": "string",
          "extractValue": {
            "type": "regex",
            "regex": "https:\\/\\/console.cloud.google.com\\/bigquery\\?project=([0-9a-zA-Z\\-_]+).{0,}"
          },
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "https:\\/\\/console.cloud.google.com\\/bigquery\\?project=([0-9a-zA-Z\\-_]+).{0,}",
                "errorMessage": "Not a valid BigQuery Project URL"
              }
            }
          ]
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid BigQuery Project ID"
              }
            }
          ],
          "url": "=https://console.cloud.google.com/bigquery?project={{$value}}"
        }
      ]
    },
    {
      "displayName": "Dataset",
      "name": "datasetId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "searchDatasets",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Dataset ID"
              }
            }
          ]
        }
      ]
    },
    {
      "displayName": "Table",
      "name": "tableId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "searchTables",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Table ID"
              }
            }
          ]
        }
      ]
    },
    {
      "displayName": "SQL Query",
      "name": "sqlQuery",
      "type": "string",
      "default": "",
      "description": "SQL query to execute, you can find more information <a href=\"https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax\" target=\"_blank\">here</a>. Standard SQL syntax used by default, but you can also use Legacy SQL syntax by using optinon 'Use Legacy SQL'.",
      "displayOptions": {
        "hide": {
          "/options.useLegacySql": [
            true
          ]
        },
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "executeQuery"
          ]
        }
      },
      "typeOptions": {
        "editor": "sqlEditor"
      },
      "noDataExpression": true
    },
    {
      "displayName": "SQL Query",
      "name": "sqlQuery",
      "type": "string",
      "default": "",
      "description": "SQL query to execute, you can find more information about Legacy SQL syntax <a href=\"https://cloud.google.com/bigquery/docs/reference/standard-sql/query-syntax\" target=\"_blank\">here</a>",
      "displayOptions": {
        "show": {
          "/options.useLegacySql": [
            true
          ],
          "resource": [
            "database"
          ],
          "operation": [
            "executeQuery"
          ]
        }
      },
      "typeOptions": {
        "editor": "sqlEditor"
      },
      "noDataExpression": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Default Dataset Name or ID",
          "name": "defaultDataset",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getDatasets",
            "loadOptionsDependsOn": [
              "projectId.value"
            ]
          },
          "default": "",
          "description": "If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Dry Run",
          "name": "dryRun",
          "type": "boolean",
          "default": false,
          "description": "Whether set to true BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns."
        },
        {
          "displayName": "Include Schema in Output",
          "name": "includeSchema",
          "type": "boolean",
          "default": false,
          "description": "Whether to include the schema in the output. If set to true, the output will contain key '_schema' with the schema of the table.",
          "displayOptions": {
            "hide": {
              "rawOutput": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Location (Region)",
          "name": "location",
          "type": "string",
          "default": "",
          "placeholder": "e.g. europe-west3",
          "description": "Location or the region where data would be stored and processed. Pricing for storage and analysis is also defined by location of data and reservations, more information <a href=\"https://cloud.google.com/bigquery/docs/locations\" target=\"_blank\">here</a>."
        },
        {
          "displayName": "Maximum Bytes Billed",
          "name": "maximumBytesBilled",
          "type": "string",
          "default": "",
          "description": "Limits the bytes billed for this query. Queries with bytes billed above this limit will fail (without incurring a charge). String in <a href=\"https://developers.google.com/discovery/v1/type-format?utm_source=cloud.google.com&utm_medium=referral\" target=\"_blank\">Int64Value</a> format"
        },
        {
          "displayName": "Max Results Per Page",
          "name": "maxResults",
          "type": "number",
          "default": 1000,
          "description": "Maximum number of results to return per page of results. This is particularly useful when dealing with large datasets. It will not affect the total number of results returned, e.g. rows in a table. You can use LIMIT in your SQL query to limit the number of rows returned."
        },
        {
          "displayName": "Timeout",
          "name": "timeoutMs",
          "type": "number",
          "default": 10000,
          "hint": "How long to wait for the query to complete, in milliseconds",
          "description": "Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. Be aware that the call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete."
        },
        {
          "displayName": "Raw Output",
          "name": "rawOutput",
          "type": "boolean",
          "default": false,
          "displayOptions": {
            "hide": {
              "dryRun": [
                true
              ]
            }
          }
        },
        {
          "displayName": "Use Legacy SQL",
          "name": "useLegacySql",
          "type": "boolean",
          "default": false,
          "description": "Whether to use BigQuery's legacy SQL dialect for this query. If set to false, the query will use BigQuery's standard SQL."
        },
        {
          "displayName": "Return Integers as Numbers",
          "name": "returnAsNumbers",
          "type": "boolean",
          "default": false,
          "description": "Whether all integer values will be returned as numbers. If set to false, all integer values will be returned as strings."
        },
        {
          "displayName": "Query Parameters (Named)",
          "name": "queryParameters",
          "type": "fixedCollection",
          "description": "Use <a href=\"https://cloud.google.com/bigquery/docs/parameterized-queries#using_structs_in_parameterized_queries\" target=\"_blank\">parameterized queries</a> to prevent SQL injections. Positional arguments are not supported at the moment. This feature won't be available when using legacy SQL.",
          "displayOptions": {
            "hide": {
              "/options.useLegacySql": [
                true
              ]
            }
          },
          "typeOptions": {
            "multipleValues": true
          },
          "placeholder": "Add Parameter",
          "default": {
            "namedParameters": [
              {
                "name": "",
                "value": ""
              }
            ]
          },
          "options": [
            {
              "name": "namedParameters",
              "displayName": "Named Parameter",
              "values": [
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": "",
                  "description": "Name of the parameter"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The substitute value. It must be a string. Arrays, dates and struct types mentioned in <a href=\"https://cloud.google.com/bigquery/docs/parameterized-queries#using_structs_in_parameterized_queries\" target=\"_blank\">the official documentation</a> are not yet supported."
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "executeQuery"
          ]
        }
      }
    },
    {
      "displayName": "Data Mode",
      "name": "dataMode",
      "type": "options",
      "default": "autoMap",
      "description": "Whether to insert the input data this node receives in the new row",
      "options": [
        {
          "name": "Auto-Map Input Data",
          "value": "autoMap",
          "description": "Use when node input properties match destination field names"
        },
        {
          "name": "Map Each Field Below",
          "value": "define",
          "description": "Set the value for each destination field"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      }
    },
    {
      "displayName": "In this mode, make sure the incoming data fields are named the same as the columns in BigQuery. (Use an 'Edit Fields' node before this node to change them if required.)",
      "name": "info",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "dataMode": [
            "autoMap"
          ],
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      }
    },
    {
      "displayName": "Fields to Send",
      "name": "fieldsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Field",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name or ID",
              "name": "fieldId",
              "type": "options",
              "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
              "typeOptions": {
                "loadOptionsDependsOn": [
                  "projectId.value",
                  "datasetId.value",
                  "tableId.value"
                ],
                "loadOptionsMethod": "getSchema"
              },
              "default": ""
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "dataMode": [
            "define"
          ],
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      },
      "typeOptions": {
        "multipleValueButtonText": "Add Field",
        "multipleValues": true
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Batch Size",
          "name": "batchSize",
          "type": "number",
          "default": 100,
          "typeOptions": {
            "minValue": 1
          }
        },
        {
          "displayName": "Ignore Unknown Values",
          "name": "ignoreUnknownValues",
          "type": "boolean",
          "default": false,
          "description": "Whether to gnore row values that do not match the schema"
        },
        {
          "displayName": "Skip Invalid Rows",
          "name": "skipInvalidRows",
          "type": "boolean",
          "default": false,
          "description": "Whether to skip rows with values that do not match the schema"
        },
        {
          "displayName": "Template Suffix",
          "name": "templateSuffix",
          "type": "string",
          "default": "",
          "description": "Create a new table based on the destination table and insert rows into the new table. The new table will be named <code>{destinationTable}{templateSuffix}</code>"
        },
        {
          "displayName": "Trace ID",
          "name": "traceId",
          "type": "string",
          "default": "",
          "description": "Unique ID for the request, for debugging only. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "executeQuery",
      "name": "Execute Query",
      "description": "Execute a SQL query",
      "resource": "database"
    },
    {
      "operation": "insert",
      "name": "Insert",
      "description": "Insert rows in a table",
      "resource": "database"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleBigQueryOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleBooksTool
package_name: n8n-nodes-base
display_name: Google Books Tool
description: Read data from Google Books (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 2
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-16 09:43:08
tool_variant_of: nodes-base.googleBooks
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Books node documentation
  description: Learn how to use the Google Books node in n8n. Follow technical documentation to integrate Google Books node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Books node

  Use the Google Books node to automate work in Google Books, and integrate Google Books with other applications. n8n has built-in support for a wide range of Google Books features, including retrieving a specific bookshelf resource for the specified user, adding volume to a bookshelf, and getting volume.

  On this page, you'll find a list of operations the Google Books node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Bookshelf
      * Retrieve a specific bookshelf resource for the specified user
      * Get all public bookshelf resource for the specified user
  * Bookshelf Volume
      * Add a volume to a bookshelf
      * Clears all volumes from a bookshelf
      * Get all volumes in a specific bookshelf for the specified user
      * Moves a volume within a bookshelf
      * Removes a volume from a bookshelf
  * Volume
      * Get a volume resource based on ID
      * Get all volumes filtered by query

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-books') ]]

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Books"
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "Service Account",
          "value": "serviceAccount"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            2
          ]
        }
      }
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "bookshelf",
      "options": [
        {
          "name": "Bookshelf",
          "value": "bookshelf"
        },
        {
          "name": "Bookshelf Volume",
          "value": "bookshelfVolume"
        },
        {
          "name": "Volume",
          "value": "volume"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve a specific bookshelf resource for the specified user",
          "action": "Get a bookshelf"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many public bookshelf resource for the specified user",
          "action": "Get many bookshelves"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bookshelf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "description": "Add a volume to a bookshelf",
          "action": "Add a bookshelf volume"
        },
        {
          "name": "Clear",
          "value": "clear",
          "description": "Clears all volumes from a bookshelf",
          "action": "Clear a bookshelf volume"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many volumes in a specific bookshelf for the specified user",
          "action": "Get many bookshelf volumes"
        },
        {
          "name": "Move",
          "value": "move",
          "description": "Moves a volume within a bookshelf",
          "action": "Move a bookshelf volume"
        },
        {
          "name": "Remove",
          "value": "remove",
          "description": "Removes a volume from a bookshelf",
          "action": "Remove a bookshelf volume"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bookshelfVolume"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a volume resource based on ID",
          "action": "Get a volume"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many volumes filtered by query",
          "action": "Get many volumes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "volume"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "My Library",
      "name": "myLibrary",
      "type": "boolean",
      "default": false,
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "getAll"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Search Query",
      "name": "searchQuery",
      "type": "string",
      "default": "",
      "description": "Full-text search query string",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "volume"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of user",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "getAll"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        },
        "hide": {
          "myLibrary": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Bookshelf ID",
      "name": "shelfId",
      "type": "string",
      "default": "",
      "description": "ID of the bookshelf",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "add",
            "clear",
            "move",
            "remove"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Bookshelf ID",
      "name": "shelfId",
      "type": "string",
      "default": "",
      "description": "ID of the bookshelf",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Volume ID",
      "name": "volumeId",
      "type": "string",
      "default": "",
      "description": "ID of the volume",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "add",
            "move",
            "remove",
            "get"
          ],
          "resource": [
            "bookshelfVolume",
            "volume"
          ]
        }
      }
    },
    {
      "displayName": "Volume Position",
      "name": "volumePosition",
      "type": "string",
      "default": "",
      "description": "Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "move"
          ],
          "resource": [
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 40,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 40
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve a specific bookshelf resource for the specified user",
      "resource": "bookshelf"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many public bookshelf resource for the specified user",
      "resource": "bookshelf"
    },
    {
      "operation": "add",
      "name": "Add",
      "description": "Add a volume to a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "clear",
      "name": "Clear",
      "description": "Clears all volumes from a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many volumes in a specific bookshelf for the specified user",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "move",
      "name": "Move",
      "description": "Moves a volume within a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "remove",
      "name": "Remove",
      "description": "Removes a volume from a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a volume resource based on ID",
      "resource": "volume"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many volumes filtered by query",
      "resource": "volume"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleBooksOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleBooks
package_name: n8n-nodes-base
display_name: Google Books
description: Read data from Google Books
category: input
development_style: programmatic
version: 2
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Books node documentation
  description: Learn how to use the Google Books node in n8n. Follow technical documentation to integrate Google Books node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Books node

  Use the Google Books node to automate work in Google Books, and integrate Google Books with other applications. n8n has built-in support for a wide range of Google Books features, including retrieving a specific bookshelf resource for the specified user, adding volume to a bookshelf, and getting volume.

  On this page, you'll find a list of operations the Google Books node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  ## Operations

  * Bookshelf
      * Retrieve a specific bookshelf resource for the specified user
      * Get all public bookshelf resource for the specified user
  * Bookshelf Volume
      * Add a volume to a bookshelf
      * Clears all volumes from a bookshelf
      * Get all volumes in a specific bookshelf for the specified user
      * Moves a volume within a bookshelf
      * Removes a volume from a bookshelf
  * Volume
      * Get a volume resource based on ID
      * Get all volumes filtered by query

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-books') ]]

  --8<-- "_snippets/integrations/builtin/app-nodes/operation-not-supported.md"

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "Service Account",
          "value": "serviceAccount"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            2
          ]
        }
      }
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "bookshelf",
      "options": [
        {
          "name": "Bookshelf",
          "value": "bookshelf"
        },
        {
          "name": "Bookshelf Volume",
          "value": "bookshelfVolume"
        },
        {
          "name": "Volume",
          "value": "volume"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve a specific bookshelf resource for the specified user",
          "action": "Get a bookshelf"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many public bookshelf resource for the specified user",
          "action": "Get many bookshelves"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bookshelf"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add",
          "value": "add",
          "description": "Add a volume to a bookshelf",
          "action": "Add a bookshelf volume"
        },
        {
          "name": "Clear",
          "value": "clear",
          "description": "Clears all volumes from a bookshelf",
          "action": "Clear a bookshelf volume"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many volumes in a specific bookshelf for the specified user",
          "action": "Get many bookshelf volumes"
        },
        {
          "name": "Move",
          "value": "move",
          "description": "Moves a volume within a bookshelf",
          "action": "Move a bookshelf volume"
        },
        {
          "name": "Remove",
          "value": "remove",
          "description": "Removes a volume from a bookshelf",
          "action": "Remove a bookshelf volume"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bookshelfVolume"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a volume resource based on ID",
          "action": "Get a volume"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many volumes filtered by query",
          "action": "Get many volumes"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "volume"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "My Library",
      "name": "myLibrary",
      "type": "boolean",
      "default": false,
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "getAll"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Search Query",
      "name": "searchQuery",
      "type": "string",
      "default": "",
      "description": "Full-text search query string",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "volume"
          ]
        }
      }
    },
    {
      "displayName": "User ID",
      "name": "userId",
      "type": "string",
      "default": "",
      "description": "ID of user",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "getAll"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        },
        "hide": {
          "myLibrary": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Bookshelf ID",
      "name": "shelfId",
      "type": "string",
      "default": "",
      "description": "ID of the bookshelf",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get",
            "add",
            "clear",
            "move",
            "remove"
          ],
          "resource": [
            "bookshelf",
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Bookshelf ID",
      "name": "shelfId",
      "type": "string",
      "default": "",
      "description": "ID of the bookshelf",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Volume ID",
      "name": "volumeId",
      "type": "string",
      "default": "",
      "description": "ID of the volume",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "add",
            "move",
            "remove",
            "get"
          ],
          "resource": [
            "bookshelfVolume",
            "volume"
          ]
        }
      }
    },
    {
      "displayName": "Volume Position",
      "name": "volumePosition",
      "type": "string",
      "default": "",
      "description": "Position on shelf to move the item (0 puts the item before the current first item, 1 puts it between the first and the second and so on)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "move"
          ],
          "resource": [
            "bookshelfVolume"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 40,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 40
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve a specific bookshelf resource for the specified user",
      "resource": "bookshelf"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many public bookshelf resource for the specified user",
      "resource": "bookshelf"
    },
    {
      "operation": "add",
      "name": "Add",
      "description": "Add a volume to a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "clear",
      "name": "Clear",
      "description": "Clears all volumes from a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many volumes in a specific bookshelf for the specified user",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "move",
      "name": "Move",
      "description": "Moves a volume within a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "remove",
      "name": "Remove",
      "description": "Removes a volume from a bookshelf",
      "resource": "bookshelfVolume"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a volume resource based on ID",
      "resource": "volume"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many volumes filtered by query",
      "resource": "volume"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleBooksOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleCalendarTool
package_name: n8n-nodes-base
display_name: Google Calendar Tool
description: Consume Google Calendar API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1.3
credentials_required:
  [
  {
  "name": "googleCalendarOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-16 09:43:08
tool_variant_of: nodes-base.googleCalendar
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Calendar node documentation
  description: Learn how to use the Google Calendar node in n8n. Follow technical documentation to integrate Google Calendar node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Google Calendar node

  Use the Google Calendar node to automate work in Google Calendar, and integrate Google Calendar with other applications. n8n has built-in support for a wide range of Google Calendar features, including adding, retrieving, deleting and updating calendar events.

  On this page, you'll find a list of operations the Google Calendar node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Calendar credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * **Calendar**
      * [**Availability**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/calendar-operations.md#availability): If a time-slot is available in a calendar
  * **Event**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#create): Add an event to calendar
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#delete): Delete an event
      * [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#get): Retrieve an event
      * [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#get-many): Retrieve all events from a calendar
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#update): Update an event

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-calendar') ]]

  ## Related resources

  n8n provides a trigger node for Google Calendar. You can find the trigger node docs [here](/integrations/builtin/trigger-nodes/n8n-nodes-base.googlecalendartrigger.md).

  Refer to [Google Calendar's documentation](https://developers.google.com/calendar/api/v3/reference){:target=_blank .external-link} for more information about the service.

  View [example workflows and related content](https://n8n.io/integrations/google-calendar/){:target=_blank .external-link} on n8n's website.

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to manage calendar events and schedules"
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "event",
      "options": [
        {
          "name": "Calendar",
          "value": "calendar"
        },
        {
          "name": "Event",
          "value": "event"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "availability",
      "options": [
        {
          "name": "Availability",
          "value": "availability",
          "description": "If a time-slot is available in a calendar",
          "action": "Get availability in a calendar"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Calendar",
      "name": "calendar",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Start Time",
      "name": "timeMin",
      "type": "dateTime",
      "default": "",
      "description": "Start of the interval",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End Time",
      "name": "timeMax",
      "type": "dateTime",
      "default": "",
      "description": "End of the interval",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Start Time",
      "name": "timeMin",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "Start of the interval, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End Time",
      "name": "timeMax",
      "type": "dateTime",
      "default": "={{ $now.plus(1, 'hour') }}",
      "description": "End of the interval, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Output Format",
          "name": "outputFormat",
          "type": "options",
          "options": [
            {
              "name": "Availability",
              "value": "availability",
              "description": "Returns if there are any events in the given time or not"
            },
            {
              "name": "Booked Slots",
              "value": "bookedSlots",
              "description": "Returns the booked slots"
            },
            {
              "name": "RAW",
              "value": "raw",
              "description": "Returns the RAW data from the API"
            }
          ],
          "default": "availability",
          "description": "The format to return the data in"
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. By default n8n timezone is used.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Add a event to calendar",
          "action": "Create an event"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an event",
          "action": "Delete an event"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve an event",
          "action": "Get an event"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many events from a calendar",
          "action": "Get many events"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an event",
          "action": "Update an event"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Calendar",
      "name": "calendar",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Start",
      "name": "start",
      "type": "dateTime",
      "default": "",
      "description": "Start time of the event",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "end",
      "type": "dateTime",
      "default": "",
      "description": "End time of the event",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Start",
      "name": "start",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "Start time of the event, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "end",
      "type": "dateTime",
      "default": "={{ $now.plus(1, 'hour') }}",
      "description": "End time of the event, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Use Default Reminders",
      "name": "useDefaultReminders",
      "type": "boolean",
      "default": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "All Day",
          "name": "allday",
          "type": "options",
          "options": [
            {
              "name": "Yes",
              "value": "yes"
            },
            {
              "name": "No",
              "value": "no"
            }
          ],
          "default": "no",
          "description": "Whether the event is all day or not"
        },
        {
          "displayName": "Attendees",
          "name": "attendees",
          "type": "string",
          "typeOptions": {
            "multipleValues": true,
            "multipleValueButtonText": "Add Attendee"
          },
          "default": "",
          "description": "The attendees of the event. Multiple ones can be separated by comma."
        },
        {
          "displayName": "Color Name or ID",
          "name": "color",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getColors"
          },
          "default": "",
          "description": "The color of the event. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Conference Data",
          "name": "conferenceDataUi",
          "placeholder": "Add Conference",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {},
          "options": [
            {
              "displayName": "Conference Link",
              "name": "conferenceDataValues",
              "values": [
                {
                  "displayName": "Type Name or ID",
                  "name": "conferenceSolution",
                  "type": "options",
                  "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
                  "typeOptions": {
                    "loadOptionsMethod": "getConferenceSolutions",
                    "loadOptionsDependsOn": [
                      "calendar"
                    ]
                  },
                  "default": ""
                }
              ]
            }
          ],
          "description": "Creates a conference link (Hangouts, Meet etc) and attaches it to the event"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Guests Can Invite Others",
          "name": "guestsCanInviteOthers",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can invite others to the event"
        },
        {
          "displayName": "Guests Can Modify",
          "name": "guestsCanModify",
          "type": "boolean",
          "default": false,
          "description": "Whether attendees other than the organizer can modify the event"
        },
        {
          "displayName": "Guests Can See Other Guests",
          "name": "guestsCanSeeOtherGuests",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can see who the event's attendees are"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "Opaque identifier of the event"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Geographic location of the event as free-form text"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Repeat Frequency",
          "name": "repeatFrecuency",
          "type": "options",
          "options": [
            {
              "name": "Daily",
              "value": "Daily"
            },
            {
              "name": "Weekly",
              "value": "weekly"
            },
            {
              "name": "Monthly",
              "value": "monthly"
            },
            {
              "name": "Yearly",
              "value": "yearly"
            }
          ],
          "default": ""
        },
        {
          "displayName": "Repeat How Many Times?",
          "name": "repeatHowManyTimes",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1
        },
        {
          "displayName": "Repeat Until",
          "name": "repeatUntil",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "RRULE",
          "name": "rrule",
          "type": "string",
          "default": "",
          "description": "Recurrence rule. When set, the parameters Repeat Frequency, Repeat How Many Times and Repeat Until are ignored."
        },
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        },
        {
          "displayName": "Show Me As",
          "name": "showMeAs",
          "type": "options",
          "options": [
            {
              "name": "Available",
              "value": "transparent",
              "description": "The event does not block time on the calendar"
            },
            {
              "name": "Busy",
              "value": "opaque",
              "description": "The event does block time on the calendar"
            }
          ],
          "default": "opaque",
          "description": "Whether the event blocks time on the calendar"
        },
        {
          "displayName": "Summary",
          "name": "summary",
          "type": "string",
          "default": "",
          "description": "Title of the event"
        },
        {
          "displayName": "Visibility",
          "name": "visibility",
          "type": "options",
          "options": [
            {
              "name": "Confidential",
              "value": "confidential",
              "description": "The event is private. This value is provided for compatibility reasons."
            },
            {
              "name": "Default",
              "value": "default",
              "description": "Uses the default visibility for events on the calendar"
            },
            {
              "name": "Private",
              "value": "private",
              "description": "The event is private and only event attendees may view event details"
            },
            {
              "name": "Public",
              "value": "public",
              "description": "The event is public and event details are visible to all readers of the calendar"
            }
          ],
          "default": "default",
          "description": "Visibility of the event"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Reminders",
      "name": "remindersUi",
      "type": "fixedCollection",
      "default": {},
      "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event",
      "options": [
        {
          "name": "remindersValues",
          "displayName": "Reminder",
          "values": [
            {
              "displayName": "Method",
              "name": "method",
              "type": "options",
              "options": [
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "Popup",
                  "value": "popup"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Minutes Before",
              "name": "minutes",
              "type": "number",
              "typeOptions": {
                "minValue": 0,
                "maxValue": 40320
              },
              "default": 0
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ],
          "operation": [
            "create"
          ],
          "useDefaultReminders": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Return Next Instance of Recurring Event",
          "name": "returnNextInstance",
          "type": "boolean",
          "default": false,
          "description": "Whether to return the next instance of a recurring event instead of the event itself",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Timezone",
          "name": "timeZone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. The default is the time zone of the calendar.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "After",
      "name": "timeMin",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "At least some part of the event must be after this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Before",
      "name": "timeMax",
      "type": "dateTime",
      "default": "={{ $now.plus({ week: 1 }) }}",
      "description": "At least some part of the event must be before this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "After",
          "name": "timeMin",
          "type": "dateTime",
          "default": "",
          "description": "At least some part of the event must be after this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Before",
          "name": "timeMax",
          "type": "dateTime",
          "default": "",
          "description": "At least some part of the event must be before this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Expand Events",
          "name": "singleEvents",
          "type": "boolean",
          "default": false,
          "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "placeholder": "e.g. items(ID,status,summary)",
          "default": "",
          "description": "Specify fields to return, by default a predefined by Google set of commonly used fields would be returned. To return all fields, use '*', <a href='https://developers.google.com/calendar/api/guides/performance#partial' target='_blank'>More info</a>."
        },
        {
          "displayName": "iCalUID",
          "name": "iCalUID",
          "type": "string",
          "default": "",
          "description": "Specifies event ID in the iCalendar format to be included in the response"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Order By",
          "name": "orderBy",
          "type": "options",
          "options": [
            {
              "name": "Start Time",
              "value": "startTime",
              "description": "Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)."
            },
            {
              "name": "Updated",
              "value": "updated",
              "description": "Order by last modification time (ascending)"
            }
          ],
          "default": "",
          "description": "The order of the events returned in the result"
        },
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Free text search terms to find events that match these terms in any field, except for extended properties"
        },
        {
          "displayName": "Recurring Event Handling",
          "name": "recurringEventHandling",
          "type": "options",
          "default": "expand",
          "options": [
            {
              "name": "All Occurrences",
              "value": "expand",
              "description": "Return all instances of recurring event for specified time range"
            },
            {
              "name": "First Occurrence",
              "value": "first",
              "description": "Return event with specified recurrence rule"
            },
            {
              "name": "Next Occurrence",
              "value": "next",
              "description": "Return next instance of recurring event"
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Show Deleted",
          "name": "showDeleted",
          "type": "boolean",
          "default": false,
          "description": "Whether to include deleted events (with status equals \"cancelled\") in the result"
        },
        {
          "displayName": "Show Hidden Invitations",
          "name": "showHiddenInvitations",
          "type": "boolean",
          "default": false,
          "description": "Whether to include hidden invitations in the result"
        },
        {
          "displayName": "Timezone",
          "name": "timeZone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. The default is the time zone of the calendar.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        },
        {
          "displayName": "Updated Min",
          "name": "updatedMin",
          "type": "dateTime",
          "default": "",
          "description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Modify",
      "name": "modifyTarget",
      "type": "options",
      "default": "instance",
      "options": [
        {
          "name": "Recurring Event Instance",
          "value": "instance"
        },
        {
          "name": "Recurring Event",
          "value": "event"
        }
      ],
      "displayOptions": {
        "show": {
          "@tool": [
            false
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "resource": [
            "event"
          ],
          "operation": [
            "update"
          ],
          "eventId": [
            {
              "_cnd": {
                "includes": "_"
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Use Default Reminders",
      "name": "useDefaultReminders",
      "type": "boolean",
      "default": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "All Day",
          "name": "allday",
          "type": "options",
          "options": [
            {
              "name": "Yes",
              "value": "yes"
            },
            {
              "name": "No",
              "value": "no"
            }
          ],
          "default": "no",
          "description": "Whether the event is all day or not"
        },
        {
          "displayName": "Attendees",
          "name": "attendeesUi",
          "type": "fixedCollection",
          "placeholder": "Add Attendees",
          "default": {
            "values": {
              "mode": "add",
              "attendees": []
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Mode",
                  "name": "mode",
                  "type": "options",
                  "default": "add",
                  "options": [
                    {
                      "name": "Add Attendees Below [Default]",
                      "value": "add"
                    },
                    {
                      "name": "Replace Attendees with Those Below",
                      "value": "replace"
                    }
                  ]
                },
                {
                  "displayName": "Attendees",
                  "name": "attendees",
                  "type": "string",
                  "typeOptions": {
                    "multipleValues": true,
                    "multipleValueButtonText": "Add Attendee"
                  },
                  "default": "",
                  "description": "The attendees of the event. Multiple ones can be separated by comma."
                }
              ]
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.2
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Attendees",
          "name": "attendees",
          "type": "string",
          "typeOptions": {
            "multipleValues": true,
            "multipleValueButtonText": "Add Attendee"
          },
          "default": "",
          "description": "The attendees of the event. Multiple ones can be separated by comma.",
          "displayOptions": {
            "show": {
              "@version": [
                1,
                1.1
              ]
            }
          }
        },
        {
          "displayName": "Color Name or ID",
          "name": "color",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getColors"
          },
          "default": "",
          "description": "The color of the event. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "End",
          "name": "end",
          "type": "dateTime",
          "default": "",
          "description": "End time of the event"
        },
        {
          "displayName": "Guests Can Invite Others",
          "name": "guestsCanInviteOthers",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can invite others to the event"
        },
        {
          "displayName": "Guests Can Modify",
          "name": "guestsCanModify",
          "type": "boolean",
          "default": false,
          "description": "Whether attendees other than the organizer can modify the event"
        },
        {
          "displayName": "Guests Can See Other Guests",
          "name": "guestsCanSeeOtherGuests",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can see who the event's attendees are"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "Opaque identifier of the event"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Geographic location of the event as free-form text"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Repeat Frequency",
          "name": "repeatFrecuency",
          "type": "options",
          "options": [
            {
              "name": "Daily",
              "value": "Daily"
            },
            {
              "name": "Weekly",
              "value": "weekly"
            },
            {
              "name": "Monthly",
              "value": "monthly"
            },
            {
              "name": "Yearly",
              "value": "yearly"
            }
          ],
          "default": ""
        },
        {
          "displayName": "Repeat How Many Times?",
          "name": "repeatHowManyTimes",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1
        },
        {
          "displayName": "Repeat Until",
          "name": "repeatUntil",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "RRULE",
          "name": "rrule",
          "type": "string",
          "default": "",
          "description": "Recurrence rule. When set, the parameters Repeat Frequency, Repeat How Many Times and Repeat Until are ignored."
        },
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        },
        {
          "displayName": "Show Me As",
          "name": "showMeAs",
          "type": "options",
          "options": [
            {
              "name": "Available",
              "value": "transparent",
              "description": "The event does not block time on the calendar"
            },
            {
              "name": "Busy",
              "value": "opaque",
              "description": "The event does block time on the calendar"
            }
          ],
          "default": "opaque",
          "description": "Whether the event blocks time on the calendar"
        },
        {
          "displayName": "Start",
          "name": "start",
          "type": "dateTime",
          "default": "",
          "description": "Start time of the event"
        },
        {
          "displayName": "Summary",
          "name": "summary",
          "type": "string",
          "default": "",
          "description": "Title of the event"
        },
        {
          "displayName": "Visibility",
          "name": "visibility",
          "type": "options",
          "options": [
            {
              "name": "Confidential",
              "value": "confidential",
              "description": "The event is private. This value is provided for compatibility reasons."
            },
            {
              "name": "Default",
              "value": "default",
              "description": "Uses the default visibility for events on the calendar"
            },
            {
              "name": "Public",
              "value": "public",
              "description": "The event is public and event details are visible to all readers of the calendar"
            },
            {
              "name": "Private",
              "value": "private",
              "description": "The event is private and only event attendees may view event details"
            }
          ],
          "default": "default",
          "description": "Visibility of the event"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Reminders",
      "name": "remindersUi",
      "type": "fixedCollection",
      "default": {},
      "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event",
      "options": [
        {
          "name": "remindersValues",
          "displayName": "Reminder",
          "values": [
            {
              "displayName": "Method",
              "name": "method",
              "type": "options",
              "options": [
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "Popup",
                  "value": "popup"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Minutes Before",
              "name": "minutes",
              "type": "number",
              "typeOptions": {
                "minValue": 0,
                "maxValue": 40320
              },
              "default": 0
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ],
          "operation": [
            "update"
          ],
          "useDefaultReminders": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "This node will use the time zone set in n8n’s settings, but you can override this in the workflow settings",
      "name": "useN8nTimeZone",
      "type": "notice",
      "default": ""
    }
  ]

operations:
  [
    {
      "operation": "availability",
      "name": "Availability",
      "description": "If a time-slot is available in a calendar",
      "resource": "calendar"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Add a event to calendar",
      "resource": "event"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an event",
      "resource": "event"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve an event",
      "resource": "event"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many events from a calendar",
      "resource": "event"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an event",
      "resource": "event"
    }
  ]


node_type: nodes-base.googleCalendar
package_name: n8n-nodes-base
display_name: Google Calendar
description: Consume Google Calendar API
category: input
development_style: programmatic
version: 1.3
credentials_required:
  [
  {
  "name": "googleCalendarOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Calendar node documentation
  description: Learn how to use the Google Calendar node in n8n. Follow technical documentation to integrate Google Calendar node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Google Calendar node

  Use the Google Calendar node to automate work in Google Calendar, and integrate Google Calendar with other applications. n8n has built-in support for a wide range of Google Calendar features, including adding, retrieving, deleting and updating calendar events.

  On this page, you'll find a list of operations the Google Calendar node supports and links to more resources.

  /// note | Credentials
  Refer to [Google Calendar credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * **Calendar**
      * [**Availability**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/calendar-operations.md#availability): If a time-slot is available in a calendar
  * **Event**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#create): Add an event to calendar
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#delete): Delete an event
      * [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#get): Retrieve an event
      * [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#get-many): Retrieve all events from a calendar
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/event-operations.md#update): Update an event

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-calendar') ]]

  ## Related resources

  n8n provides a trigger node for Google Calendar. You can find the trigger node docs [here](/integrations/builtin/trigger-nodes/n8n-nodes-base.googlecalendartrigger.md).

  Refer to [Google Calendar's documentation](https://developers.google.com/calendar/api/v3/reference){:target=_blank .external-link} for more information about the service.

  View [example workflows and related content](https://n8n.io/integrations/google-calendar/){:target=_blank .external-link} on n8n's website.

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "event",
      "options": [
        {
          "name": "Calendar",
          "value": "calendar"
        },
        {
          "name": "Event",
          "value": "event"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "availability",
      "options": [
        {
          "name": "Availability",
          "value": "availability",
          "description": "If a time-slot is available in a calendar",
          "action": "Get availability in a calendar"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Calendar",
      "name": "calendar",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "calendar"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Start Time",
      "name": "timeMin",
      "type": "dateTime",
      "default": "",
      "description": "Start of the interval",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End Time",
      "name": "timeMax",
      "type": "dateTime",
      "default": "",
      "description": "End of the interval",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Start Time",
      "name": "timeMin",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "Start of the interval, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End Time",
      "name": "timeMax",
      "type": "dateTime",
      "default": "={{ $now.plus(1, 'hour') }}",
      "description": "End of the interval, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Output Format",
          "name": "outputFormat",
          "type": "options",
          "options": [
            {
              "name": "Availability",
              "value": "availability",
              "description": "Returns if there are any events in the given time or not"
            },
            {
              "name": "Booked Slots",
              "value": "bookedSlots",
              "description": "Returns the booked slots"
            },
            {
              "name": "RAW",
              "value": "raw",
              "description": "Returns the RAW data from the API"
            }
          ],
          "default": "availability",
          "description": "The format to return the data in"
        },
        {
          "displayName": "Timezone",
          "name": "timezone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. By default n8n timezone is used.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "availability"
          ],
          "resource": [
            "calendar"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Add a event to calendar",
          "action": "Create an event"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an event",
          "action": "Delete an event"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Retrieve an event",
          "action": "Get an event"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many events from a calendar",
          "action": "Get many events"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an event",
          "action": "Update an event"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Calendar",
      "name": "calendar",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Start",
      "name": "start",
      "type": "dateTime",
      "default": "",
      "description": "Start time of the event",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "end",
      "type": "dateTime",
      "default": "",
      "description": "End time of the event",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "lt": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Start",
      "name": "start",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "Start time of the event, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "End",
      "name": "end",
      "type": "dateTime",
      "default": "={{ $now.plus(1, 'hour') }}",
      "description": "End time of the event, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Use Default Reminders",
      "name": "useDefaultReminders",
      "type": "boolean",
      "default": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "All Day",
          "name": "allday",
          "type": "options",
          "options": [
            {
              "name": "Yes",
              "value": "yes"
            },
            {
              "name": "No",
              "value": "no"
            }
          ],
          "default": "no",
          "description": "Whether the event is all day or not"
        },
        {
          "displayName": "Attendees",
          "name": "attendees",
          "type": "string",
          "typeOptions": {
            "multipleValues": true,
            "multipleValueButtonText": "Add Attendee"
          },
          "default": "",
          "description": "The attendees of the event. Multiple ones can be separated by comma."
        },
        {
          "displayName": "Color Name or ID",
          "name": "color",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getColors"
          },
          "default": "",
          "description": "The color of the event. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Conference Data",
          "name": "conferenceDataUi",
          "placeholder": "Add Conference",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {},
          "options": [
            {
              "displayName": "Conference Link",
              "name": "conferenceDataValues",
              "values": [
                {
                  "displayName": "Type Name or ID",
                  "name": "conferenceSolution",
                  "type": "options",
                  "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
                  "typeOptions": {
                    "loadOptionsMethod": "getConferenceSolutions",
                    "loadOptionsDependsOn": [
                      "calendar"
                    ]
                  },
                  "default": ""
                }
              ]
            }
          ],
          "description": "Creates a conference link (Hangouts, Meet etc) and attaches it to the event"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Guests Can Invite Others",
          "name": "guestsCanInviteOthers",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can invite others to the event"
        },
        {
          "displayName": "Guests Can Modify",
          "name": "guestsCanModify",
          "type": "boolean",
          "default": false,
          "description": "Whether attendees other than the organizer can modify the event"
        },
        {
          "displayName": "Guests Can See Other Guests",
          "name": "guestsCanSeeOtherGuests",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can see who the event's attendees are"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "Opaque identifier of the event"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Geographic location of the event as free-form text"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Repeat Frequency",
          "name": "repeatFrecuency",
          "type": "options",
          "options": [
            {
              "name": "Daily",
              "value": "Daily"
            },
            {
              "name": "Weekly",
              "value": "weekly"
            },
            {
              "name": "Monthly",
              "value": "monthly"
            },
            {
              "name": "Yearly",
              "value": "yearly"
            }
          ],
          "default": ""
        },
        {
          "displayName": "Repeat How Many Times?",
          "name": "repeatHowManyTimes",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1
        },
        {
          "displayName": "Repeat Until",
          "name": "repeatUntil",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "RRULE",
          "name": "rrule",
          "type": "string",
          "default": "",
          "description": "Recurrence rule. When set, the parameters Repeat Frequency, Repeat How Many Times and Repeat Until are ignored."
        },
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        },
        {
          "displayName": "Show Me As",
          "name": "showMeAs",
          "type": "options",
          "options": [
            {
              "name": "Available",
              "value": "transparent",
              "description": "The event does not block time on the calendar"
            },
            {
              "name": "Busy",
              "value": "opaque",
              "description": "The event does block time on the calendar"
            }
          ],
          "default": "opaque",
          "description": "Whether the event blocks time on the calendar"
        },
        {
          "displayName": "Summary",
          "name": "summary",
          "type": "string",
          "default": "",
          "description": "Title of the event"
        },
        {
          "displayName": "Visibility",
          "name": "visibility",
          "type": "options",
          "options": [
            {
              "name": "Confidential",
              "value": "confidential",
              "description": "The event is private. This value is provided for compatibility reasons."
            },
            {
              "name": "Default",
              "value": "default",
              "description": "Uses the default visibility for events on the calendar"
            },
            {
              "name": "Private",
              "value": "private",
              "description": "The event is private and only event attendees may view event details"
            },
            {
              "name": "Public",
              "value": "public",
              "description": "The event is public and event details are visible to all readers of the calendar"
            }
          ],
          "default": "default",
          "description": "Visibility of the event"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Reminders",
      "name": "remindersUi",
      "type": "fixedCollection",
      "default": {},
      "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event",
      "options": [
        {
          "name": "remindersValues",
          "displayName": "Reminder",
          "values": [
            {
              "displayName": "Method",
              "name": "method",
              "type": "options",
              "options": [
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "Popup",
                  "value": "popup"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Minutes Before",
              "name": "minutes",
              "type": "number",
              "typeOptions": {
                "minValue": 0,
                "maxValue": 40320
              },
              "default": 0
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ],
          "operation": [
            "create"
          ],
          "useDefaultReminders": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Return Next Instance of Recurring Event",
          "name": "returnNextInstance",
          "type": "boolean",
          "default": false,
          "description": "Whether to return the next instance of a recurring event instead of the event itself",
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Timezone",
          "name": "timeZone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. The default is the time zone of the calendar.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "After",
      "name": "timeMin",
      "type": "dateTime",
      "default": "={{ $now }}",
      "description": "At least some part of the event must be after this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Before",
      "name": "timeMax",
      "type": "dateTime",
      "default": "={{ $now.plus({ week: 1 }) }}",
      "description": "At least some part of the event must be before this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "After",
          "name": "timeMin",
          "type": "dateTime",
          "default": "",
          "description": "At least some part of the event must be after this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Before",
          "name": "timeMax",
          "type": "dateTime",
          "default": "",
          "description": "At least some part of the event must be before this time, use <a href=\"https://docs.n8n.io/code/cookbook/luxon/\" target=\"_blank\">expression</a> to set a date, or switch to fixed mode to choose date from widget",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Expand Events",
          "name": "singleEvents",
          "type": "boolean",
          "default": false,
          "description": "Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves",
          "displayOptions": {
            "hide": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "string",
          "placeholder": "e.g. items(ID,status,summary)",
          "default": "",
          "description": "Specify fields to return, by default a predefined by Google set of commonly used fields would be returned. To return all fields, use '*', <a href='https://developers.google.com/calendar/api/guides/performance#partial' target='_blank'>More info</a>."
        },
        {
          "displayName": "iCalUID",
          "name": "iCalUID",
          "type": "string",
          "default": "",
          "description": "Specifies event ID in the iCalendar format to be included in the response"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Order By",
          "name": "orderBy",
          "type": "options",
          "options": [
            {
              "name": "Start Time",
              "value": "startTime",
              "description": "Order by the start date/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)."
            },
            {
              "name": "Updated",
              "value": "updated",
              "description": "Order by last modification time (ascending)"
            }
          ],
          "default": "",
          "description": "The order of the events returned in the result"
        },
        {
          "displayName": "Query",
          "name": "query",
          "type": "string",
          "default": "",
          "description": "Free text search terms to find events that match these terms in any field, except for extended properties"
        },
        {
          "displayName": "Recurring Event Handling",
          "name": "recurringEventHandling",
          "type": "options",
          "default": "expand",
          "options": [
            {
              "name": "All Occurrences",
              "value": "expand",
              "description": "Return all instances of recurring event for specified time range"
            },
            {
              "name": "First Occurrence",
              "value": "first",
              "description": "Return event with specified recurrence rule"
            },
            {
              "name": "Next Occurrence",
              "value": "next",
              "description": "Return next instance of recurring event"
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.3
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Show Deleted",
          "name": "showDeleted",
          "type": "boolean",
          "default": false,
          "description": "Whether to include deleted events (with status equals \"cancelled\") in the result"
        },
        {
          "displayName": "Show Hidden Invitations",
          "name": "showHiddenInvitations",
          "type": "boolean",
          "default": false,
          "description": "Whether to include hidden invitations in the result"
        },
        {
          "displayName": "Timezone",
          "name": "timeZone",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": ""
          },
          "description": "Time zone used in the response. The default is the time zone of the calendar.",
          "modes": [
            {
              "displayName": "Timezone",
              "name": "list",
              "type": "list",
              "placeholder": "Select a Timezone...",
              "typeOptions": {
                "searchListMethod": "getTimezones",
                "searchable": true
              }
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "(Africa/Abidjan|Africa/Accra|Africa/Addis_Ababa|Africa/Algiers|Africa/Asmara|Africa/Asmera|Africa/Bamako|Africa/Bangui|Africa/Banjul|Africa/Bissau|Africa/Blantyre|Africa/Brazzaville|Africa/Bujumbura|Africa/Cairo|Africa/Casablanca|Africa/Ceuta|Africa/Conakry|Africa/Dakar|Africa/Dar_es_Salaam|Africa/Djibouti|Africa/Douala|Africa/El_Aaiun|Africa/Freetown|Africa/Gaborone|Africa/Harare|Africa/Johannesburg|Africa/Juba|Africa/Kampala|Africa/Khartoum|Africa/Kigali|Africa/Kinshasa|Africa/Lagos|Africa/Libreville|Africa/Lome|Africa/Luanda|Africa/Lubumbashi|Africa/Lusaka|Africa/Malabo|Africa/Maputo|Africa/Maseru|Africa/Mbabane|Africa/Mogadishu|Africa/Monrovia|Africa/Nairobi|Africa/Ndjamena|Africa/Niamey|Africa/Nouakchott|Africa/Ouagadougou|Africa/Porto-Novo|Africa/Sao_Tome|Africa/Timbuktu|Africa/Tripoli|Africa/Tunis|Africa/Windhoek|America/Adak|America/Anchorage|America/Anguilla|America/Antigua|America/Araguaina|America/Argentina/Buenos_Aires|America/Argentina/Catamarca|America/Argentina/ComodRivadavia|America/Argentina/Cordoba|America/Argentina/Jujuy|America/Argentina/La_Rioja|America/Argentina/Mendoza|America/Argentina/Rio_Gallegos|America/Argentina/Salta|America/Argentina/San_Juan|America/Argentina/San_Luis|America/Argentina/Tucuman|America/Argentina/Ushuaia|America/Aruba|America/Asuncion|America/Atikokan|America/Atka|America/Bahia|America/Bahia_Banderas|America/Barbados|America/Belem|America/Belize|America/Blanc-Sablon|America/Boa_Vista|America/Bogota|America/Boise|America/Buenos_Aires|America/Cambridge_Bay|America/Campo_Grande|America/Cancun|America/Caracas|America/Catamarca|America/Cayenne|America/Cayman|America/Chicago|America/Chihuahua|America/Ciudad_Juarez|America/Coral_Harbour|America/Cordoba|America/Costa_Rica|America/Coyhaique|America/Creston|America/Cuiaba|America/Curacao|America/Danmarkshavn|America/Dawson|America/Dawson_Creek|America/Denver|America/Detroit|America/Dominica|America/Edmonton|America/Eirunepe|America/El_Salvador|America/Ensenada|America/Fort_Nelson|America/Fort_Wayne|America/Fortaleza|America/Glace_Bay|America/Godthab|America/Goose_Bay|America/Grand_Turk|America/Grenada|America/Guadeloupe|America/Guatemala|America/Guayaquil|America/Guyana|America/Halifax|America/Havana|America/Hermosillo|America/Indiana/Indianapolis|America/Indiana/Knox|America/Indiana/Marengo|America/Indiana/Petersburg|America/Indiana/Tell_City|America/Indiana/Vevay|America/Indiana/Vincennes|America/Indiana/Winamac|America/Indianapolis|America/Inuvik|America/Iqaluit|America/Jamaica|America/Jujuy|America/Juneau|America/Kentucky/Louisville|America/Kentucky/Monticello|America/Knox_IN|America/Kralendijk|America/La_Paz|America/Lima|America/Los_Angeles|America/Louisville|America/Lower_Princes|America/Maceio|America/Managua|America/Manaus|America/Marigot|America/Martinique|America/Matamoros|America/Mazatlan|America/Mendoza|America/Menominee|America/Merida|America/Metlakatla|America/Mexico_City|America/Miquelon|America/Moncton|America/Monterrey|America/Montevideo|America/Montreal|America/Montserrat|America/Nassau|America/New_York|America/Nipigon|America/Nome|America/Noronha|America/North_Dakota/Beulah|America/North_Dakota/Center|America/North_Dakota/New_Salem|America/Nuuk|America/Ojinaga|America/Panama|America/Pangnirtung|America/Paramaribo|America/Phoenix|America/Port-au-Prince|America/Port_of_Spain|America/Porto_Acre|America/Porto_Velho|America/Puerto_Rico|America/Punta_Arenas|America/Rainy_River|America/Rankin_Inlet|America/Recife|America/Regina|America/Resolute|America/Rio_Branco|America/Rosario|America/Santa_Isabel|America/Santarem|America/Santiago|America/Santo_Domingo|America/Sao_Paulo|America/Scoresbysund|America/Shiprock|America/Sitka|America/St_Barthelemy|America/St_Johns|America/St_Kitts|America/St_Lucia|America/St_Thomas|America/St_Vincent|America/Swift_Current|America/Tegucigalpa|America/Thule|America/Thunder_Bay|America/Tijuana|America/Toronto|America/Tortola|America/Vancouver|America/Virgin|America/Whitehorse|America/Winnipeg|America/Yakutat|America/Yellowknife|Antarctica/Casey|Antarctica/Davis|Antarctica/DumontDUrville|Antarctica/Macquarie|Antarctica/Mawson|Antarctica/McMurdo|Antarctica/Palmer|Antarctica/Rothera|Antarctica/South_Pole|Antarctica/Syowa|Antarctica/Troll|Antarctica/Vostok|Arctic/Longyearbyen|Asia/Aden|Asia/Almaty|Asia/Amman|Asia/Anadyr|Asia/Aqtau|Asia/Aqtobe|Asia/Ashgabat|Asia/Ashkhabad|Asia/Atyrau|Asia/Baghdad|Asia/Bahrain|Asia/Baku|Asia/Bangkok|Asia/Barnaul|Asia/Beirut|Asia/Bishkek|Asia/Brunei|Asia/Calcutta|Asia/Chita|Asia/Choibalsan|Asia/Chongqing|Asia/Chungking|Asia/Colombo|Asia/Dacca|Asia/Damascus|Asia/Dhaka|Asia/Dili|Asia/Dubai|Asia/Dushanbe|Asia/Famagusta|Asia/Gaza|Asia/Harbin|Asia/Hebron|Asia/Ho_Chi_Minh|Asia/Hong_Kong|Asia/Hovd|Asia/Irkutsk|Asia/Istanbul|Asia/Jakarta|Asia/Jayapura|Asia/Jerusalem|Asia/Kabul|Asia/Kamchatka|Asia/Karachi|Asia/Kashgar|Asia/Kathmandu|Asia/Katmandu|Asia/Khandyga|Asia/Kolkata|Asia/Krasnoyarsk|Asia/Kuala_Lumpur|Asia/Kuching|Asia/Kuwait|Asia/Macao|Asia/Macau|Asia/Magadan|Asia/Makassar|Asia/Manila|Asia/Muscat|Asia/Nicosia|Asia/Novokuznetsk|Asia/Novosibirsk|Asia/Omsk|Asia/Oral|Asia/Phnom_Penh|Asia/Pontianak|Asia/Pyongyang|Asia/Qatar|Asia/Qostanay|Asia/Qyzylorda|Asia/Rangoon|Asia/Riyadh|Asia/Saigon|Asia/Sakhalin|Asia/Samarkand|Asia/Seoul|Asia/Shanghai|Asia/Singapore|Asia/Srednekolymsk|Asia/Taipei|Asia/Tashkent|Asia/Tbilisi|Asia/Tehran|Asia/Tel_Aviv|Asia/Thimbu|Asia/Thimphu|Asia/Tokyo|Asia/Tomsk|Asia/Ujung_Pandang|Asia/Ulaanbaatar|Asia/Ulan_Bator|Asia/Urumqi|Asia/Ust-Nera|Asia/Vientiane|Asia/Vladivostok|Asia/Yakutsk|Asia/Yangon|Asia/Yekaterinburg|Asia/Yerevan|Atlantic/Azores|Atlantic/Bermuda|Atlantic/Canary|Atlantic/Cape_Verde|Atlantic/Faeroe|Atlantic/Faroe|Atlantic/Jan_Mayen|Atlantic/Madeira|Atlantic/Reykjavik|Atlantic/South_Georgia|Atlantic/St_Helena|Atlantic/Stanley|Australia/ACT|Australia/Adelaide|Australia/Brisbane|Australia/Broken_Hill|Australia/Canberra|Australia/Currie|Australia/Darwin|Australia/Eucla|Australia/Hobart|Australia/LHI|Australia/Lindeman|Australia/Lord_Howe|Australia/Melbourne|Australia/NSW|Australia/North|Australia/Perth|Australia/Queensland|Australia/South|Australia/Sydney|Australia/Tasmania|Australia/Victoria|Australia/West|Australia/Yancowinna|Brazil/Acre|Brazil/DeNoronha|Brazil/East|Brazil/West|CET|CST6CDT|Canada/Atlantic|Canada/Central|Canada/Eastern|Canada/Mountain|Canada/Newfoundland|Canada/Pacific|Canada/Saskatchewan|Canada/Yukon|Chile/Continental|Chile/EasterIsland|Cuba|EET|EST|EST5EDT|Egypt|Eire|Etc/GMT|Etc/GMT\\+0|Etc/GMT\\+1|Etc/GMT\\+10|Etc/GMT\\+11|Etc/GMT\\+12|Etc/GMT\\+2|Etc/GMT\\+3|Etc/GMT\\+4|Etc/GMT\\+5|Etc/GMT\\+6|Etc/GMT\\+7|Etc/GMT\\+8|Etc/GMT\\+9|Etc/GMT-0|Etc/GMT-1|Etc/GMT-10|Etc/GMT-11|Etc/GMT-12|Etc/GMT-13|Etc/GMT-14|Etc/GMT-2|Etc/GMT-3|Etc/GMT-4|Etc/GMT-5|Etc/GMT-6|Etc/GMT-7|Etc/GMT-8|Etc/GMT-9|Etc/GMT0|Etc/Greenwich|Etc/UCT|Etc/UTC|Etc/Universal|Etc/Zulu|Europe/Amsterdam|Europe/Andorra|Europe/Astrakhan|Europe/Athens|Europe/Belfast|Europe/Belgrade|Europe/Berlin|Europe/Bratislava|Europe/Brussels|Europe/Bucharest|Europe/Budapest|Europe/Busingen|Europe/Chisinau|Europe/Copenhagen|Europe/Dublin|Europe/Gibraltar|Europe/Guernsey|Europe/Helsinki|Europe/Isle_of_Man|Europe/Istanbul|Europe/Jersey|Europe/Kaliningrad|Europe/Kiev|Europe/Kirov|Europe/Kyiv|Europe/Lisbon|Europe/Ljubljana|Europe/London|Europe/Luxembourg|Europe/Madrid|Europe/Malta|Europe/Mariehamn|Europe/Minsk|Europe/Monaco|Europe/Moscow|Europe/Nicosia|Europe/Oslo|Europe/Paris|Europe/Podgorica|Europe/Prague|Europe/Riga|Europe/Rome|Europe/Samara|Europe/San_Marino|Europe/Sarajevo|Europe/Saratov|Europe/Simferopol|Europe/Skopje|Europe/Sofia|Europe/Stockholm|Europe/Tallinn|Europe/Tirane|Europe/Tiraspol|Europe/Ulyanovsk|Europe/Uzhgorod|Europe/Vaduz|Europe/Vatican|Europe/Vienna|Europe/Vilnius|Europe/Volgograd|Europe/Warsaw|Europe/Zagreb|Europe/Zaporozhye|Europe/Zurich|GB|GB-Eire|GMT|GMT\\+0|GMT-0|GMT0|Greenwich|HST|Hongkong|Iceland|Indian/Antananarivo|Indian/Chagos|Indian/Christmas|Indian/Cocos|Indian/Comoro|Indian/Kerguelen|Indian/Mahe|Indian/Maldives|Indian/Mauritius|Indian/Mayotte|Indian/Reunion|Iran|Israel|Jamaica|Japan|Kwajalein|Libya|MET|MST|MST7MDT|Mexico/BajaNorte|Mexico/BajaSur|Mexico/General|NZ|NZ-CHAT|Navajo|PRC|PST8PDT|Pacific/Apia|Pacific/Auckland|Pacific/Bougainville|Pacific/Chatham|Pacific/Chuuk|Pacific/Easter|Pacific/Efate|Pacific/Enderbury|Pacific/Fakaofo|Pacific/Fiji|Pacific/Funafuti|Pacific/Galapagos|Pacific/Gambier|Pacific/Guadalcanal|Pacific/Guam|Pacific/Honolulu|Pacific/Johnston|Pacific/Kanton|Pacific/Kiritimati|Pacific/Kosrae|Pacific/Kwajalein|Pacific/Majuro|Pacific/Marquesas|Pacific/Midway|Pacific/Nauru|Pacific/Niue|Pacific/Norfolk|Pacific/Noumea|Pacific/Pago_Pago|Pacific/Palau|Pacific/Pitcairn|Pacific/Pohnpei|Pacific/Ponape|Pacific/Port_Moresby|Pacific/Rarotonga|Pacific/Saipan|Pacific/Samoa|Pacific/Tahiti|Pacific/Tarawa|Pacific/Tongatapu|Pacific/Truk|Pacific/Wake|Pacific/Wallis|Pacific/Yap|Poland|Portugal|ROC|ROK|Singapore|Turkey|UCT|US/Alaska|US/Aleutian|US/Arizona|US/Central|US/East-Indiana|US/Eastern|US/Hawaii|US/Indiana-Starke|US/Michigan|US/Mountain|US/Pacific|US/Samoa|UTC|Universal|W-SU|WET|Zulu)[ \t]*",
                    "errorMessage": "Not a valid Timezone"
                  }
                }
              ],
              "extractValue": {
                "type": "regex",
                "regex": "([-+/_a-zA-Z0-9]*)"
              },
              "placeholder": "Europe/Berlin"
            }
          ]
        },
        {
          "displayName": "Updated Min",
          "name": "updatedMin",
          "type": "dateTime",
          "default": "",
          "description": "Lower bound for an event's last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Event ID",
      "name": "eventId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Modify",
      "name": "modifyTarget",
      "type": "options",
      "default": "instance",
      "options": [
        {
          "name": "Recurring Event Instance",
          "value": "instance"
        },
        {
          "name": "Recurring Event",
          "value": "event"
        }
      ],
      "displayOptions": {
        "show": {
          "@tool": [
            false
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.3
              }
            }
          ],
          "resource": [
            "event"
          ],
          "operation": [
            "update"
          ],
          "eventId": [
            {
              "_cnd": {
                "includes": "_"
              }
            }
          ]
        }
      }
    },
    {
      "displayName": "Use Default Reminders",
      "name": "useDefaultReminders",
      "type": "boolean",
      "default": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "All Day",
          "name": "allday",
          "type": "options",
          "options": [
            {
              "name": "Yes",
              "value": "yes"
            },
            {
              "name": "No",
              "value": "no"
            }
          ],
          "default": "no",
          "description": "Whether the event is all day or not"
        },
        {
          "displayName": "Attendees",
          "name": "attendeesUi",
          "type": "fixedCollection",
          "placeholder": "Add Attendees",
          "default": {
            "values": {
              "mode": "add",
              "attendees": []
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Mode",
                  "name": "mode",
                  "type": "options",
                  "default": "add",
                  "options": [
                    {
                      "name": "Add Attendees Below [Default]",
                      "value": "add"
                    },
                    {
                      "name": "Replace Attendees with Those Below",
                      "value": "replace"
                    }
                  ]
                },
                {
                  "displayName": "Attendees",
                  "name": "attendees",
                  "type": "string",
                  "typeOptions": {
                    "multipleValues": true,
                    "multipleValueButtonText": "Add Attendee"
                  },
                  "default": "",
                  "description": "The attendees of the event. Multiple ones can be separated by comma."
                }
              ]
            }
          ],
          "displayOptions": {
            "show": {
              "@version": [
                {
                  "_cnd": {
                    "gte": 1.2
                  }
                }
              ]
            }
          }
        },
        {
          "displayName": "Attendees",
          "name": "attendees",
          "type": "string",
          "typeOptions": {
            "multipleValues": true,
            "multipleValueButtonText": "Add Attendee"
          },
          "default": "",
          "description": "The attendees of the event. Multiple ones can be separated by comma.",
          "displayOptions": {
            "show": {
              "@version": [
                1,
                1.1
              ]
            }
          }
        },
        {
          "displayName": "Color Name or ID",
          "name": "color",
          "type": "options",
          "typeOptions": {
            "loadOptionsMethod": "getColors"
          },
          "default": "",
          "description": "The color of the event. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>."
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "End",
          "name": "end",
          "type": "dateTime",
          "default": "",
          "description": "End time of the event"
        },
        {
          "displayName": "Guests Can Invite Others",
          "name": "guestsCanInviteOthers",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can invite others to the event"
        },
        {
          "displayName": "Guests Can Modify",
          "name": "guestsCanModify",
          "type": "boolean",
          "default": false,
          "description": "Whether attendees other than the organizer can modify the event"
        },
        {
          "displayName": "Guests Can See Other Guests",
          "name": "guestsCanSeeOtherGuests",
          "type": "boolean",
          "default": true,
          "description": "Whether attendees other than the organizer can see who the event's attendees are"
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "default": "",
          "description": "Opaque identifier of the event"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "",
          "description": "Geographic location of the event as free-form text"
        },
        {
          "displayName": "Max Attendees",
          "name": "maxAttendees",
          "type": "number",
          "default": 0,
          "description": "The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned."
        },
        {
          "displayName": "Repeat Frequency",
          "name": "repeatFrecuency",
          "type": "options",
          "options": [
            {
              "name": "Daily",
              "value": "Daily"
            },
            {
              "name": "Weekly",
              "value": "weekly"
            },
            {
              "name": "Monthly",
              "value": "monthly"
            },
            {
              "name": "Yearly",
              "value": "yearly"
            }
          ],
          "default": ""
        },
        {
          "displayName": "Repeat How Many Times?",
          "name": "repeatHowManyTimes",
          "type": "number",
          "typeOptions": {
            "minValue": 1
          },
          "default": 1
        },
        {
          "displayName": "Repeat Until",
          "name": "repeatUntil",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "RRULE",
          "name": "rrule",
          "type": "string",
          "default": "",
          "description": "Recurrence rule. When set, the parameters Repeat Frequency, Repeat How Many Times and Repeat Until are ignored."
        },
        {
          "displayName": "Send Updates",
          "name": "sendUpdates",
          "type": "options",
          "options": [
            {
              "name": "All",
              "value": "all",
              "description": "Notifications are sent to all guests"
            },
            {
              "name": "External Only",
              "value": "externalOnly",
              "description": "Notifications are sent to non-Google Calendar guests only"
            },
            {
              "name": "None",
              "value": "none",
              "description": "No notifications are sent. This value should only be used for migration use case."
            }
          ],
          "description": "Whether to send notifications about the creation of the new event",
          "default": ""
        },
        {
          "displayName": "Show Me As",
          "name": "showMeAs",
          "type": "options",
          "options": [
            {
              "name": "Available",
              "value": "transparent",
              "description": "The event does not block time on the calendar"
            },
            {
              "name": "Busy",
              "value": "opaque",
              "description": "The event does block time on the calendar"
            }
          ],
          "default": "opaque",
          "description": "Whether the event blocks time on the calendar"
        },
        {
          "displayName": "Start",
          "name": "start",
          "type": "dateTime",
          "default": "",
          "description": "Start time of the event"
        },
        {
          "displayName": "Summary",
          "name": "summary",
          "type": "string",
          "default": "",
          "description": "Title of the event"
        },
        {
          "displayName": "Visibility",
          "name": "visibility",
          "type": "options",
          "options": [
            {
              "name": "Confidential",
              "value": "confidential",
              "description": "The event is private. This value is provided for compatibility reasons."
            },
            {
              "name": "Default",
              "value": "default",
              "description": "Uses the default visibility for events on the calendar"
            },
            {
              "name": "Public",
              "value": "public",
              "description": "The event is public and event details are visible to all readers of the calendar"
            },
            {
              "name": "Private",
              "value": "private",
              "description": "The event is private and only event attendees may view event details"
            }
          ],
          "default": "default",
          "description": "Visibility of the event"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "event"
          ]
        }
      }
    },
    {
      "displayName": "Reminders",
      "name": "remindersUi",
      "type": "fixedCollection",
      "default": {},
      "description": "If the event doesn't use the default reminders, this lists the reminders specific to the event",
      "options": [
        {
          "name": "remindersValues",
          "displayName": "Reminder",
          "values": [
            {
              "displayName": "Method",
              "name": "method",
              "type": "options",
              "options": [
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "Popup",
                  "value": "popup"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Minutes Before",
              "name": "minutes",
              "type": "number",
              "typeOptions": {
                "minValue": 0,
                "maxValue": 40320
              },
              "default": 0
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ],
          "operation": [
            "update"
          ],
          "useDefaultReminders": [
            false
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "This node will use the time zone set in n8n’s settings, but you can override this in the workflow settings",
      "name": "useN8nTimeZone",
      "type": "notice",
      "default": ""
    }
  ]

operations:
  [
    {
      "operation": "availability",
      "name": "Availability",
      "description": "If a time-slot is available in a calendar",
      "resource": "calendar"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Add a event to calendar",
      "resource": "event"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an event",
      "resource": "event"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Retrieve an event",
      "resource": "event"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many events from a calendar",
      "resource": "event"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an event",
      "resource": "event"
    }
  ]


node_type: nodes-base.googleCalendarTrigger
package_name: n8n-nodes-base
display_name: Google Calendar Trigger
description: Starts the workflow when Google Calendar events occur
category: trigger
development_style: programmatic
version: 1
operations: []
credentials_required:
  [
  {
  "name": "googleCalendarOAuth2Api",
  "required": true
  }
  ]

outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Calendar Trigger node documentation
  description: Learn how to use the Google Calendar Trigger node in n8n. Follow technical documentation to integrate Google Calendar Trigger node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Calendar Trigger node

  [Google Calendar](https://www.google.com/calendar/){:target=_blank .external-link} is a time-management and scheduling calendar service developed by Google.

  /// note | Credentials
  You can find authentication information for this node [here](/integrations/builtin/credentials/google/index.md).
  ///

  ///  note  | Examples and templates
  For usage examples and templates to help you get started, refer to n8n's [Google Calendar Trigger integrations](https://n8n.io/integrations/google-calendar-trigger/){:target=_blank .external-link} page.
  ///

  ## Events

  - **Event Cancelled**
  - **Event Created**
  - **Event Ended**
  - **Event Started**
  - **Event Updated**

  [[ templatesWidget(page.title, 'google-calendar-trigger') ]]

  ## Related resources

  n8n provides an app node for Google Calendar. You can find the node docs [here](/integrations/builtin/app-nodes/n8n-nodes-base.googlecalendar/index.md).

  View [example workflows and related content](https://n8n.io/integrations/google-calendar-trigger/){:target=_blank .external-link} on n8n's website.

  Refer to [Google Calendar's documentation](https://developers.google.com/calendar/api/v3/reference){:target=_blank .external-link} for details about their API.

properties_schema:
  [
    {
      "displayName": "Calendar",
      "name": "calendarId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "Google Calendar to operate on",
      "required": true,
      "modes": [
        {
          "displayName": "Calendar",
          "name": "list",
          "type": "list",
          "placeholder": "Select a Calendar...",
          "typeOptions": {
            "searchListMethod": "getCalendars",
            "searchable": true
          }
        },
        {
          "displayName": "ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*(?:[ \t]+)*$)",
                "errorMessage": "Not a valid Google Calendar ID"
              }
            }
          ],
          "extractValue": {
            "type": "regex",
            "regex": "(^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
          },
          "placeholder": "name@google.com"
        }
      ]
    },
    {
      "displayName": "Trigger On",
      "name": "triggerOn",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Event Cancelled",
          "value": "eventCancelled"
        },
        {
          "name": "Event Created",
          "value": "eventCreated"
        },
        {
          "name": "Event Ended",
          "value": "eventEnded"
        },
        {
          "name": "Event Started",
          "value": "eventStarted"
        },
        {
          "name": "Event Updated",
          "value": "eventUpdated"
        }
      ],
      "required": true
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Match Term",
          "name": "matchTerm",
          "type": "string",
          "default": "",
          "description": "Free text search terms to filter events that match these terms in any field, except for extended properties"
        }
      ]
    }
  ]


node_type: nodes-base.googleChatTool
package_name: n8n-nodes-base
display_name: Google Chat Tool
description: Consume Google Chat API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1
outputs:
  [
  {
  "type": "ai_tool",
  "displayName": "Tool"
  }
  ]

output_names:
  [
  "Tool"
  ]

updated_at: 2026-04-16 09:43:08
tool_variant_of: nodes-base.googleChat
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Chat node documentation
  description: Learn how to use the Google Chat node in n8n. Follow technical documentation to integrate Google Chat node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Chat node

  Use the Google Chat node to automate work in Google Chat, and integrate Google Chat with other applications. n8n has built-in support for a wide range of Google Chat features, including getting membership and spaces, as well as creating and deleting messages. 

  On this page, you'll find a list of operations the Google Chat node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * Member
      * Get a membership
      * Get all memberships in a space
  * Message
      * Create a message
      * Delete a message
      * Get a message
  	* Send and Wait for Response
      * Update a message
  * Space
      * Get a space
      * Get all spaces the caller is a member of

  --8<-- "_snippets/integrations/builtin/send-and-wait-operation.md"

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-chat') ]]

properties_schema:
  [
    {
      "displayName": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to send messages and communicate"
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Member",
          "value": "member"
        },
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Space",
          "value": "space"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a membership",
          "action": "Get a member"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many memberships in a space",
          "action": "Get many members"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Member ID",
      "name": "memberId",
      "type": "string",
      "default": "",
      "description": "Member to be retrieved in the form \"spaces/*/members/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": [],
      "description": "The name of the space for which to retrieve members, in the form \"spaces/*\". Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a message",
          "action": "Create a message"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a message",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a message",
          "action": "Get a message"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "description": "Send a message and wait for response",
          "action": "Send message and wait for response"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a message",
          "action": "Update a message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the message object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message",
      "name": "messageUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Message (JSON)",
      "name": "messageJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Request ID",
          "name": "requestId",
          "type": "string",
          "default": "",
          "description": "A unique request ID for this message. If a message has already been created in the space with this request ID, the subsequent request will return the existing message and no new message will be created."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be deleted, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be retrieved, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be updated, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the update fields object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFieldsUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Update Fields (JSON)",
      "name": "updateFieldsJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a space",
          "action": "Get a space"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many spaces the caller is a member of",
          "action": "Get many spaces"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space ID",
      "name": "spaceId",
      "type": "string",
      "default": "",
      "description": "Resource name of the space, in the form \"spaces/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Response Type",
      "name": "responseType",
      "type": "options",
      "default": "approval",
      "options": [
        {
          "name": "Approval",
          "value": "approval",
          "description": "User can approve/disapprove from within the message"
        },
        {
          "name": "Free Text",
          "value": "freeText",
          "description": "User can submit a response via a form"
        },
        {
          "name": "Custom Form",
          "value": "customForm",
          "description": "User can submit a response via a custom form"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Define Form",
      "name": "defineForm",
      "type": "options",
      "default": "fields",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "fields"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Form Fields",
      "name": "jsonOutput",
      "type": "json",
      "default": "[\n  {\n    \"fieldLabel\": \"Name\",\n    \"placeholder\": \"enter your name\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Age\",\n    \"fieldType\": \"number\",\n    \"placeholder\": \"enter your age\"\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Textarea\",\n    \"fieldType\": \"textarea\"\n  },\n  {\n    \"fieldLabel\": \"Dropdown Options\",\n    \"fieldType\": \"dropdown\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    },\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Checkboxes\",\n    \"fieldType\": \"checkbox\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Radio\",\n    \"fieldType\": \"radio\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"placeholder\": \"me@mail.con\"\n  },\n  {\n    \"fieldLabel\": \"File\",\n    \"fieldType\": \"file\",\n    \"multipleFiles\": true,\n    \"acceptFileTypes\": \".jpg, .png\"\n  },\n  {\n    \"fieldLabel\": \"Number\",\n    \"fieldType\": \"number\"\n  },\n  {\n    \"fieldLabel\": \"Password\",\n    \"fieldType\": \"password\"\n  }\n]\n",
      "displayOptions": {
        "show": {
          "defineForm": [
            "json"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 5
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "required": true,
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    2.4
                  ]
                }
              }
            },
            {
              "displayName": "Label",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text Input",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.5
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lt": 2.5
              }
            }
          ],
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true,
        "fixedCollection": {
          "itemTitle": "={{ $collection.item.properties.find(p => p.name === \"fieldType\").options.find(o => o.value === $collection.item.value.fieldType).name }}"
        }
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "required": true,
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    2.4
                  ]
                }
              }
            },
            {
              "displayName": "Label",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text Input",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.5
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 2.5
              }
            }
          ],
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true,
        "hideOptionalFields": true,
        "addOptionalFieldButtonText": "Add Attributes",
        "fixedCollection": {
          "itemTitle": "={{ $collection.item.properties.find(p => p.name === \"fieldType\").options.find(o => o.value === $collection.item.value.fieldType).name }}"
        }
      }
    },
    {
      "displayName": "Approval Options",
      "name": "approvalOptions",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Type of Approval",
              "name": "approvalType",
              "type": "options",
              "placeholder": "Add option",
              "default": "single",
              "options": [
                {
                  "name": "Approve Only",
                  "value": "single"
                },
                {
                  "name": "Approve and Disapprove",
                  "value": "double"
                }
              ]
            },
            {
              "displayName": "Approve Button Label",
              "name": "approveLabel",
              "type": "string",
              "default": "✅ Approve",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "single",
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Disapprove Button Label",
              "name": "disapproveLabel",
              "type": "string",
              "default": "❌ Decline",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "double"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether to limit the time this node should wait for a user response before execution resumes",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Message Button Label",
          "name": "messageButtonLabel",
          "type": "string",
          "default": "Respond"
        },
        {
          "displayName": "Response Form Title",
          "name": "responseFormTitle",
          "description": "Title of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Description",
          "name": "responseFormDescription",
          "description": "Description of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Button Label",
          "name": "responseFormButtonLabel",
          "type": "string",
          "default": "Submit"
        },
        {
          "displayName": "Response Form Custom Styling",
          "name": "responseFormCustomCss",
          "type": "string",
          "typeOptions": {
            "rows": 10,
            "editor": "cssEditor"
          },
          "default": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}",
          "description": "Override default styling of the response form with CSS"
        },
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether to limit the time this node should wait for a user response before execution resumes",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "freeText",
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a membership",
      "resource": "member"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many memberships in a space",
      "resource": "member"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a message",
      "resource": "message"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a message",
      "resource": "message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a message",
      "resource": "message"
    },
    {
      "operation": "sendAndWait",
      "name": "Send and Wait for Response",
      "description": "Send a message and wait for response",
      "resource": "message"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a message",
      "resource": "message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a space",
      "resource": "space"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many spaces the caller is a member of",
      "resource": "space"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "testedBy": "testGoogleTokenAuth",
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleChatOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleChat
package_name: n8n-nodes-base
display_name: Google Chat
description: Consume Google Chat API
category: input
development_style: programmatic
version: 1
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:08
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Chat node documentation
  description: Learn how to use the Google Chat node in n8n. Follow technical documentation to integrate Google Chat node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Chat node

  Use the Google Chat node to automate work in Google Chat, and integrate Google Chat with other applications. n8n has built-in support for a wide range of Google Chat features, including getting membership and spaces, as well as creating and deleting messages. 

  On this page, you'll find a list of operations the Google Chat node supports and links to more resources.

  /// note | Credentials
  Refer to [Google credentials](/integrations/builtin/credentials/google/index.md) for guidance on setting up authentication. 
  ///

  --8<-- "_snippets/integrations/builtin/app-nodes/ai-tools.md"

  ## Operations

  * Member
      * Get a membership
      * Get all memberships in a space
  * Message
      * Create a message
      * Delete a message
      * Get a message
  	* Send and Wait for Response
      * Update a message
  * Space
      * Get a space
      * Get all spaces the caller is a member of

  --8<-- "_snippets/integrations/builtin/send-and-wait-operation.md"

  ## Templates and examples

  <!-- see https://www.notion.so/n8n/Pull-in-templates-for-the-integrations-pages-37c716837b804d30a33b47475f6e3780 -->
  [[ templatesWidget(page.title, 'google-chat') ]]

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "serviceAccount",
      "options": [
        {
          "name": "OAuth2 (recommended)",
          "value": "oAuth2"
        },
        {
          "name": "Service Account",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Member",
          "value": "member"
        },
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Space",
          "value": "space"
        }
      ],
      "required": true,
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a membership",
          "action": "Get a member"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many memberships in a space",
          "action": "Get many members"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Member ID",
      "name": "memberId",
      "type": "string",
      "default": "",
      "description": "Member to be retrieved in the form \"spaces/*/members/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": [],
      "description": "The name of the space for which to retrieve members, in the form \"spaces/*\". Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "member"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a message",
          "action": "Create a message"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a message",
          "action": "Delete a message"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a message",
          "action": "Get a message"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "description": "Send a message and wait for response",
          "action": "Send message and wait for response"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a message",
          "action": "Update a message"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the message object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message",
      "name": "messageUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Message (JSON)",
      "name": "messageJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Request ID",
          "name": "requestId",
          "type": "string",
          "default": "",
          "description": "A unique request ID for this message. If a message has already been created in the space with this request ID, the subsequent request will return the existing message and no new message will be created."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be deleted, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be retrieved, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Message ID",
      "name": "messageId",
      "type": "string",
      "default": "",
      "description": "Resource name of the message to be updated, in the form \"spaces//messages/\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "JSON Parameters",
      "name": "jsonParameters",
      "type": "boolean",
      "default": false,
      "description": "Whether to pass the update fields object as JSON",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFieldsUi",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Text",
          "name": "text",
          "type": "string",
          "default": ""
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            false
          ]
        }
      }
    },
    {
      "displayName": "See <a href=\"https://developers.google.com/chat/reference/rest/v1/spaces.messages#Message\" target=\"_blank\">Google Chat Guide</a> To Creating Messages",
      "name": "jsonNotice",
      "type": "notice",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      }
    },
    {
      "displayName": "Update Fields (JSON)",
      "name": "updateFieldsJson",
      "type": "json",
      "default": "",
      "description": "Message input as JSON Object or JSON String",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "update"
          ],
          "jsonParameters": [
            true
          ]
        }
      },
      "typeOptions": {
        "alwaysOpenEditWindow": true
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "description": "Get a space",
          "action": "Get a space"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get many spaces the caller is a member of",
          "action": "Get many spaces"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Space ID",
      "name": "spaceId",
      "type": "string",
      "default": "",
      "description": "Resource name of the space, in the form \"spaces/*\"",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Return All",
      "name": "returnAll",
      "type": "boolean",
      "default": false,
      "description": "Whether to return all results or only up to a given limit",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "space"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "maxValue": 1000
      }
    },
    {
      "displayName": "Space Name or ID",
      "name": "spaceId",
      "type": "options",
      "default": "",
      "description": "Space resource name, in the form \"spaces/*\". Example: spaces/AAAAMpdlehY. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getSpaces"
      }
    },
    {
      "displayName": "Message",
      "name": "message",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 4
      }
    },
    {
      "displayName": "Response Type",
      "name": "responseType",
      "type": "options",
      "default": "approval",
      "options": [
        {
          "name": "Approval",
          "value": "approval",
          "description": "User can approve/disapprove from within the message"
        },
        {
          "name": "Free Text",
          "value": "freeText",
          "description": "User can submit a response via a form"
        },
        {
          "name": "Custom Form",
          "value": "customForm",
          "description": "User can submit a response via a custom form"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Define Form",
      "name": "defineForm",
      "type": "options",
      "default": "fields",
      "options": [
        {
          "name": "Using Fields Below",
          "value": "fields"
        },
        {
          "name": "Using JSON",
          "value": "json"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Form Fields",
      "name": "jsonOutput",
      "type": "json",
      "default": "[\n  {\n    \"fieldLabel\": \"Name\",\n    \"placeholder\": \"enter your name\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Age\",\n    \"fieldType\": \"number\",\n    \"placeholder\": \"enter your age\"\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Textarea\",\n    \"fieldType\": \"textarea\"\n  },\n  {\n    \"fieldLabel\": \"Dropdown Options\",\n    \"fieldType\": \"dropdown\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    },\n    \"requiredField\": true\n  },\n  {\n    \"fieldLabel\": \"Checkboxes\",\n    \"fieldType\": \"checkbox\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Radio\",\n    \"fieldType\": \"radio\",\n    \"fieldOptions\": {\n      \"values\": [\n        {\n          \"option\": \"option 1\"\n        },\n        {\n          \"option\": \"option 2\"\n        }\n      ]\n    }\n  },\n  {\n    \"fieldLabel\": \"Email\",\n    \"fieldType\": \"email\",\n    \"placeholder\": \"me@mail.con\"\n  },\n  {\n    \"fieldLabel\": \"File\",\n    \"fieldType\": \"file\",\n    \"multipleFiles\": true,\n    \"acceptFileTypes\": \".jpg, .png\"\n  },\n  {\n    \"fieldLabel\": \"Number\",\n    \"fieldType\": \"number\"\n  },\n  {\n    \"fieldLabel\": \"Password\",\n    \"fieldType\": \"password\"\n  }\n]\n",
      "displayOptions": {
        "show": {
          "defineForm": [
            "json"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "rows": 5
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "required": true,
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    2.4
                  ]
                }
              }
            },
            {
              "displayName": "Label",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text Input",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.5
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "lt": 2.5
              }
            }
          ],
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true,
        "fixedCollection": {
          "itemTitle": "={{ $collection.item.properties.find(p => p.name === \"fieldType\").options.find(o => o.value === $collection.item.value.fieldType).name }}"
        }
      }
    },
    {
      "displayName": "Form Elements",
      "name": "formFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "required": true,
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    2.4
                  ]
                }
              }
            },
            {
              "displayName": "Label",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldLabel",
              "type": "string",
              "default": "",
              "placeholder": "e.g. What is your name?",
              "description": "Label that appears above the input field",
              "required": true,
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "hiddenField",
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.4
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Checkboxes",
                  "value": "checkbox"
                },
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Radio Buttons",
                  "value": "radio"
                },
                {
                  "name": "Text Input",
                  "value": "text"
                },
                {
                  "name": "Textarea",
                  "value": "textarea"
                }
              ],
              "required": true
            },
            {
              "displayName": "Element Name",
              "name": "elementName",
              "type": "string",
              "default": "",
              "placeholder": "e.g. content-section",
              "description": "Optional field. It can be used to include the html in the output.",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Custom Field Name",
              "name": "fieldName",
              "description": "The name of the field, used in input attributes and referenced by the workflow",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html"
                  ]
                },
                "show": {
                  "@version": [
                    {
                      "_cnd": {
                        "gte": 2.5
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField",
                    "radio",
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-filled in the form field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "text",
                    "number",
                    "email",
                    "textarea"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default date value that will be pre-filled in the form field (format: YYYY-MM-DD)",
              "type": "dateTime",
              "typeOptions": {
                "dateOnly": true
              },
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value that will be pre-selected. Must match one of the option labels.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown",
                    "radio"
                  ]
                }
              }
            },
            {
              "displayName": "Default Value",
              "name": "defaultValue",
              "description": "Default value(s) that will be pre-selected. Must match one or multiple of the option labels. Separate multiple pre-selected options with a comma.",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Field Value",
              "name": "fieldValue",
              "description": "Input value can be set here or will be passed as a query parameter via Field Name if no value is set",
              "type": "string",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "displayName": "Field Options",
              "name": "fieldOptions",
              "placeholder": "Add Field Option",
              "description": "List of options that can be selected from the dropdown",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Option",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Checkboxes",
              "name": "fieldOptions",
              "placeholder": "Add Checkbox",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Checkbox Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Radio Buttons",
              "name": "fieldOptions",
              "placeholder": "Add Radio Button",
              "type": "fixedCollection",
              "default": {
                "values": [
                  {
                    "option": ""
                  }
                ]
              },
              "required": true,
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "radio"
                  ]
                }
              },
              "typeOptions": {
                "multipleValues": true,
                "sortable": true
              },
              "options": [
                {
                  "displayName": "Values",
                  "name": "values",
                  "values": [
                    {
                      "displayName": "Radio Button Label",
                      "name": "option",
                      "type": "string",
                      "default": ""
                    }
                  ]
                }
              ]
            },
            {
              "displayName": "Multiple Choice is a legacy option, please use Checkboxes or Radio Buttons field type instead",
              "name": "multiselectLegacyNotice",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "multiselect": [
                    true
                  ],
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Choice",
              "name": "multiselect",
              "type": "boolean",
              "default": false,
              "description": "Whether to allow the user to select multiple options from the dropdown list",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "dropdown"
                  ],
                  "@version": [
                    {
                      "_cnd": {
                        "lt": 2.3
                      }
                    }
                  ]
                }
              }
            },
            {
              "displayName": "Limit Selection",
              "name": "limitSelection",
              "type": "options",
              "default": "unlimited",
              "options": [
                {
                  "name": "Exact Number",
                  "value": "exact"
                },
                {
                  "name": "Range",
                  "value": "range"
                },
                {
                  "name": "Unlimited",
                  "value": "unlimited"
                }
              ],
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ]
                }
              }
            },
            {
              "displayName": "Number of Selections",
              "name": "numberOfSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "exact"
                  ]
                }
              }
            },
            {
              "displayName": "Minimum Selections",
              "name": "minSelections",
              "type": "number",
              "default": 0,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 0,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "Maximum Selections",
              "name": "maxSelections",
              "type": "number",
              "default": 1,
              "typeOptions": {
                "numberPrecision": 0,
                "minValue": 1,
                "showEvenWhenOptional": true
              },
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "checkbox"
                  ],
                  "limitSelection": [
                    "range"
                  ]
                }
              }
            },
            {
              "displayName": "HTML",
              "name": "html",
              "typeOptions": {
                "editor": "htmlEditor"
              },
              "type": "string",
              "noDataExpression": true,
              "default": "<!-- Your custom HTML here --->\n\n\n",
              "description": "HTML elements to display on the form page",
              "hint": "Does not accept <code>&lt;script&gt;</code>, <code>&lt;style&gt;</code> or <code>&lt;input&gt;</code> tags",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "html"
                  ]
                }
              }
            },
            {
              "displayName": "Multiple Files",
              "name": "multipleFiles",
              "type": "boolean",
              "default": true,
              "description": "Whether to allow the user to select multiple files from the file input or just one",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "Accepted File Types",
              "name": "acceptFileTypes",
              "type": "string",
              "default": "",
              "description": "Comma-separated list of allowed file extensions",
              "hint": "Leave empty to allow all file types",
              "placeholder": "e.g. .jpg, .png",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "file"
                  ]
                }
              }
            },
            {
              "displayName": "The displayed date is formatted based on the locale of the user's browser",
              "name": "formatDate",
              "type": "notice",
              "default": "",
              "displayOptions": {
                "show": {
                  "fieldType": [
                    "date"
                  ]
                }
              }
            },
            {
              "displayName": "Required Field",
              "name": "requiredField",
              "type": "boolean",
              "default": false,
              "description": "Whether to require the user to enter a value for this field before submitting the form",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "html",
                    "hiddenField"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "@version": [
            {
              "_cnd": {
                "gte": 2.5
              }
            }
          ],
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true,
        "hideOptionalFields": true,
        "addOptionalFieldButtonText": "Add Attributes",
        "fixedCollection": {
          "itemTitle": "={{ $collection.item.properties.find(p => p.name === \"fieldType\").options.find(o => o.value === $collection.item.value.fieldType).name }}"
        }
      }
    },
    {
      "displayName": "Approval Options",
      "name": "approvalOptions",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Values",
          "name": "values",
          "values": [
            {
              "displayName": "Type of Approval",
              "name": "approvalType",
              "type": "options",
              "placeholder": "Add option",
              "default": "single",
              "options": [
                {
                  "name": "Approve Only",
                  "value": "single"
                },
                {
                  "name": "Approve and Disapprove",
                  "value": "double"
                }
              ]
            },
            {
              "displayName": "Approve Button Label",
              "name": "approveLabel",
              "type": "string",
              "default": "✅ Approve",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "single",
                    "double"
                  ]
                }
              }
            },
            {
              "displayName": "Disapprove Button Label",
              "name": "disapproveLabel",
              "type": "string",
              "default": "❌ Decline",
              "displayOptions": {
                "show": {
                  "approvalType": [
                    "double"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether to limit the time this node should wait for a user response before execution resumes",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "approval"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Message Button Label",
          "name": "messageButtonLabel",
          "type": "string",
          "default": "Respond"
        },
        {
          "displayName": "Response Form Title",
          "name": "responseFormTitle",
          "description": "Title of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Description",
          "name": "responseFormDescription",
          "description": "Description of the form that the user can access to provide their response",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Response Form Button Label",
          "name": "responseFormButtonLabel",
          "type": "string",
          "default": "Submit"
        },
        {
          "displayName": "Response Form Custom Styling",
          "name": "responseFormCustomCss",
          "type": "string",
          "typeOptions": {
            "rows": 10,
            "editor": "cssEditor"
          },
          "default": ":root {\n\t--font-family: 'Open Sans', sans-serif;\n\t--font-weight-normal: 400;\n\t--font-weight-bold: 600;\n\t--font-size-body: 12px;\n\t--font-size-label: 14px;\n\t--font-size-test-notice: 12px;\n\t--font-size-input: 14px;\n\t--font-size-header: 20px;\n\t--font-size-paragraph: 14px;\n\t--font-size-link: 12px;\n\t--font-size-error: 12px;\n\t--font-size-html-h1: 28px;\n\t--font-size-html-h2: 20px;\n\t--font-size-html-h3: 16px;\n\t--font-size-html-h4: 14px;\n\t--font-size-html-h5: 12px;\n\t--font-size-html-h6: 10px;\n\t--font-size-subheader: 14px;\n\n\t/* Colors */\n\t--color-background: #fbfcfe;\n\t--color-test-notice-text: #e6a23d;\n\t--color-test-notice-bg: #fefaf6;\n\t--color-test-notice-border: #f6dcb7;\n\t--color-card-bg: #ffffff;\n\t--color-card-border: #dbdfe7;\n\t--color-card-shadow: rgba(99, 77, 255, 0.06);\n\t--color-link: #7e8186;\n\t--color-header: #525356;\n\t--color-label: #555555;\n\t--color-input-border: #dbdfe7;\n\t--color-input-text: #71747A;\n\t--color-focus-border: rgb(90, 76, 194);\n\t--color-submit-btn-bg: #ff6d5a;\n\t--color-submit-btn-text: #ffffff;\n\t--color-error: #ea1f30;\n\t--color-required: #ff6d5a;\n\t--color-clear-button-bg: #7e8186;\n\t--color-html-text: #555;\n\t--color-html-link: #ff6d5a;\n\t--color-header-subtext: #7e8186;\n\n\t/* Border Radii */\n\t--border-radius-card: 8px;\n\t--border-radius-input: 6px;\n\t--border-radius-clear-btn: 50%;\n\t--card-border-radius: 8px;\n\n\t/* Spacing */\n\t--padding-container-top: 24px;\n\t--padding-card: 24px;\n\t--padding-test-notice-vertical: 12px;\n\t--padding-test-notice-horizontal: 24px;\n\t--margin-bottom-card: 16px;\n\t--padding-form-input: 12px;\n\t--card-padding: 24px;\n\t--card-margin-bottom: 16px;\n\n\t/* Dimensions */\n\t--container-width: 448px;\n\t--submit-btn-height: 48px;\n\t--checkbox-size: 18px;\n\n\t/* Others */\n\t--box-shadow-card: 0px 4px 16px 0px var(--color-card-shadow);\n\t--opacity-placeholder: 0.5;\n}",
          "description": "Override default styling of the response form with CSS"
        },
        {
          "displayName": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether to limit the time this node should wait for a user response before execution resumes",
          "default": {
            "values": {
              "limitType": "afterTimeInterval",
              "resumeAmount": 45,
              "resumeUnit": "minutes"
            }
          },
          "options": [
            {
              "displayName": "Values",
              "name": "values",
              "values": [
                {
                  "displayName": "Limit Type",
                  "name": "limitType",
                  "type": "options",
                  "default": "afterTimeInterval",
                  "description": "Sets the condition for the execution to resume. Can be a specified date or after some time.",
                  "options": [
                    {
                      "name": "After Time Interval",
                      "description": "Waits for a certain amount of time",
                      "value": "afterTimeInterval"
                    },
                    {
                      "name": "At Specified Time",
                      "description": "Waits until the set date and time to continue",
                      "value": "atSpecifiedTime"
                    }
                  ]
                },
                {
                  "displayName": "Amount",
                  "name": "resumeAmount",
                  "type": "number",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "typeOptions": {
                    "minValue": 0,
                    "numberPrecision": 2
                  },
                  "default": 1,
                  "description": "The time to wait"
                },
                {
                  "displayName": "Unit",
                  "name": "resumeUnit",
                  "type": "options",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "afterTimeInterval"
                      ]
                    }
                  },
                  "options": [
                    {
                      "name": "Minutes",
                      "value": "minutes"
                    },
                    {
                      "name": "Hours",
                      "value": "hours"
                    },
                    {
                      "name": "Days",
                      "value": "days"
                    }
                  ],
                  "default": "hours",
                  "description": "Unit of the interval value"
                },
                {
                  "displayName": "Max Date and Time",
                  "name": "maxDateAndTime",
                  "type": "dateTime",
                  "displayOptions": {
                    "show": {
                      "limitType": [
                        "atSpecifiedTime"
                      ]
                    }
                  },
                  "default": "",
                  "description": "Continue execution after the specified date and time"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Append n8n Attribution",
          "name": "appendAttribution",
          "type": "boolean",
          "default": true,
          "description": "Whether to include the phrase \"This message was sent automatically with n8n\" to the end of the message"
        }
      ],
      "displayOptions": {
        "show": {
          "responseType": [
            "freeText",
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a membership",
      "resource": "member"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many memberships in a space",
      "resource": "member"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a message",
      "resource": "message"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a message",
      "resource": "message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a message",
      "resource": "message"
    },
    {
      "operation": "sendAndWait",
      "name": "Send and Wait for Response",
      "description": "Send a message and wait for response",
      "resource": "message"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a message",
      "resource": "message"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a space",
      "resource": "space"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many spaces the caller is a member of",
      "resource": "space"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "testedBy": "testGoogleTokenAuth",
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleChatOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      }
    }
  ]


