# nodes

node_type: nodes-base.gitlabTrigger
package_name: n8n-nodes-base
display_name: GitLab Trigger
description: Starts the workflow when GitLab events occur
category: trigger
development_style: programmatic
version: 1
operations: []
updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: GitLab Trigger node documentation
  description: Learn how to use the GitLab Trigger node in n8n. Follow technical documentation to integrate GitLab Trigger node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # GitLab Trigger node

  [GitLab](https://gitlab.com/){:target=_blank .external-link} is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking, and continuous integration/continuous installation pipeline features.

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

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

properties_schema:
  [
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "accessToken",
      "options": [
        {
          "name": "Access Token",
          "value": "accessToken"
        },
        {
          "name": "OAuth2",
          "value": "oAuth2"
        }
      ]
    },
    {
      "displayName": "Repository Owner",
      "name": "owner",
      "type": "string",
      "default": "",
      "description": "Owner of the repository",
      "required": true
    },
    {
      "displayName": "Repository Name",
      "name": "repository",
      "type": "string",
      "default": "",
      "description": "The name of the repository",
      "required": true
    },
    {
      "displayName": "Events",
      "name": "events",
      "type": "multiOptions",
      "default": [],
      "description": "The events to listen to",
      "options": [
        {
          "name": "Comment",
          "value": "note",
          "description": "Triggered when a new comment is made on commits, merge requests, issues, and code snippets"
        },
        {
          "name": "Confidential Issues",
          "value": "confidential_issues",
          "description": "Triggered on confidential issues' events"
        },
        {
          "name": "Confidential Comments",
          "value": "confidential_note",
          "description": "Triggered when a confidential comment is made"
        },
        {
          "name": "Deployments",
          "value": "deployment",
          "description": "Triggered when a deployment starts/succeeds/fails/is cancelled"
        },
        {
          "name": "Issue",
          "value": "issues",
          "description": "Triggered when a new issue is created or an existing issue was updated/closed/reopened"
        },
        {
          "name": "Job",
          "value": "job",
          "description": "Triggered on status change of a job"
        },
        {
          "name": "Merge Request",
          "value": "merge_requests",
          "description": "Triggered when a new merge request is created, an existing merge request was updated/merged/closed or a commit is added in the source branch"
        },
        {
          "name": "Pipeline",
          "value": "pipeline",
          "description": "Triggered on status change of Pipeline"
        },
        {
          "name": "Push",
          "value": "push",
          "description": "Triggered when you push to the repository except when pushing tags"
        },
        {
          "name": "Release",
          "value": "releases",
          "description": "Release events are triggered when a release is created or updated"
        },
        {
          "name": "Tag",
          "value": "tag_push",
          "description": "Triggered when you create (or delete) tags to the repository"
        },
        {
          "name": "Wiki Page",
          "value": "wiki_page",
          "description": "Triggered when a wiki page is created, updated or deleted"
        },
        {
          "name": "*",
          "value": "*",
          "description": "Any time any event is triggered (Wildcard Event)"
        }
      ],
      "required": true
    }
  ]

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


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
updated_at: 2025-06-16 15:36:26
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"
          ]
        }
      }
    },
    {
      "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"
          ]
        }
      }
    },
    {
      "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"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of calls"
    }
  ]

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


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
updated_at: 2025-06-16 15:36:26
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": "={{\"/v17/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": "={{\"/v17/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"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a specific campaign"
    }
  ]

credentials_required:
  [
    {
      "name": "googleAdsOAuth2Api",
      "required": true,
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/v17/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
  }
  ]

updated_at: 2025-06-16 15:36:26
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"
          ]
        }
      }
    },
    {
      "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": "2025-06-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": "2025-06-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"
          ]
        }
      }
    },
    {
      "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": "2025-06-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": "2025-06-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"
    }
  ]


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
updated_at: 2025-06-16 15:36:26
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"
          ]
        }
      }
    },
    {
      "displayName": "Dataset",
      "name": "datasetId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      }
    },
    {
      "displayName": "Table",
      "name": "tableId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "database"
          ],
          "operation": [
            "insert"
          ]
        }
      }
    },
    {
      "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."
        }
      ],
      "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"
    },
    {
      "operation": "insert",
      "name": "Insert",
      "description": "Insert rows in a table"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleBigQueryOAuth2Api",
      "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: 1
updated_at: 2025-06-16 15:36:26
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"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many public bookshelf resource for the specified user"
    }
  ]

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


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
credentials_required:
  [
  {
  "name": "googleCalendarOAuth2Api",
  "required": true
  }
  ]

updated_at: 2025-06-16 15:36:26
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"
          ]
        }
      }
    },
    {
      "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/Coral_Harbour|America/Cordoba|America/Costa_Rica|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"
          ]
        }
      }
    },
    {
      "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/Coral_Harbour|America/Cordoba|America/Costa_Rica|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/Coral_Harbour|America/Cordoba|America/Costa_Rica|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": {
          "@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"
    }
  ]


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
  }
  ]

updated_at: 2025-06-16 15:36:26
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
    },
    {
      "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.googleChat
package_name: n8n-nodes-base
display_name: Google Chat
description: Consume Google Chat API
category: input
development_style: programmatic
version: 1
updated_at: 2025-06-16 15:36:26
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 you 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]",
      "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": "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"
                  ]
                }
              }
            },
            {
              "displayName": "Element Type",
              "name": "fieldType",
              "type": "options",
              "default": "text",
              "description": "The type of field to add to the form",
              "options": [
                {
                  "name": "Custom HTML",
                  "value": "html"
                },
                {
                  "name": "Date",
                  "value": "date"
                },
                {
                  "name": "Dropdown List",
                  "value": "dropdown"
                },
                {
                  "name": "Email",
                  "value": "email"
                },
                {
                  "name": "File",
                  "value": "file"
                },
                {
                  "name": "Hidden Field",
                  "value": "hiddenField"
                },
                {
                  "name": "Number",
                  "value": "number"
                },
                {
                  "name": "Password",
                  "value": "password"
                },
                {
                  "name": "Text",
                  "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": "Placeholder",
              "name": "placeholder",
              "description": "Sample text to display inside the field",
              "type": "string",
              "default": "",
              "displayOptions": {
                "hide": {
                  "fieldType": [
                    "dropdown",
                    "date",
                    "file",
                    "html",
                    "hiddenField"
                  ]
                }
              }
            },
            {
              "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"
                  ]
                }
              }
            },
            {
              "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": "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"
                  ]
                }
              }
            },
            {
              "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": {
          "defineForm": [
            "fields"
          ],
          "responseType": [
            "customForm"
          ],
          "resource": [
            "message"
          ],
          "operation": [
            "sendAndWait"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true,
        "sortable": true
      }
    },
    {
      "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 the workflow will automatically resume execution after the specified limit type",
          "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": "Limit Wait Time",
          "name": "limitWaitTime",
          "type": "fixedCollection",
          "description": "Whether the workflow will automatically resume execution after the specified limit type",
          "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"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get many memberships in a 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.googleCloudNaturalLanguage
package_name: n8n-nodes-base
display_name: Google Cloud Natural Language
description: Consume Google Cloud Natural Language API
category: input
development_style: programmatic
version: 1
operations:
  [
  {
  "operation": "analyzeSentiment",
  "name": "Analyze Sentiment"
  }
  ]

credentials_required:
  [
  {
  "name": "googleCloudNaturalLanguageOAuth2Api",
  "required": true
  }
  ]

updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Cloud Natural Language node documentation
  description: Learn how to use the Google Cloud Natural Language node in n8n. Follow technical documentation to integrate Google Cloud Natural Language node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Cloud Natural Language node

  Use the Google Cloud Natural Language node to automate work in Google Cloud Natural Language, and integrate Google Cloud Natural Language with other applications. n8n has built-in support for a wide range of Google Cloud Natural Language features, including analyzing documents.

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

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

  ## Operations

  * Document
      * Analyze Sentiment

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "analyzeSentiment",
      "options": [
        {
          "name": "Analyze Sentiment",
          "value": "analyzeSentiment",
          "action": "Analyze sentiment"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Source",
      "name": "source",
      "type": "options",
      "default": "content",
      "description": "The source of the document: a string containing the content or a Google Cloud Storage URI",
      "options": [
        {
          "name": "Content",
          "value": "content"
        },
        {
          "name": "Google Cloud Storage URI",
          "value": "gcsContentUri"
        }
      ],
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ]
        }
      }
    },
    {
      "displayName": "Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The content of the input in string format. Cloud audit logging exempt since it is based on user data.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ],
          "source": [
            "content"
          ]
        }
      }
    },
    {
      "displayName": "Google Cloud Storage URI",
      "name": "gcsContentUri",
      "type": "string",
      "default": "",
      "description": "The Google Cloud Storage URI where the file content is located. This URI must be of the form: <code>gs://bucket_name/object_name</code>. For more details, see <a href=\"https://cloud.google.com/storage/docs/reference-uris.\">reference</a>.",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ],
          "source": [
            "gcsContentUri"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Document Type",
          "name": "documentType",
          "type": "options",
          "options": [
            {
              "name": "HTML",
              "value": "HTML"
            },
            {
              "name": "Plain Text",
              "value": "PLAIN_TEXT"
            }
          ],
          "default": "PLAIN_TEXT",
          "description": "The type of input document"
        },
        {
          "displayName": "Encoding Type",
          "name": "encodingType",
          "type": "options",
          "options": [
            {
              "name": "None",
              "value": "NONE"
            },
            {
              "name": "UTF-8",
              "value": "UTF8"
            },
            {
              "name": "UTF-16",
              "value": "UTF16"
            },
            {
              "name": "UTF-32",
              "value": "UTF32"
            }
          ],
          "default": "UTF16",
          "description": "The encoding type used by the API to calculate sentence offsets"
        },
        {
          "displayName": "Language",
          "name": "language",
          "type": "options",
          "options": [
            {
              "name": "Arabic",
              "value": "ar"
            },
            {
              "name": "Chinese (Simplified)",
              "value": "zh"
            },
            {
              "name": "Chinese (Traditional)",
              "value": "zh-Hant"
            },
            {
              "name": "Dutch",
              "value": "nl"
            },
            {
              "name": "English",
              "value": "en"
            },
            {
              "name": "French",
              "value": "fr"
            },
            {
              "name": "German",
              "value": "de"
            },
            {
              "name": "Indonesian",
              "value": "id"
            },
            {
              "name": "Italian",
              "value": "it"
            },
            {
              "name": "Japanese",
              "value": "ja"
            },
            {
              "name": "Korean",
              "value": "ko"
            },
            {
              "name": "Portuguese (Brazilian & Continental)",
              "value": "pt"
            },
            {
              "name": "Spanish",
              "value": "es"
            },
            {
              "name": "Thai",
              "value": "th"
            },
            {
              "name": "Turkish",
              "value": "tr"
            },
            {
              "name": "Vietnamese",
              "value": "vi"
            }
          ],
          "default": "en",
          "placeholder": "",
          "description": "The language of the document (if not specified, the language is automatically detected). Both ISO and BCP-47 language codes are accepted."
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "analyzeSentiment"
          ]
        }
      }
    }
  ]


node_type: nodes-base.googleCloudStorage
package_name: n8n-nodes-base
display_name: Google Cloud Storage
description: Use the Google Cloud Storage API
category: transform
development_style: programmatic
version: 1
updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Cloud Storage node documentation
  description: Learn how to use the Google Cloud Storage node in n8n. Follow technical documentation to integrate Google Cloud Storage node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Cloud Storage node

  Use the Google Cloud Storage node to automate work in Google Cloud Storage, and integrate Google Cloud Storage with other applications. n8n has built-in support for a wide range of Google Cloud Storage features, including creating, updating, deleting, and getting buckets and objects. 

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

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

  ## Operations

  * Bucket
  	* Create
  	* Delete
  	* Get
  	* Get Many
  	* Update
  * Object
  	* Create
  	* Delete
  	* Get
  	* Get Many
  	* Update

  ## Templates and examples

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

  ## Related resources

  Refer to Google's [Cloud Storage API documentation](https://cloud.google.com/storage/docs/apis){:target=_blank .external-link} for detailed information about the API that this node integrates with.

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "bucket",
      "options": [
        {
          "name": "Bucket",
          "value": "bucket"
        },
        {
          "name": "Object",
          "value": "object"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a new Bucket",
          "routing": {
            "request": {
              "method": "POST",
              "url": "/b/",
              "qs": {},
              "body": {
                "name": "={{$parameter[\"bucketName\"]}}"
              },
              "returnFullResponse": true
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Create a new Bucket"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an empty Bucket",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "returnFullResponse": true
            }
          },
          "action": "Delete an empty Bucket"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get metadata for a specific Bucket",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "returnFullResponse": true,
              "qs": {}
            }
          },
          "action": "Get a Bucket"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Get list of Buckets",
          "routing": {
            "request": {
              "method": "GET",
              "url": "/b/",
              "qs": {}
            },
            "send": {
              "paginate": true,
              "preSend": [
                null
              ]
            },
            "operations": {}
          },
          "action": "Get a list of Buckets for a given project"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update the metadata of a bucket",
          "routing": {
            "request": {
              "method": "PATCH",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"]}}",
              "qs": {
                "project": "={{$parameter[\"projectId\"]}}"
              },
              "body": {},
              "returnFullResponse": true
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Update the metadata of a Bucket"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Project ID",
      "name": "projectId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "get",
            "update",
            "delete"
          ]
        }
      }
    },
    {
      "displayName": "Prefix",
      "name": "prefix",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Projection",
      "name": "projection",
      "type": "options",
      "default": "noAcl",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "get",
            "getAll",
            "update"
          ]
        }
      },
      "noDataExpression": 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": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Filters",
      "name": "getFilters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "description": "Only return data if the metageneration value of the Bucket matches the sent value",
          "default": 0,
          "routing": {
            "request": {
              "qs": {
                "ifMetagenerationMatch": "={{$value}}"
              }
            }
          }
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "description": "Only return data if the metageneration value of the Bucket does not match the sent value",
          "default": 0,
          "routing": {
            "request": {
              "qs": {
                "ifMetagenerationNotMatch": "={{$value}}"
              }
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "delete",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Predefined Access Control",
      "name": "createAcl",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "default": "authenticatedRead",
          "placeholder": "Apply a predefined set of access controls to this bucket",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            },
            {
              "name": "Public Read/Write",
              "value": "publicReadWrite"
            }
          ],
          "routing": {
            "request": {
              "qs": {
                "predefinedAcl": "={{$value}}"
              }
            }
          }
        },
        {
          "displayName": "Predefined Default Object ACL",
          "name": "predefinedDefaultObjectAcl",
          "type": "options",
          "default": "authenticatedRead",
          "placeholder": "Apply a predefined set of default object access controls to this bucket",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ],
          "routing": {
            "request": {
              "qs": {
                "predefinedObjectAcl": "={{$value}}"
              }
            }
          }
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Additional Parameters",
      "name": "createBody",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Access Control",
          "name": "acl",
          "type": "json",
          "default": "[]",
          "placeholder": "Access controls on the Bucket"
        },
        {
          "displayName": "Billing",
          "name": "billing",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's billing configuration"
        },
        {
          "displayName": "CORS",
          "name": "cors",
          "type": "json",
          "default": "[]",
          "placeholder": "The bucket's Cross Origin Resource Sharing configuration"
        },
        {
          "displayName": "Custom Placement Config",
          "name": "customPlacementConfig",
          "type": "json",
          "default": "{}",
          "placeholder": "The configuration for the region(s) for the Bucket"
        },
        {
          "displayName": "Data Locations",
          "name": "dataLocations",
          "type": "json",
          "default": "[]",
          "placeholder": "The list of individual regions that comprise a dual-region Bucket"
        },
        {
          "displayName": "Default Event Based Hold",
          "name": "defaultEventBasedHold",
          "type": "boolean",
          "default": true,
          "placeholder": "Whether or not to automatically apply an event based hold to new objects"
        },
        {
          "displayName": "Default Object ACL",
          "name": "defaultObjectAcl",
          "type": "json",
          "default": "[]",
          "placeholder": "Default Access Controls for new objects when no ACL is provided"
        },
        {
          "displayName": "Encryption",
          "name": "encryption",
          "type": "json",
          "default": "{}",
          "placeholder": "Encryption configuration for a bucket"
        },
        {
          "displayName": "IAM Configuration",
          "name": "iamConfiguration",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's IAM configuration"
        },
        {
          "displayName": "Labels",
          "name": "labels",
          "type": "json",
          "default": "{}",
          "placeholder": "User provided bucket labels, in key/value pairs"
        },
        {
          "displayName": "Lifecycle",
          "name": "lifecycle",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's lifecycle configuration"
        },
        {
          "displayName": "Location",
          "name": "location",
          "type": "string",
          "default": "US",
          "placeholder": "The location of the bucket"
        },
        {
          "displayName": "Logging",
          "name": "logging",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's logging configuration"
        },
        {
          "displayName": "Retention Policy",
          "name": "retentionPolicy",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's retention policy"
        },
        {
          "displayName": "Recovery Point Objective",
          "name": "rpo",
          "type": "string",
          "default": "DEFAULT",
          "placeholder": "The recovery point objective for the bucket"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "string",
          "default": "STANDARD",
          "placeholder": "The bucket's default storage class for objects that don't define one"
        },
        {
          "displayName": "Versioning",
          "name": "versioning",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's versioning configuration"
        },
        {
          "displayName": "Website",
          "name": "website",
          "type": "json",
          "default": "{}",
          "placeholder": "The bucket's website configuration for when it is used to host a website"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create an object",
          "routing": {
            "request": {
              "method": "POST",
              "baseURL": "https://storage.googleapis.com/upload/storage/v1",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\"}}",
              "qs": {
                "name": "={{$parameter[\"objectName\"]}}",
                "uploadType": "multipart"
              },
              "headers": {}
            },
            "send": {
              "preSend": [
                null,
                null
              ]
            }
          },
          "action": "Create an object"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete an object",
          "routing": {
            "request": {
              "method": "DELETE",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "qs": {}
            }
          },
          "action": "Delete an object from a bucket"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get object data or metadata",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "returnFullResponse": true,
              "qs": {
                "alt": "={{$parameter[\"alt\"]}}"
              }
            },
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            }
          },
          "action": "Get object data or metadata"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve a list of objects",
          "routing": {
            "request": {
              "method": "GET",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\"}}",
              "returnFullResponse": true,
              "qs": {}
            },
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            },
            "operations": {}
          },
          "action": "Get a list of objects"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update an object's metadata",
          "routing": {
            "request": {
              "method": "PATCH",
              "url": "={{\"/b/\" + $parameter[\"bucketName\"] + \"/o/\" + $parameter[\"objectName\"]}}",
              "qs": {},
              "body": {}
            },
            "send": {
              "preSend": [
                null
              ]
            }
          },
          "action": "Update an object's metadata"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Bucket Name",
      "name": "bucketName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      }
    },
    {
      "displayName": "Object Name",
      "name": "objectName",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "delete",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Projection",
      "name": "projection",
      "type": "options",
      "default": "noAcl",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get",
            "getAll"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Projection",
      "name": "updateProjection",
      "type": "options",
      "default": "full",
      "options": [
        {
          "name": "All Properties",
          "value": "full"
        },
        {
          "name": "No ACL",
          "value": "noAcl"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "update"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Return Data",
      "name": "alt",
      "type": "options",
      "default": "json",
      "options": [
        {
          "name": "Metadata",
          "value": "json"
        },
        {
          "name": "Object Data",
          "value": "media"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Use Input Binary Field",
      "name": "createFromBinary",
      "type": "boolean",
      "default": true,
      "description": "Whether the data for creating a file should come from a binary field",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Input Binary Field",
      "name": "createBinaryPropertyName",
      "type": "string",
      "default": "data",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ],
          "createFromBinary": [
            true
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "createContent",
      "type": "string",
      "default": "",
      "description": "Content of the file to be uploaded",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ],
          "createFromBinary": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Put Output File in Field",
      "name": "binaryPropertyName",
      "type": "string",
      "default": "data",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "get"
          ],
          "alt": [
            "media"
          ]
        }
      }
    },
    {
      "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": [
            "object"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "maxResults",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "getAll"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 1000
      }
    },
    {
      "displayName": "Create Fields",
      "name": "createData",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Access Control List",
          "name": "acl",
          "type": "json",
          "default": "[]"
        },
        {
          "displayName": "Cache Control",
          "name": "cacheControl",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Disposition",
          "name": "contentDisposition",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Language",
          "name": "contentLanguage",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Type",
          "name": "contentType",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "CRC32c Checksum",
          "name": "crc32c",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Custom Time",
          "name": "customTime",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Event Based Hold",
          "name": "eventBasedHold",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "MD5 Hash",
          "name": "md5Hash",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "default": "{}"
        },
        {
          "displayName": "Storage Class",
          "name": "storageClass",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Temporary Hold",
          "name": "temporaryHold",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateData",
      "type": "collection",
      "default": {
        "acl": "[]"
      },
      "options": [
        {
          "displayName": "Access Control",
          "name": "acl",
          "type": "json",
          "default": "[]"
        },
        {
          "displayName": "Cache Control",
          "name": "cacheControl",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Disposition",
          "name": "contentDisposition",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Language",
          "name": "contentLanguage",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Content Type",
          "name": "contentType",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Custom Time",
          "name": "customTime",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Event Based Hold",
          "name": "eventBasedHold",
          "type": "boolean",
          "default": false
        },
        {
          "displayName": "Metadata",
          "name": "metadata",
          "type": "json",
          "default": "{}"
        },
        {
          "displayName": "Temporary Hold",
          "name": "temporaryHold",
          "type": "boolean",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "createQuery",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Content Encoding",
          "name": "contentEncoding",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        },
        {
          "displayName": "KMS Key Name",
          "name": "kmsKeyName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "placeholder": "Apply a predefined set of Access Controls to the object",
          "default": "authenticatedRead",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "getParameters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "delete",
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "metagenAndAclQuery",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Generation",
          "name": "generation",
          "type": "number",
          "placeholder": "Select a specific revision of the chosen object",
          "default": -1
        },
        {
          "displayName": "Generation Match",
          "name": "ifGenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation matching this value",
          "default": -1
        },
        {
          "displayName": "Generation Exclude",
          "name": "ifGenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object generation not matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Match",
          "name": "ifMetagenerationMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration matching this value",
          "default": -1
        },
        {
          "displayName": "Metageneration Exclude",
          "name": "ifMetagenerationNotMatch",
          "type": "number",
          "placeholder": "Make operation conditional of the object's current metageneration not matching this value",
          "default": -1
        },
        {
          "displayName": "Predefined ACL",
          "name": "predefinedAcl",
          "type": "options",
          "placeholder": "Apply a predefined set of Access Controls to the object",
          "default": "authenticatedRead",
          "options": [
            {
              "name": "Authenticated Read",
              "value": "authenticatedRead"
            },
            {
              "name": "Bucket Owner Full Control",
              "value": "bucketOwnerFullControl"
            },
            {
              "name": "Bucket Owner Read",
              "value": "bucketOwnerRead"
            },
            {
              "name": "Private",
              "value": "private"
            },
            {
              "name": "Project Private",
              "value": "projectPrivate"
            },
            {
              "name": "Public Read",
              "value": "publicRead"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Encryption Headers",
      "name": "encryptionHeaders",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Encryption Algorithm",
          "name": "X-Goog-Encryption-Algorithm",
          "type": "options",
          "placeholder": "The encryption algorithm to use, which must be AES256. Use to supply your own key in the request",
          "default": "AES256",
          "options": [
            {
              "name": "AES256",
              "value": "AES256"
            }
          ]
        },
        {
          "displayName": "Encryption Key",
          "name": "X-Goog-Encryption-Key",
          "type": "string",
          "placeholder": "Base64 encoded string of your AES256 encryption key",
          "default": ""
        },
        {
          "displayName": "Encryption Key Hash",
          "name": "X-Goog-Encryption-Key-Sha256",
          "type": "string",
          "placeholder": "Base64 encoded string of the SHA256 hash of your encryption key",
          "default": ""
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "create",
            "get",
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Additional Parameters",
      "name": "listFilters",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delimiter",
          "name": "delimiter",
          "type": "string",
          "placeholder": "Returns results in directory-like mode, using this value as the delimiter",
          "default": "/"
        },
        {
          "displayName": "End Offset",
          "name": "endOffset",
          "type": "string",
          "placeholder": "Filter results to names lexicographically before this value",
          "default": ""
        },
        {
          "displayName": "Include Trailing Delimiter",
          "name": "includeTrailingDelimiter",
          "type": "boolean",
          "placeholder": "If true, objects will appear with exactly one instance of delimiter at the end of the name",
          "default": false
        },
        {
          "displayName": "Prefix",
          "name": "prefix",
          "type": "string",
          "placeholder": "Filter results to names that start with this value",
          "default": ""
        },
        {
          "displayName": "Start Offset",
          "name": "startOffset",
          "type": "string",
          "placeholder": "Filter results to names lexicographically equal or after this value",
          "default": ""
        },
        {
          "displayName": "Versions",
          "name": "versions",
          "type": "boolean",
          "placeholder": "If true, list all versions of objects as distinct entries",
          "default": false
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ],
          "operation": [
            "getAll"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a new Bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket"
    }
  ]

credentials_required:
  [
    {
      "name": "googleCloudStorageOAuth2Api",
      "required": true,
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/b/"
        }
      }
    }
  ]


node_type: nodes-base.googleContacts
package_name: n8n-nodes-base
display_name: Google Contacts
description: Consume Google Contacts API
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleContactsOAuth2Api",
  "required": true
  }
  ]

updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Contacts node documentation
  description: Learn how to use the Google Contacts node in n8n. Follow technical documentation to integrate Google Contacts node into your workflows.
  contentType: [integration, reference]
  ---

  # Google Contacts node

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

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

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

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

  ## Operations

  * Contact
      * Create a contact
      * Delete a contact
      * Get a contact
      * Retrieve all contacts
      * Update a contact

  ## Templates and examples

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

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

properties_schema:
  [
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a contact",
          "action": "Create a contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "description": "Delete a contact",
          "action": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a contact",
          "action": "Get a contact"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "description": "Retrieve many contacts",
          "action": "Get many contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a contact",
          "action": "Update a contact"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Family Name",
      "name": "familyName",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Given Name",
      "name": "givenName",
      "type": "string",
      "default": "",
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Additional Fields",
      "name": "additionalFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Addresses",
          "name": "addressesUi",
          "placeholder": "Add Address",
          "type": "fixedCollection",
          "default": {},
          "options": [
            {
              "displayName": "Address",
              "name": "addressesValues",
              "values": [
                {
                  "displayName": "Street Address",
                  "name": "streetAddress",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "City",
                  "name": "city",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Region",
                  "name": "region",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Country Code",
                  "name": "countryCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Postal Code",
                  "name": "postalCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Birthday",
          "name": "birthday",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Company",
          "name": "companyUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Company",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "companyValues",
              "displayName": "Company",
              "values": [
                {
                  "displayName": "Current",
                  "name": "current",
                  "type": "boolean",
                  "default": false
                },
                {
                  "displayName": "Domain",
                  "name": "domain",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Custom Field",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "description": "The end user specified key of the user defined data",
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "description": "The end user specified value of the user defined data",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Emails",
          "name": "emailsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Email",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "emailsValues",
              "displayName": "Email",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the email address. The type can be custom or one of these predefined values."
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Events",
          "name": "eventsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Event",
          "description": "An event related to the person",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "eventsValues",
              "displayName": "Event",
              "values": [
                {
                  "displayName": "Date",
                  "name": "date",
                  "type": "dateTime",
                  "default": "",
                  "description": "The date of the event"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Anniversary",
                      "value": "anniversary"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the event. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        },
        {
          "displayName": "File As",
          "name": "fileAs",
          "type": "string",
          "default": "",
          "description": "The name that should be used to sort the person in a list"
        },
        {
          "displayName": "Group Names or IDs",
          "name": "group",
          "type": "multiOptions",
          "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getGroups"
          },
          "default": []
        },
        {
          "displayName": "Honorific Prefix",
          "name": "honorificPrefix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Honorific Suffix",
          "name": "honorificSuffix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Middle Name",
          "name": "middleName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "biographies",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone",
          "name": "phoneUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Phone",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "phoneValues",
              "displayName": "Phone",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Google Voice",
                      "value": "googleVoice"
                    },
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Home Fax",
                      "value": "homeFax"
                    },
                    {
                      "name": "Main",
                      "value": "main"
                    },
                    {
                      "name": "Mobile",
                      "value": "mobile"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    },
                    {
                      "name": "Other Fax",
                      "value": "otherFax"
                    },
                    {
                      "name": "Pager",
                      "value": "pager"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Work Fax",
                      "value": "workFax"
                    },
                    {
                      "name": "Work Mobile",
                      "value": "workMobile"
                    },
                    {
                      "name": "Work Pager",
                      "value": "workPager"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The phone number"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Relations",
          "name": "relationsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Relation",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "relationsValues",
              "displayName": "Relation",
              "values": [
                {
                  "displayName": "Person",
                  "name": "person",
                  "type": "string",
                  "default": "",
                  "description": "The name of the other person this relation refers to"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Assistant",
                      "value": "assistant"
                    },
                    {
                      "name": "Brother",
                      "value": "brother"
                    },
                    {
                      "name": "Child",
                      "value": "child"
                    },
                    {
                      "name": "Domestic Partner",
                      "value": "domesticPartner"
                    },
                    {
                      "name": "Father",
                      "value": "father"
                    },
                    {
                      "name": "Friend",
                      "value": "friend"
                    },
                    {
                      "name": "Manager",
                      "value": "manager"
                    },
                    {
                      "name": "Mother",
                      "value": "mother"
                    },
                    {
                      "name": "Parent",
                      "value": "parent"
                    },
                    {
                      "name": "Referred By",
                      "value": "referredBy"
                    },
                    {
                      "name": "Relative",
                      "value": "relative"
                    },
                    {
                      "name": "Sister",
                      "value": "sister"
                    },
                    {
                      "name": "Spouse",
                      "value": "spouse"
                    }
                  ],
                  "default": "",
                  "description": "The person's relation to the other person. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "delete"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "RAW Data",
      "name": "rawData",
      "type": "boolean",
      "default": false,
      "description": "Whether to return the data exactly in the way it got received from the API",
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "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": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "returnAll": [
            false
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 500
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Use Query",
      "name": "useQuery",
      "type": "boolean",
      "default": false,
      "description": "Whether or not to use a query to filter the results",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Query",
      "name": "query",
      "type": "string",
      "default": "",
      "description": "The plain-text query for the request. The query is used to match prefix phrases of the fields on a person. For example, a person with name \"foo name\" matches queries such as \"f\", \"fo\", \"foo\", \"foo n\", \"nam\", etc., but not \"oo n\".",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "useQuery": [
            true
          ]
        }
      }
    },
    {
      "displayName": "RAW Data",
      "name": "rawData",
      "type": "boolean",
      "default": false,
      "description": "Whether to return the data exactly in the way it got received from the API",
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Sort Order",
          "name": "sortOrder",
          "type": "options",
          "options": [
            {
              "name": "Last Modified Ascending",
              "value": "LAST_MODIFIED_ASCENDING",
              "description": "Sort people by when they were changed; older entries first"
            },
            {
              "name": "Last Modified Descending",
              "value": "LAST_MODIFIED_DESCENDING",
              "description": "Sort people by when they were changed; newer entries first"
            },
            {
              "name": "First Name Ascending",
              "value": "FIRST_NAME_ASCENDING",
              "description": "Sort people by first name"
            },
            {
              "name": "Last Name Ascending",
              "value": "LAST_NAME_ASCENDING",
              "description": "Sort people by last name"
            }
          ],
          "default": "",
          "description": "The order of the contacts returned in the result"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "getAll"
          ],
          "resource": [
            "contact"
          ],
          "useQuery": [
            false
          ]
        }
      }
    },
    {
      "displayName": "Contact ID",
      "name": "contactId",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Fields",
      "name": "fields",
      "type": "multiOptions",
      "default": [],
      "description": "A field mask to restrict which fields on each person are returned. Multiple fields can be specified by separating them with commas.",
      "options": [
        {
          "name": "*",
          "value": "*"
        },
        {
          "name": "Addresses",
          "value": "addresses"
        },
        {
          "name": "Biographies",
          "value": "biographies"
        },
        {
          "name": "Birthdays",
          "value": "birthdays"
        },
        {
          "name": "Cover Photos",
          "value": "coverPhotos"
        },
        {
          "name": "Email Addresses",
          "value": "emailAddresses"
        },
        {
          "name": "Events",
          "value": "events"
        },
        {
          "name": "Genders",
          "value": "genders"
        },
        {
          "name": "IM Clients",
          "value": "imClients"
        },
        {
          "name": "Interests",
          "value": "interests"
        },
        {
          "name": "Locales",
          "value": "locales"
        },
        {
          "name": "Memberships",
          "value": "memberships"
        },
        {
          "name": "Metadata",
          "value": "metadata"
        },
        {
          "name": "Names",
          "value": "names"
        },
        {
          "name": "Nicknames",
          "value": "nicknames"
        },
        {
          "name": "Occupations",
          "value": "occupations"
        },
        {
          "name": "Organizations",
          "value": "organizations"
        },
        {
          "name": "Phone Numbers",
          "value": "phoneNumbers"
        },
        {
          "name": "Photos",
          "value": "photos"
        },
        {
          "name": "Relations",
          "value": "relations"
        },
        {
          "name": "Residences",
          "value": "residences"
        },
        {
          "name": "Sip Addresses",
          "value": "sipAddresses"
        },
        {
          "name": "Skills",
          "value": "skills"
        },
        {
          "name": "URLs",
          "value": "urls"
        },
        {
          "name": "User Defined",
          "value": "userDefined"
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Etag",
          "name": "etag",
          "type": "string",
          "default": "",
          "description": "The etag field in the person is nedded to make sure the contact has not changed since your last read"
        },
        {
          "displayName": "Family Name",
          "name": "familyName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Given Name",
          "name": "givenName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Addresses",
          "name": "addressesUi",
          "placeholder": "Add Address",
          "type": "fixedCollection",
          "default": {},
          "options": [
            {
              "displayName": "Address",
              "name": "addressesValues",
              "values": [
                {
                  "displayName": "Street Address",
                  "name": "streetAddress",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "City",
                  "name": "city",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Region",
                  "name": "region",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Country Code",
                  "name": "countryCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Postal Code",
                  "name": "postalCode",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Birthday",
          "name": "birthday",
          "type": "dateTime",
          "default": ""
        },
        {
          "displayName": "Company",
          "name": "companyUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Company",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "companyValues",
              "displayName": "Company",
              "values": [
                {
                  "displayName": "Current",
                  "name": "current",
                  "type": "boolean",
                  "default": false
                },
                {
                  "displayName": "Domain",
                  "name": "domain",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Name",
                  "name": "name",
                  "type": "string",
                  "default": ""
                },
                {
                  "displayName": "Title",
                  "name": "title",
                  "type": "string",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Custom Fields",
          "name": "customFieldsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Custom Field",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "customFieldsValues",
              "displayName": "Custom Field",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "description": "The end user specified key of the user defined data",
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "description": "The end user specified value of the user defined data",
                  "default": ""
                }
              ]
            }
          ]
        },
        {
          "displayName": "Emails",
          "name": "emailsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Email",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "emailsValues",
              "displayName": "Email",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the email address. The type can be custom or one of these predefined values."
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The email address"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Events",
          "name": "eventsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Event",
          "description": "An event related to the person",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "eventsValues",
              "displayName": "Event",
              "values": [
                {
                  "displayName": "Date",
                  "name": "date",
                  "type": "dateTime",
                  "default": "",
                  "description": "The date of the event"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Anniversary",
                      "value": "anniversary"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    }
                  ],
                  "default": "",
                  "description": "The type of the event. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        },
        {
          "displayName": "File As",
          "name": "fileAs",
          "type": "string",
          "default": "",
          "description": "The name that should be used to sort the person in a list"
        },
        {
          "displayName": "Group Names or IDs",
          "name": "group",
          "type": "multiOptions",
          "description": "Choose from the list, or specify IDs using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
          "typeOptions": {
            "loadOptionsMethod": "getGroups"
          },
          "default": []
        },
        {
          "displayName": "Honorific Prefix",
          "name": "honorificPrefix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Honorific Suffix",
          "name": "honorificSuffix",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Middle Name",
          "name": "middleName",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Notes",
          "name": "biographies",
          "type": "string",
          "default": ""
        },
        {
          "displayName": "Phone",
          "name": "phoneUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Phone",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "phoneValues",
              "displayName": "Phone",
              "values": [
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Google Voice",
                      "value": "googleVoice"
                    },
                    {
                      "name": "Home",
                      "value": "home"
                    },
                    {
                      "name": "Home Fax",
                      "value": "homeFax"
                    },
                    {
                      "name": "Main",
                      "value": "main"
                    },
                    {
                      "name": "Mobile",
                      "value": "mobile"
                    },
                    {
                      "name": "Other",
                      "value": "other"
                    },
                    {
                      "name": "Other Fax",
                      "value": "otherFax"
                    },
                    {
                      "name": "Pager",
                      "value": "pager"
                    },
                    {
                      "name": "Work",
                      "value": "work"
                    },
                    {
                      "name": "Work Fax",
                      "value": "workFax"
                    },
                    {
                      "name": "Work Mobile",
                      "value": "workMobile"
                    },
                    {
                      "name": "Work Pager",
                      "value": "workPager"
                    }
                  ],
                  "default": ""
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "The phone number"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Relations",
          "name": "relationsUi",
          "type": "fixedCollection",
          "default": {},
          "placeholder": "Add Relation",
          "typeOptions": {
            "multipleValues": true
          },
          "options": [
            {
              "name": "relationsValues",
              "displayName": "Relation",
              "values": [
                {
                  "displayName": "Person",
                  "name": "person",
                  "type": "string",
                  "default": "",
                  "description": "The name of the other person this relation refers to"
                },
                {
                  "displayName": "Type",
                  "name": "type",
                  "type": "options",
                  "options": [
                    {
                      "name": "Assistant",
                      "value": "assistant"
                    },
                    {
                      "name": "Brother",
                      "value": "brother"
                    },
                    {
                      "name": "Child",
                      "value": "child"
                    },
                    {
                      "name": "Domestic Partner",
                      "value": "domesticPartner"
                    },
                    {
                      "name": "Father",
                      "value": "father"
                    },
                    {
                      "name": "Friend",
                      "value": "friend"
                    },
                    {
                      "name": "Manager",
                      "value": "manager"
                    },
                    {
                      "name": "Mother",
                      "value": "mother"
                    },
                    {
                      "name": "Parent",
                      "value": "parent"
                    },
                    {
                      "name": "Referred By",
                      "value": "referredBy"
                    },
                    {
                      "name": "Relative",
                      "value": "relative"
                    },
                    {
                      "name": "Sister",
                      "value": "sister"
                    },
                    {
                      "name": "Spouse",
                      "value": "spouse"
                    }
                  ],
                  "default": "",
                  "description": "The person's relation to the other person. The type can be custom or one of these predefined values."
                }
              ]
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "contact"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a contact"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete a contact"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a contact"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve many contacts"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a contact"
    }
  ]


node_type: nodes-base.googleDocs
package_name: n8n-nodes-base
display_name: Google Docs
description: Consume Google Docs API.
category: input
development_style: programmatic
version: 1
updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Docs node documentation
  description: Learn how to use the Google Docs node in n8n. Follow technical documentation to integrate Google Docs node into your workflows.
  contentType: [integration, reference]
  priority: medium
  ---

  # Google Docs node

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

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

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

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

  ## Operations 

  * Document
      * Create
      * Get
      * Update

  ## Templates and examples

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

  --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": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a document"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a document"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Drive Name or ID",
      "name": "driveId",
      "type": "options",
      "default": "myDrive",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsMethod": "getDrives"
      }
    },
    {
      "displayName": "Folder Name or ID",
      "name": "folderId",
      "type": "options",
      "default": "",
      "description": "Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "loadOptionsDependsOn": [
          "driveId"
        ],
        "loadOptionsMethod": "getFolders"
      }
    },
    {
      "displayName": "Title",
      "name": "title",
      "type": "string",
      "default": "",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "create"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Doc ID or URL",
      "name": "documentURL",
      "type": "string",
      "default": "",
      "description": "The ID in the document URL (or just paste the whole URL)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "get"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "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": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Doc ID or URL",
      "name": "documentURL",
      "type": "string",
      "default": "",
      "description": "The ID in the document URL (or just paste the whole URL)",
      "required": true,
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Simplify",
      "name": "simple",
      "type": "boolean",
      "default": true,
      "description": "Whether to return a simplified version of the response instead of the raw data",
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    },
    {
      "displayName": "Actions",
      "name": "actionsUi",
      "type": "fixedCollection",
      "default": {
        "actionFields": [
          {
            "object": "text",
            "action": "insert",
            "locationChoice": "endOfSegmentLocation",
            "index": 0,
            "text": ""
          }
        ]
      },
      "description": "Actions applied to update the document",
      "options": [
        {
          "name": "actionFields",
          "displayName": "Action Fields",
          "values": [
            {
              "displayName": "Object",
              "name": "object",
              "type": "options",
              "options": [
                {
                  "name": "Footer",
                  "value": "footer"
                },
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Named Range",
                  "value": "namedRange"
                },
                {
                  "name": "Page Break",
                  "value": "pageBreak"
                },
                {
                  "name": "Paragraph Bullets",
                  "value": "paragraphBullets"
                },
                {
                  "name": "Positioned Object",
                  "value": "positionedObject"
                },
                {
                  "name": "Table",
                  "value": "table"
                },
                {
                  "name": "Table Column",
                  "value": "tableColumn"
                },
                {
                  "name": "Table Row",
                  "value": "tableRow"
                },
                {
                  "name": "Text",
                  "value": "text"
                }
              ],
              "description": "The update object",
              "default": "text"
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Find and Replace Text",
                  "value": "replaceAll"
                },
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Create",
                  "value": "create"
                },
                {
                  "name": "Delete",
                  "value": "delete"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "namedRange",
                    "paragraphBullets"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Delete",
                  "value": "delete"
                },
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Insert",
                  "value": "insert"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Action",
              "name": "action",
              "type": "options",
              "options": [
                {
                  "name": "Delete",
                  "value": "delete"
                }
              ],
              "displayOptions": {
                "show": {
                  "object": [
                    "positionedObject"
                  ]
                }
              },
              "description": "The update action",
              "default": ""
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "paragraphBullets",
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header",
                    "paragraphBullets",
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "footer",
                    "header"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "name",
              "type": "string",
              "description": "The name of the Named Range. Names do not need to be unique.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Start Index",
              "name": "startIndex",
              "type": "number",
              "description": "The zero-based start index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "End Index",
              "name": "endIndex",
              "type": "number",
              "description": "The zero-based end index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Style",
              "name": "bulletPreset",
              "type": "options",
              "options": [
                {
                  "name": "Bullet List",
                  "value": "BULLET_DISC_CIRCLE_SQUARE",
                  "description": "A bulleted list with a <code>DISC</code>, <code>CIRCLE</code> and <code>SQUARE</code> bullet glyph for the first 3 list nesting levels"
                },
                {
                  "name": "Checkbox List",
                  "value": "BULLET_CHECKBOX",
                  "description": "A bulleted list with CHECKBOX bullet glyphs for all list nesting levels"
                },
                {
                  "name": "Numbered List",
                  "value": "NUMBERED_DECIMAL_NESTED",
                  "description": "A numbered list with <code>DECIMAL</code> numeric glyphs separated by periods, where each nesting level uses the previous nesting level's glyph as a prefix. For example: 1., 1.1., 2., 2.2 ."
                }
              ],
              "description": "The Preset pattern of bullet glyphs for list",
              "default": "BULLET_DISC_CIRCLE_SQUARE",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ],
                  "action": [
                    "create"
                  ]
                }
              }
            },
            {
              "displayName": "Footer ID",
              "name": "footerId",
              "type": "string",
              "description": "The ID of the footer to delete. To retrieve it, use the <code>get document</code> where you can find under <code>footers</code> attribute.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "footer"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Header ID",
              "name": "headerId",
              "type": "string",
              "description": "The ID of the header to delete. To retrieve it, use the <code>get document</code> where you can find under <code>headers</code> attribute.",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "header"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Specify Range By",
              "name": "namedRangeReference",
              "type": "options",
              "options": [
                {
                  "name": "ID",
                  "value": "namedRangeId"
                },
                {
                  "name": "Name",
                  "value": "name"
                }
              ],
              "description": "The value determines which range or ranges to delete",
              "default": "namedRangeId",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "ID",
              "name": "value",
              "type": "string",
              "description": "The ID of the range",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ],
                  "namedRangeReference": [
                    "namedRangeId"
                  ]
                }
              }
            },
            {
              "displayName": "Name",
              "name": "value",
              "type": "string",
              "description": "The name of the range",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "namedRange"
                  ],
                  "action": [
                    "delete"
                  ],
                  "namedRangeReference": [
                    "name"
                  ]
                }
              }
            },
            {
              "displayName": "Object ID",
              "name": "objectId",
              "type": "string",
              "description": "The ID of the positioned object to delete (An object that is tied to a paragraph and positioned relative to its beginning), See the Google <a href=\"https://developers.google.com/docs/api/reference/rest/v1/PositionedObject\">documentation</a>",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "positionedObject"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table",
                    "tableColumn",
                    "tableRow",
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak",
                    "table",
                    "tableColumn",
                    "tableRow",
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "pageBreak"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "pageBreak"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "typeOptions": {
                "minValue": 1
              },
              "default": 1
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment (use index + 1 to refer to a table)",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "default": 1,
              "typeOptions": {
                "minValue": 1
              }
            },
            {
              "displayName": "Rows",
              "name": "rows",
              "type": "number",
              "description": "The number of rows in the table",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Columns",
              "name": "columns",
              "type": "number",
              "description": "The number of columns in the table",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "table"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Location",
              "name": "locationChoice",
              "type": "options",
              "options": [
                {
                  "name": "At End of Specific Position",
                  "value": "endOfSegmentLocation",
                  "description": "Inserts the text at the end of a header, footer, footnote, or document body"
                },
                {
                  "name": "At Index",
                  "value": "location"
                }
              ],
              "description": "The location where the text will be inserted",
              "default": "endOfSegmentLocation",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "typeOptions": {
                "minValue": 1
              },
              "description": "The zero-based index, relative to the beginning of the specified segment",
              "displayOptions": {
                "show": {
                  "locationChoice": [
                    "location"
                  ],
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              },
              "default": 1
            },
            {
              "displayName": "Text",
              "name": "text",
              "type": "string",
              "description": "The text to insert in the document",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Old Text",
              "name": "text",
              "type": "string",
              "description": "The text to search for in the document",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "New Text",
              "name": "replaceText",
              "type": "string",
              "description": "The text that will replace the matched text",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "Match Case",
              "name": "matchCase",
              "type": "boolean",
              "description": "Whether the search should respect case sensitivity",
              "default": false,
              "displayOptions": {
                "show": {
                  "object": [
                    "text"
                  ],
                  "action": [
                    "replaceAll"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Segment",
              "name": "insertSegment",
              "type": "options",
              "options": [
                {
                  "name": "Header",
                  "value": "header"
                },
                {
                  "name": "Body",
                  "value": "body"
                },
                {
                  "name": "Footer",
                  "value": "footer"
                }
              ],
              "description": "The location where to create the object",
              "default": "body",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets",
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "delete"
                  ]
                }
              }
            },
            {
              "displayName": "Segment ID",
              "name": "segmentId",
              "type": "string",
              "description": "The ID of the header, footer or footnote. The <code>Document → Get</code> operation lists all segment IDs (make sure you disable the <code>simple</code> toggle).",
              "default": "",
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets",
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "delete"
                  ]
                },
                "hide": {
                  "insertSegment": [
                    "body"
                  ]
                }
              }
            },
            {
              "displayName": "Start Index",
              "name": "startIndex",
              "type": "number",
              "description": "The zero-based start index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ]
                }
              }
            },
            {
              "displayName": "End Index",
              "name": "endIndex",
              "type": "number",
              "description": "The zero-based end index of this range",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "paragraphBullets"
                  ]
                }
              }
            },
            {
              "displayName": "Insert Position",
              "name": "insertPosition",
              "type": "options",
              "options": [
                {
                  "name": "Before Content at Index",
                  "value": false
                },
                {
                  "name": "After Content at Index",
                  "value": true
                }
              ],
              "default": true,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ],
                  "action": [
                    "insert"
                  ]
                }
              }
            },
            {
              "displayName": "Index",
              "name": "index",
              "type": "number",
              "description": "The zero-based index, relative to the beginning of the specified segment (use index + 1 to refer to a table)",
              "default": 1,
              "typeOptions": {
                "minValue": 1
              },
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            },
            {
              "displayName": "Row Index",
              "name": "rowIndex",
              "type": "number",
              "description": "The zero-based row index",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            },
            {
              "displayName": "Column Index",
              "name": "columnIndex",
              "type": "number",
              "description": "The zero-based column index",
              "default": 0,
              "displayOptions": {
                "show": {
                  "object": [
                    "tableColumn",
                    "tableRow"
                  ]
                }
              }
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": true
      }
    },
    {
      "displayName": "Update Fields",
      "name": "updateFields",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Write Control Object",
          "name": "writeControlObject",
          "values": [
            {
              "displayName": "Revision Mode",
              "name": "control",
              "type": "options",
              "options": [
                {
                  "name": "Target",
                  "value": "targetRevisionId",
                  "description": "Apply changes to the latest revision. Otherwise changes will not be processed."
                },
                {
                  "name": "Required",
                  "value": "requiredRevisionId",
                  "description": "Apply changes to the provided revision while incorporating other collaborators' changes. This mode is used for the recent revision, Otherwise changes will not be processed."
                }
              ],
              "default": "requiredRevisionId",
              "description": "Determines how the changes are applied to the revision"
            },
            {
              "displayName": "Revision ID",
              "name": "value",
              "type": "string",
              "default": ""
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "document"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create"
    },
    {
      "operation": "get",
      "name": "Get"
    },
    {
      "operation": "update",
      "name": "Update"
    }
  ]

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


node_type: nodes-base.googleDrive
package_name: n8n-nodes-base
display_name: Google Drive
description: Access data on Google Drive
category: input
development_style: programmatic
version: 3
updated_at: 2025-06-16 15:36:26
documentation:
  ---
  #https://www.notion.so/n8n/Frontmatter-432c2b8dff1f43d4b1c8d20075510fe4
  title: Google Drive node documentation
  description: Learn how to use the Google Drive node in n8n. Follow technical documentation to integrate Google Drive node into your workflows.
  contentType: [integration, reference]
  priority: high
  ---

  # Google Drive node

  Use the Google Drive node to automate work in Google Drive, and integrate Google Drive with other applications. n8n has built-in support for a wide range of Google Drive features, including creating, updating, listing, deleting, and getting drives, files, and folders. 

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

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

  ## Operations

  * **File**
      * [**Copy**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#copy-a-file) a file
      * [**Create from text**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#create-from-text)
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#delete-a-file) a file
      * [**Download**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#download-a-file) a file
      * [**Move**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#move-a-file) a file
      * [**Share**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#share-a-file) a file
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#update-a-file) a file
      * [**Upload**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-operations.md#upload-a-file) a file
  * **File/Folder**
      * [**Search**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/file-folder-operations.md#search-files-and-folders) files and folders
  * **Folder**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#create-a-folder) a folder
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#delete-a-folder) a folder
      * [**Share**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/folder-operations.md#share-a-folder) a folder
  * **Shared Drive**
      * [**Create**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#create-a-shared-drive) a shared drive
      * [**Delete**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#delete-a-shared-drive) a shared drive
      * [**Get**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#get-a-shared-drive) a shared drive
      * [**Get Many**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#get-many-shared-drives) shared drives
      * [**Update**](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/shared-drive-operations.md#update-a-shared-drive) a shared drive

  ## Templates and examples

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

  ## Common issues

  For common questions or issues and suggested solutions, refer to [Common issues](/integrations/builtin/app-nodes/n8n-nodes-base.googledrive/common-issues.md).

  --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"
        }
      ]
    },
    {
      "displayName": "Resource",
      "name": "resource",
      "type": "options",
      "default": "file",
      "options": [
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "File/Folder",
          "value": "fileFolder"
        },
        {
          "name": "Folder",
          "value": "folder"
        },
        {
          "name": "Shared Drive",
          "value": "drive"
        }
      ],
      "noDataExpression": true
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a shared drive",
          "action": "Create shared drive"
        },
        {
          "name": "Delete",
          "value": "deleteDrive",
          "description": "Permanently delete a shared drive",
          "action": "Delete shared drive"
        },
        {
          "name": "Get",
          "value": "get",
          "description": "Get a shared drive",
          "action": "Get shared drive"
        },
        {
          "name": "Get Many",
          "value": "list",
          "description": "Get the list of shared drives",
          "action": "Get many shared drives"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a shared drive",
          "action": "Update shared drive"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the shared drive to create",
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Capabilities",
          "name": "capabilities",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Can Add Children",
              "name": "canAddChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can add children to folders in this shared drive"
            },
            {
              "displayName": "Can Change Copy Requires Writer Permission Restriction",
              "name": "canChangeCopyRequiresWriterPermissionRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the copyRequiresWriterPermission restriction of this shared drive"
            },
            {
              "displayName": "Can Change Domain Users Only Restriction",
              "name": "canChangeDomainUsersOnlyRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the domainUsersOnly restriction of this shared drive"
            },
            {
              "displayName": "Can Change Drive Background",
              "name": "canChangeDriveBackground",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the background of this shared drive"
            },
            {
              "displayName": "Can Change Drive Members Only Restriction",
              "name": "canChangeDriveMembersOnlyRestriction",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can change the driveMembersOnly restriction of this shared drive"
            },
            {
              "displayName": "Can Comment",
              "name": "canComment",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can comment on files in this shared drive"
            },
            {
              "displayName": "Can Copy",
              "name": "canCopy",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can copy files in this shared drive"
            },
            {
              "displayName": "Can Delete Children",
              "name": "canDeleteChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can delete children from folders in this shared drive"
            },
            {
              "displayName": "Can Delete Drive",
              "name": "canDeleteDrive",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can delete this shared drive. Attempting to delete the shared drive may still fail if there are untrashed items inside the shared drive."
            },
            {
              "displayName": "Can Download",
              "name": "canDownload",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can download files in this shared drive"
            },
            {
              "displayName": "Can Edit",
              "name": "canEdit",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can edit files in this shared drive"
            },
            {
              "displayName": "Can List Children",
              "name": "canListChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can list the children of folders in this shared drive"
            },
            {
              "displayName": "Can Manage Members",
              "name": "canManageMembers",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can add members to this shared drive or remove them or change their role"
            },
            {
              "displayName": "Can Read Revisions",
              "name": "canReadRevisions",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can read the revisions resource of files in this shared drive"
            },
            {
              "displayName": "Can Rename",
              "name": "canRename",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can rename files or folders in this shared drive"
            },
            {
              "displayName": "Can Rename Drive",
              "name": "canRenameDrive",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can rename this shared drive"
            },
            {
              "displayName": "Can Share",
              "name": "canShare",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can share files or folders in this shared drive"
            },
            {
              "displayName": "Can Trash Children",
              "name": "canTrashChildren",
              "type": "boolean",
              "default": false,
              "description": "Whether the current user can trash children from folders in this shared drive"
            }
          ]
        },
        {
          "displayName": "Color RGB",
          "name": "colorRgb",
          "type": "color",
          "default": "",
          "description": "The color of this shared drive as an RGB hex string"
        },
        {
          "displayName": "Hidden",
          "name": "hidden",
          "type": "boolean",
          "default": false,
          "description": "Whether the shared drive is hidden from default view"
        },
        {
          "displayName": "Restrictions",
          "name": "restrictions",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Admin Managed Restrictions",
              "name": "adminManagedRestrictions",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Copy Requires Writer Permission",
              "name": "copyRequiresWriterPermission",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Domain Users Only",
              "name": "domainUsersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive."
            },
            {
              "displayName": "Drive Members Only",
              "name": "driveMembersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to items inside this shared drive is restricted to its members"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "deleteDrive"
          ]
        }
      }
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to get",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "get"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "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": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 100,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "resource": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1,
        "maxValue": 200
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Query",
          "name": "q",
          "type": "string",
          "default": "",
          "description": "Query string for searching shared drives. See the <a href=\"https://developers.google.com/drive/api/v3/search-shareddrives\">\"Search for shared drives\"</a> guide for supported syntax."
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to issue the request as a domain administrator; if set to true, then the requester will be granted access if they are an administrator of the domain to which the shared drive belongs"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "list"
          ]
        }
      }
    },
    {
      "displayName": "Shared Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The shared drive to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "drive"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Update Fields",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Color RGB",
          "name": "colorRgb",
          "type": "color",
          "default": "",
          "description": "The color of this shared drive as an RGB hex string"
        },
        {
          "displayName": "Name",
          "name": "name",
          "type": "string",
          "default": "",
          "description": "The updated name of the shared drive"
        },
        {
          "displayName": "Restrictions",
          "name": "restrictions",
          "type": "collection",
          "placeholder": "Add Field",
          "default": {},
          "options": [
            {
              "displayName": "Admin Managed Restrictions",
              "name": "adminManagedRestrictions",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Copy Requires Writer Permission",
              "name": "copyRequiresWriterPermission",
              "type": "boolean",
              "default": false,
              "description": "Whether the options to copy, print, or download files inside this shared drive, should be disabled for readers and commenters. When this restriction is set to true, it will override the similarly named field to true for any file inside this shared drive."
            },
            {
              "displayName": "Domain Users Only",
              "name": "domainUsersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to this shared drive and items inside this shared drive is restricted to users of the domain to which this shared drive belongs. This restriction may be overridden by other sharing policies controlled outside of this shared drive."
            },
            {
              "displayName": "Drive Members Only",
              "name": "driveMembersOnly",
              "type": "boolean",
              "default": false,
              "description": "Whether access to items inside this shared drive is restricted to its members"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "operation": [
            "update"
          ],
          "resource": [
            "drive"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "description": "Create a copy of an existing file",
          "action": "Copy file"
        },
        {
          "name": "Create From Text",
          "value": "createFromText",
          "description": "Create a file from a provided text",
          "action": "Create file from text"
        },
        {
          "name": "Delete",
          "value": "deleteFile",
          "description": "Permanently delete a file",
          "action": "Delete a file"
        },
        {
          "name": "Download",
          "value": "download",
          "description": "Download a file",
          "action": "Download file"
        },
        {
          "name": "Move",
          "value": "move",
          "description": "Move a file to another folder",
          "action": "Move file"
        },
        {
          "name": "Share",
          "value": "share",
          "description": "Add sharing permissions to a file",
          "action": "Share file"
        },
        {
          "name": "Update",
          "value": "update",
          "description": "Update a file",
          "action": "Update file"
        },
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload an existing file to Google Drive",
          "action": "Upload file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to copy",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the new file. If not set, “Copy of {original file name}” will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Copy In The Same Folder",
      "name": "sameFolder",
      "type": "boolean",
      "default": true,
      "description": "Whether to copy the file in the same folder as the original file",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to save the copied file",
      "required": true,
      "displayOptions": {
        "show": {
          "sameFolder": [
            false
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to save the copied file",
      "required": true,
      "displayOptions": {
        "show": {
          "sameFolder": [
            false
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Copy Requires Writer Permission",
          "name": "copyRequiresWriterPermission",
          "type": "boolean",
          "default": false,
          "description": "Whether the options to copy, print, or download this file, should be disabled for readers and commenters"
        },
        {
          "displayName": "Description",
          "name": "description",
          "type": "string",
          "default": "",
          "description": "A short description of the file"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "copy"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "deleteFile"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delete Permanently",
          "name": "deletePermanently",
          "type": "boolean",
          "default": false,
          "description": "Whether to delete the file immediately. If false, the file will be moved to the trash."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "deleteFile"
          ]
        }
      }
    },
    {
      "displayName": "File Content",
      "name": "content",
      "type": "string",
      "default": "",
      "description": "The text to create the file with",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      },
      "typeOptions": {
        "rows": 2
      }
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the file you want to create. If not specified, 'Untitled' will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to create the new file",
      "required": false,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to create the new file",
      "required": false,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Convert to Google Document",
          "name": "convertToGoogleDocument",
          "type": "boolean",
          "default": false,
          "description": "Whether to create a Google Document (instead of the .txt default format)",
          "hint": "Google Docs API has to be enabled in the <a href=\"https://console.developers.google.com/apis/library/docs.googleapis.com\" target=\"_blank\">Google API Console</a>."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "createFromText"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to download",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Put Output File in Field",
          "name": "binaryPropertyName",
          "type": "string",
          "placeholder": "e.g. data",
          "default": "data",
          "description": "Use this field name in the following nodes, to use the binary file data",
          "hint": "The name of the output binary field to put the file in"
        },
        {
          "displayName": "Google File Conversion",
          "name": "googleFileConversion",
          "type": "fixedCollection",
          "typeOptions": {
            "multipleValues": false
          },
          "default": {},
          "placeholder": "Add Conversion",
          "options": [
            {
              "displayName": "Conversion",
              "name": "conversion",
              "values": [
                {
                  "displayName": "Google Docs",
                  "name": "docsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "HTML",
                      "value": "text/html"
                    },
                    {
                      "name": "MS Word Document",
                      "value": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
                    },
                    {
                      "name": "Open Office Document",
                      "value": "application/vnd.oasis.opendocument.text"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    },
                    {
                      "name": "Rich Text (rtf)",
                      "value": "application/rtf"
                    },
                    {
                      "name": "Text (txt)",
                      "value": "text/plain"
                    }
                  ],
                  "default": "text/html",
                  "description": "Format used to export when downloading Google Docs files"
                },
                {
                  "displayName": "Google Drawings",
                  "name": "drawingsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "JPEG",
                      "value": "image/jpeg"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    },
                    {
                      "name": "PNG",
                      "value": "image/png"
                    },
                    {
                      "name": "SVG",
                      "value": "image/svg+xml"
                    }
                  ],
                  "default": "image/jpeg",
                  "description": "Format used to export when downloading Google Drawings files"
                },
                {
                  "displayName": "Google Slides",
                  "name": "slidesToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "MS PowerPoint",
                      "value": "application/vnd.openxmlformats-officedocument.presentationml.presentation"
                    },
                    {
                      "name": "OpenOffice Presentation",
                      "value": "application/vnd.oasis.opendocument.presentation"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    }
                  ],
                  "default": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
                  "description": "Format used to export when downloading Google Slides files"
                },
                {
                  "displayName": "Google Sheets",
                  "name": "sheetsToFormat",
                  "type": "options",
                  "options": [
                    {
                      "name": "CSV",
                      "value": "text/csv"
                    },
                    {
                      "name": "MS Excel",
                      "value": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
                    },
                    {
                      "name": "Open Office Sheet",
                      "value": "application/vnd.oasis.opendocument.spreadsheet"
                    },
                    {
                      "name": "PDF",
                      "value": "application/pdf"
                    }
                  ],
                  "default": "text/csv",
                  "description": "Format used to export when downloading Google Sheets files"
                }
              ]
            }
          ]
        },
        {
          "displayName": "File Name",
          "name": "fileName",
          "type": "string",
          "default": "",
          "description": "File name. Ex: data.pdf."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "download"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to move",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to move the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      }
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to move the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "move"
          ]
        }
      }
    },
    {
      "displayName": "File",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to share",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      }
    },
    {
      "displayName": "Permissions",
      "name": "permissionsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Permission",
          "name": "permissionsValues",
          "values": [
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Defines what users can do with the file or folder",
              "options": [
                {
                  "name": "Commenter",
                  "value": "commenter"
                },
                {
                  "name": "File Organizer",
                  "value": "fileOrganizer"
                },
                {
                  "name": "Organizer",
                  "value": "organizer"
                },
                {
                  "name": "Owner",
                  "value": "owner"
                },
                {
                  "name": "Reader",
                  "value": "reader"
                },
                {
                  "name": "Writer",
                  "value": "writer"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "User",
                  "value": "user"
                },
                {
                  "name": "Group",
                  "value": "group"
                },
                {
                  "name": "Domain",
                  "value": "domain"
                },
                {
                  "name": "Anyone",
                  "value": "anyone"
                }
              ],
              "default": "",
              "description": "The scope of the permission. A permission with type=user applies to a specific user whereas a permission with type=domain applies to everyone in a specific domain."
            },
            {
              "displayName": "Email Address",
              "name": "emailAddress",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "user",
                    "group"
                  ]
                }
              },
              "placeholder": "“e.g. name@mail.com",
              "default": "",
              "description": "The email address of the user or group to which this permission refers"
            },
            {
              "displayName": "Domain",
              "name": "domain",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain"
                  ]
                }
              },
              "placeholder": "e.g. mycompany.com",
              "default": "",
              "description": "The domain to which this permission refers"
            },
            {
              "displayName": "Allow File Discovery",
              "name": "allowFileDiscovery",
              "type": "boolean",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain",
                    "anyone"
                  ]
                }
              },
              "default": false,
              "description": "Whether to allow the file to be discovered through search"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": false
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email Message",
          "name": "emailMessage",
          "type": "string",
          "default": "",
          "description": "A plain text custom message to include in the notification email",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Move To New Owners Root",
          "name": "moveToNewOwnersRoot",
          "type": "boolean",
          "default": false,
          "description": "<p>This parameter only takes effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item.</p><p>When set to true, the item is moved to the new owner's My Drive root folder and all prior parents removed.</p>"
        },
        {
          "displayName": "Send Notification Email",
          "name": "sendNotificationEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether to send a notification email when sharing to users or groups"
        },
        {
          "displayName": "Transfer Ownership",
          "name": "transferOwnership",
          "type": "boolean",
          "default": false,
          "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer"
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to perform the operation as domain administrator, i.e. if you are an administrator of the domain to which the shared drive belongs, you will be granted access automatically."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "share"
          ]
        }
      }
    },
    {
      "displayName": "File to Update",
      "name": "fileId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The file to update",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Change File Content",
      "name": "changeFileContent",
      "type": "boolean",
      "default": false,
      "description": "Whether to send a new binary data to update the file",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "inputDataFieldName",
      "type": "string",
      "default": "data",
      "description": "Find the name of input field containing the binary data to update the file in the Input panel on the left, in the Binary tab",
      "displayOptions": {
        "show": {
          "changeFileContent": [
            true
          ],
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "New Updated File Name",
      "name": "newUpdatedFileName",
      "type": "string",
      "default": "",
      "description": "If not specified, the file name will not be changed",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Move to Trash",
          "name": "trashed",
          "type": "boolean",
          "default": false,
          "description": "Whether to move a file to the trash. Only the owner may trash a file."
        },
        {
          "displayName": "Return Fields",
          "name": "fields",
          "type": "multiOptions",
          "options": [
            {
              "name": "[All]",
              "value": "*",
              "description": "All fields"
            },
            {
              "name": "explicitlyTrashed",
              "value": "explicitlyTrashed"
            },
            {
              "name": "exportLinks",
              "value": "exportLinks"
            },
            {
              "name": "hasThumbnail",
              "value": "hasThumbnail"
            },
            {
              "name": "iconLink",
              "value": "iconLink"
            },
            {
              "name": "ID",
              "value": "id"
            },
            {
              "name": "Kind",
              "value": "kind"
            },
            {
              "name": "mimeType",
              "value": "mimeType"
            },
            {
              "name": "Name",
              "value": "name"
            },
            {
              "name": "Permissions",
              "value": "permissions"
            },
            {
              "name": "Shared",
              "value": "shared"
            },
            {
              "name": "Spaces",
              "value": "spaces"
            },
            {
              "name": "Starred",
              "value": "starred"
            },
            {
              "name": "thumbnailLink",
              "value": "thumbnailLink"
            },
            {
              "name": "Trashed",
              "value": "trashed"
            },
            {
              "name": "Version",
              "value": "version"
            },
            {
              "name": "webViewLink",
              "value": "webViewLink"
            }
          ],
          "default": [],
          "description": "The fields to return"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "update"
          ]
        }
      }
    },
    {
      "displayName": "Input Data Field Name",
      "name": "inputDataFieldName",
      "type": "string",
      "default": "data",
      "description": "Find the name of input field containing the binary data to update the file in the Input panel on the left, in the Binary tab",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "File Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "If not specified, the original file name will be used",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to upload the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The folder where to upload the file",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "APP Properties",
          "name": "appPropertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are private to the requesting app",
          "options": [
            {
              "name": "appPropertyValues",
              "displayName": "APP Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Properties",
          "name": "propertiesUi",
          "placeholder": "Add Property",
          "type": "fixedCollection",
          "default": {},
          "typeOptions": {
            "multipleValues": true
          },
          "description": "A collection of arbitrary key-value pairs which are visible to all apps",
          "options": [
            {
              "name": "propertyValues",
              "displayName": "Property",
              "values": [
                {
                  "displayName": "Key",
                  "name": "key",
                  "type": "string",
                  "default": "",
                  "description": "Name of the key to add"
                },
                {
                  "displayName": "Value",
                  "name": "value",
                  "type": "string",
                  "default": "",
                  "description": "Value to set for the key"
                }
              ]
            }
          ]
        },
        {
          "displayName": "Keep Revision Forever",
          "name": "keepRevisionForever",
          "type": "boolean",
          "default": false,
          "description": "Whether to set the 'keepForever' field in the new head revision. This is only applicable to files with binary content in Google Drive. Only 200 revisions for the file can be kept forever. If the limit is reached, try deleting pinned revisions."
        },
        {
          "displayName": "OCR Language",
          "name": "ocrLanguage",
          "type": "string",
          "default": "",
          "placeholder": "e.g. en",
          "description": "A language hint for OCR processing during image import (ISO 639-1 code)"
        },
        {
          "displayName": "Use Content As Indexable Text",
          "name": "useContentAsIndexableText",
          "type": "boolean",
          "default": false,
          "description": "Whether to use the uploaded content as indexable text"
        },
        {
          "displayName": "Simplify Output",
          "name": "simplifyOutput",
          "type": "boolean",
          "default": true,
          "description": "Whether to return a simplified version of the response instead of all fields"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ],
          "operation": [
            "upload"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "description": "Search or list files and folders",
          "action": "Search files and folders"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Search Method",
      "name": "searchMethod",
      "type": "options",
      "default": "name",
      "description": "Whether to search for the file/folder name or use a query string",
      "options": [
        {
          "name": "Search File/Folder Name",
          "value": "name"
        },
        {
          "name": "Advanced Search",
          "value": "query"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Search Query",
      "name": "queryString",
      "type": "string",
      "default": "",
      "description": "The name of the file or folder to search for. Returns also files and folders whose names partially match this search term.",
      "displayOptions": {
        "show": {
          "searchMethod": [
            "name"
          ],
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Query String",
      "name": "queryString",
      "type": "string",
      "default": "",
      "description": "Use the Google query strings syntax to search for a specific set of files or folders. <a href=\"https://developers.google.com/drive/api/v3/search-files\" target=\"_blank\">Learn more</a>.",
      "displayOptions": {
        "show": {
          "searchMethod": [
            "query"
          ],
          "resource": [
            "fileFolder"
          ],
          "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": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Limit",
      "name": "limit",
      "type": "number",
      "default": 50,
      "description": "Max number of results to return",
      "displayOptions": {
        "show": {
          "returnAll": [
            false
          ],
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      },
      "typeOptions": {
        "minValue": 1
      }
    },
    {
      "displayName": "Filter",
      "name": "filter",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Drive",
          "name": "driveId",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": "My Drive"
          },
          "required": false,
          "modes": [
            {
              "displayName": "Drive",
              "name": "list",
              "type": "list",
              "placeholder": "Select a drive...",
              "typeOptions": {
                "searchListMethod": "driveSearchWithDefault",
                "searchable": true
              }
            },
            {
              "displayName": "Link",
              "name": "url",
              "type": "string",
              "placeholder": "https://drive.google.com/drive/folders/0AaaaaAAAAAAAaa",
              "extractValue": {
                "type": "regex",
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
              },
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                    "errorMessage": "Not a valid Google Drive Drive URL"
                  }
                }
              ]
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "hint": "The ID of the shared drive",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "[a-zA-Z0-9\\-_]{2,}",
                    "errorMessage": "Not a valid Google Drive Drive ID"
                  }
                }
              ],
              "url": "=https://drive.google.com/drive/folders/{{$value}}"
            }
          ],
          "description": "The drive you want to search in. By default, the personal \"My Drive\" is used."
        },
        {
          "displayName": "Folder",
          "name": "folderId",
          "type": "resourceLocator",
          "default": {
            "mode": "list",
            "value": "root",
            "cachedResultName": "/ (Root folder)"
          },
          "required": false,
          "modes": [
            {
              "displayName": "Folder",
              "name": "list",
              "type": "list",
              "placeholder": "Select a folder...",
              "typeOptions": {
                "searchListMethod": "folderSearchWithDefault",
                "searchable": true
              }
            },
            {
              "displayName": "Link",
              "name": "url",
              "type": "string",
              "placeholder": "e.g. https://drive.google.com/drive/folders/1Tx9WHbA3wBpPB4C_HcoZDH9WZFWYxAMU",
              "extractValue": {
                "type": "regex",
                "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)"
              },
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "https:\\/\\/drive\\.google\\.com(?:\\/.*|)\\/folders\\/([0-9a-zA-Z\\-_]+)(?:\\/.*|)",
                    "errorMessage": "Not a valid Google Drive Folder URL"
                  }
                }
              ]
            },
            {
              "displayName": "ID",
              "name": "id",
              "type": "string",
              "placeholder": "e.g. 1anGBg0b5re2VtF2bKu201_a-Vnz5BHq9Y4r-yBDAj5A",
              "validation": [
                {
                  "type": "regex",
                  "properties": {
                    "regex": "[a-zA-Z0-9\\-_]{2,}",
                    "errorMessage": "Not a valid Google Drive Folder ID"
                  }
                }
              ],
              "url": "=https://drive.google.com/drive/folders/{{$value}}"
            }
          ],
          "description": "The folder you want to search in. By default, the root folder of the drive is used. If you select a folder other than the root folder, only the direct children will be included."
        },
        {
          "displayName": "What to Search",
          "name": "whatToSearch",
          "type": "options",
          "default": "all",
          "options": [
            {
              "name": "Files and Folders",
              "value": "all"
            },
            {
              "name": "Files",
              "value": "files"
            },
            {
              "name": "Folders",
              "value": "folders"
            }
          ]
        },
        {
          "displayName": "File Types",
          "name": "fileTypes",
          "type": "multiOptions",
          "default": [],
          "description": "Return only items corresponding to the selected MIME types",
          "options": [
            {
              "name": "All",
              "value": "*",
              "description": "Return all file types"
            },
            {
              "name": "3rd Party Shortcut",
              "value": "application/vnd.google-apps.drive-sdk"
            },
            {
              "name": "Audio",
              "value": "application/vnd.google-apps.audio"
            },
            {
              "name": "Folder",
              "value": "application/vnd.google-apps.folder"
            },
            {
              "name": "Google Apps Scripts",
              "value": "application/vnd.google-apps.script"
            },
            {
              "name": "Google Docs",
              "value": "application/vnd.google-apps.document"
            },
            {
              "name": "Google Drawing",
              "value": "application/vnd.google-apps.drawing"
            },
            {
              "name": "Google Forms",
              "value": "application/vnd.google-apps.form"
            },
            {
              "name": "Google Fusion Tables",
              "value": "application/vnd.google-apps.fusiontable"
            },
            {
              "name": "Google My Maps",
              "value": "application/vnd.google-apps.map"
            },
            {
              "name": "Google Sheets",
              "value": "application/vnd.google-apps.spreadsheet"
            },
            {
              "name": "Google Sites",
              "value": "application/vnd.google-apps.sites"
            },
            {
              "name": "Google Slides",
              "value": "application/vnd.google-apps.presentation"
            },
            {
              "name": "Photo",
              "value": "application/vnd.google-apps.photo"
            },
            {
              "name": "Unknown",
              "value": "application/vnd.google-apps.unknown"
            },
            {
              "name": "Video",
              "value": "application/vnd.google-apps.video"
            }
          ],
          "displayOptions": {
            "show": {
              "whatToSearch": [
                "all"
              ]
            }
          }
        },
        {
          "displayName": "File Types",
          "name": "fileTypes",
          "type": "multiOptions",
          "default": [],
          "description": "Return only items corresponding to the selected MIME types",
          "options": [
            {
              "name": "All",
              "value": "*",
              "description": "Return all file types"
            },
            {
              "name": "3rd Party Shortcut",
              "value": "application/vnd.google-apps.drive-sdk"
            },
            {
              "name": "Audio",
              "value": "application/vnd.google-apps.audio"
            },
            {
              "name": "Google Apps Scripts",
              "value": "application/vnd.google-apps.script"
            },
            {
              "name": "Google Docs",
              "value": "application/vnd.google-apps.document"
            },
            {
              "name": "Google Drawing",
              "value": "application/vnd.google-apps.drawing"
            },
            {
              "name": "Google Forms",
              "value": "application/vnd.google-apps.form"
            },
            {
              "name": "Google Fusion Tables",
              "value": "application/vnd.google-apps.fusiontable"
            },
            {
              "name": "Google My Maps",
              "value": "application/vnd.google-apps.map"
            },
            {
              "name": "Google Sheets",
              "value": "application/vnd.google-apps.spreadsheet"
            },
            {
              "name": "Google Sites",
              "value": "application/vnd.google-apps.sites"
            },
            {
              "name": "Google Slides",
              "value": "application/vnd.google-apps.presentation"
            },
            {
              "name": "Photo",
              "value": "application/vnd.google-apps.photo"
            },
            {
              "name": "Unknown",
              "value": "application/vnd.google-apps.unknown"
            },
            {
              "name": "Video",
              "value": "application/vnd.google-apps.video"
            }
          ],
          "displayOptions": {
            "show": {
              "whatToSearch": [
                "files"
              ]
            }
          }
        },
        {
          "displayName": "Include Trashed Items",
          "name": "includeTrashed",
          "type": "boolean",
          "default": false,
          "description": "Whether to return also items in the Drive's bin"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Fields",
          "name": "fields",
          "type": "multiOptions",
          "options": [
            {
              "name": "*",
              "value": "*",
              "description": "All fields"
            },
            {
              "name": "explicitlyTrashed",
              "value": "explicitlyTrashed"
            },
            {
              "name": "exportLinks",
              "value": "exportLinks"
            },
            {
              "name": "hasThumbnail",
              "value": "hasThumbnail"
            },
            {
              "name": "iconLink",
              "value": "iconLink"
            },
            {
              "name": "ID",
              "value": "id"
            },
            {
              "name": "Kind",
              "value": "kind"
            },
            {
              "name": "mimeType",
              "value": "mimeType"
            },
            {
              "name": "Name",
              "value": "name"
            },
            {
              "name": "Permissions",
              "value": "permissions"
            },
            {
              "name": "Shared",
              "value": "shared"
            },
            {
              "name": "Spaces",
              "value": "spaces"
            },
            {
              "name": "Starred",
              "value": "starred"
            },
            {
              "name": "thumbnailLink",
              "value": "thumbnailLink"
            },
            {
              "name": "Trashed",
              "value": "trashed"
            },
            {
              "name": "Version",
              "value": "version"
            },
            {
              "name": "webViewLink",
              "value": "webViewLink"
            }
          ],
          "default": [],
          "description": "The fields to return"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "fileFolder"
          ],
          "operation": [
            "search"
          ]
        }
      }
    },
    {
      "displayName": "Operation",
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "description": "Create a folder",
          "action": "Create folder"
        },
        {
          "name": "Delete",
          "value": "deleteFolder",
          "description": "Permanently delete a folder",
          "action": "Delete folder"
        },
        {
          "name": "Share",
          "value": "share",
          "description": "Add sharing permissions to a folder",
          "action": "Share folder"
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "displayName": "Folder Name",
      "name": "name",
      "type": "string",
      "default": "",
      "description": "The name of the new folder. If not set, 'Untitled' will be used.",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Parent Drive",
      "name": "driveId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "My Drive"
      },
      "description": "The drive where to create the new folder",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Parent Folder",
      "name": "folderId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": "root",
        "cachedResultName": "/ (Root folder)"
      },
      "description": "The parent folder where to create the new folder",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Simplify Output",
          "name": "simplifyOutput",
          "type": "boolean",
          "default": true,
          "description": "Whether to return a simplified version of the response instead of all fields"
        },
        {
          "displayName": "Folder Color",
          "name": "folderColorRgb",
          "type": "color",
          "default": "",
          "description": "The color of the folder as an RGB hex string. If an unsupported color is specified, the closest color in the palette will be used instead."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "create"
          ]
        }
      }
    },
    {
      "displayName": "Folder",
      "name": "folderNoRootId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The folder to delete",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "deleteFolder"
          ]
        }
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Delete Permanently",
          "name": "deletePermanently",
          "type": "boolean",
          "default": false,
          "description": "Whether to delete the folder immediately. If false, the folder will be moved to the trash."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "deleteFolder"
          ]
        }
      }
    },
    {
      "displayName": "Folder",
      "name": "folderNoRootId",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "description": "The folder to share",
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      }
    },
    {
      "displayName": "Permissions",
      "name": "permissionsUi",
      "type": "fixedCollection",
      "default": {},
      "options": [
        {
          "displayName": "Permission",
          "name": "permissionsValues",
          "values": [
            {
              "displayName": "Role",
              "name": "role",
              "type": "options",
              "description": "Defines what users can do with the file or folder",
              "options": [
                {
                  "name": "Commenter",
                  "value": "commenter"
                },
                {
                  "name": "File Organizer",
                  "value": "fileOrganizer"
                },
                {
                  "name": "Organizer",
                  "value": "organizer"
                },
                {
                  "name": "Owner",
                  "value": "owner"
                },
                {
                  "name": "Reader",
                  "value": "reader"
                },
                {
                  "name": "Writer",
                  "value": "writer"
                }
              ],
              "default": ""
            },
            {
              "displayName": "Type",
              "name": "type",
              "type": "options",
              "options": [
                {
                  "name": "User",
                  "value": "user"
                },
                {
                  "name": "Group",
                  "value": "group"
                },
                {
                  "name": "Domain",
                  "value": "domain"
                },
                {
                  "name": "Anyone",
                  "value": "anyone"
                }
              ],
              "default": "",
              "description": "The scope of the permission. A permission with type=user applies to a specific user whereas a permission with type=domain applies to everyone in a specific domain."
            },
            {
              "displayName": "Email Address",
              "name": "emailAddress",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "user",
                    "group"
                  ]
                }
              },
              "placeholder": "“e.g. name@mail.com",
              "default": "",
              "description": "The email address of the user or group to which this permission refers"
            },
            {
              "displayName": "Domain",
              "name": "domain",
              "type": "string",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain"
                  ]
                }
              },
              "placeholder": "e.g. mycompany.com",
              "default": "",
              "description": "The domain to which this permission refers"
            },
            {
              "displayName": "Allow File Discovery",
              "name": "allowFileDiscovery",
              "type": "boolean",
              "displayOptions": {
                "show": {
                  "type": [
                    "domain",
                    "anyone"
                  ]
                }
              },
              "default": false,
              "description": "Whether to allow the file to be discovered through search"
            }
          ]
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      },
      "typeOptions": {
        "multipleValues": false
      }
    },
    {
      "displayName": "Options",
      "name": "options",
      "type": "collection",
      "default": {},
      "options": [
        {
          "displayName": "Email Message",
          "name": "emailMessage",
          "type": "string",
          "default": "",
          "description": "A plain text custom message to include in the notification email",
          "typeOptions": {
            "rows": 2
          }
        },
        {
          "displayName": "Move To New Owners Root",
          "name": "moveToNewOwnersRoot",
          "type": "boolean",
          "default": false,
          "description": "<p>This parameter only takes effect if the item is not in a shared drive and the request is attempting to transfer the ownership of the item.</p><p>When set to true, the item is moved to the new owner's My Drive root folder and all prior parents removed.</p>"
        },
        {
          "displayName": "Send Notification Email",
          "name": "sendNotificationEmail",
          "type": "boolean",
          "default": false,
          "description": "Whether to send a notification email when sharing to users or groups"
        },
        {
          "displayName": "Transfer Ownership",
          "name": "transferOwnership",
          "type": "boolean",
          "default": false,
          "description": "Whether to transfer ownership to the specified user and downgrade the current owner to a writer"
        },
        {
          "displayName": "Use Domain Admin Access",
          "name": "useDomainAdminAccess",
          "type": "boolean",
          "default": false,
          "description": "Whether to perform the operation as domain administrator, i.e. if you are an administrator of the domain to which the shared drive belongs, you will be granted access automatically."
        }
      ],
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ],
          "operation": [
            "share"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "create",
      "name": "Create",
      "description": "Create a shared drive"
    },
    {
      "operation": "deleteDrive",
      "name": "Delete",
      "description": "Permanently delete a shared drive"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get a shared drive"
    },
    {
      "operation": "list",
      "name": "Get Many",
      "description": "Get the list of shared drives"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update a shared drive"
    }
  ]

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


