# nodes

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

output_names:
  [
  "Tool"
  ]

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

  # Google Books node

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

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

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

  ## Operations

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

  ## Templates and examples

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

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

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

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

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


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

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

  # Google Books node

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

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

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

  ## Operations

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

  ## Templates and examples

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

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

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

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

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


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

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

output_names:
  [
  "Tool"
  ]

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

  # Google Calendar node

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

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

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

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

  ## Operations

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

  ## Templates and examples

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

  ## Related resources

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

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

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

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

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


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

outputs:
  [
  "main"
  ]

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

  # Google Calendar node

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

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

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

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

  ## Operations

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

  ## Templates and examples

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

  ## Related resources

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

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

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

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

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


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

outputs:
  [
  "main"
  ]

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

  # Google Calendar Trigger node

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

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

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

  ## Events

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

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

  ## Related resources

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

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

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

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


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

output_names:
  [
  "Tool"
  ]

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

  # Google Chat node

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

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

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

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

  ## Operations

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

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

  ## Templates and examples

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

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

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

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


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

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

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

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


node_type: nodes-base.googleCloudNaturalLanguageTool
package_name: n8n-nodes-base
display_name: Google Cloud Natural Language Tool
description: Consume Google Cloud Natural Language API (AI Tool variant for use with AI Agents)
category: input
development_style: programmatic
version: 1
credentials_required:
  [
  {
  "name": "googleCloudNaturalLanguageOAuth2Api",
  "required": true
  }
  ]

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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-07-16 12:10:22
tool_variant_of: nodes-base.googleCloudNaturalLanguage
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to interact with Google Cloud Natural Language"
    },
    {
      "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"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyzeSentiment",
      "name": "Analyze Sentiment",
      "resource": "document"
    }
  ]


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

outputs:
  [
  "main"
  ]

updated_at: 2026-07-16 12:10:22
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"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "operation": "analyzeSentiment",
      "name": "Analyze Sentiment",
      "resource": "document"
    }
  ]


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

output_names:
  [
  "Tool"
  ]

updated_at: 2026-07-16 12:10:22
tool_variant_of: nodes-base.googleCloudStorage
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": "Tool Description",
      "name": "toolDescription",
      "type": "string",
      "default": "",
      "required": false,
      "description": "Description for the AI to understand what this tool does and when to use it",
      "typeOptions": {
        "rows": 3
      },
      "placeholder": "e.g., Use this tool to manage files and storage"
    },
    {
      "displayName": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2",
          "value": "oAuth2"
        },
        {
          "name": "Service Account (recommended)",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "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": {},
              "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"
          ],
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Project",
      "name": "projectRLC",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "getAll"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "searchProjects",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Cloud Project ID"
              }
            }
          ],
          "url": "=https://console.cloud.google.com/storage/browser?project={{$value}}"
        }
      ]
    },
    {
      "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/\" + encodeURIComponent($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/\" + encodeURIComponent($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/\" + encodeURIComponent($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",
      "resource": "bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket",
      "resource": "bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket",
      "resource": "bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets",
      "resource": "bucket"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket",
      "resource": "bucket"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create an object",
      "resource": "object"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an object",
      "resource": "object"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get object data or metadata",
      "resource": "object"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of objects",
      "resource": "object"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an object's metadata",
      "resource": "object"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleCloudStorageOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      },
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/b/"
        }
      }
    }
  ]


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.1
outputs:
  [
  "main"
  ]

updated_at: 2026-07-16 12:10:22
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": "Authentication",
      "name": "authentication",
      "type": "options",
      "default": "oAuth2",
      "options": [
        {
          "name": "OAuth2",
          "value": "oAuth2"
        },
        {
          "name": "Service Account (recommended)",
          "value": "serviceAccount"
        }
      ]
    },
    {
      "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": {},
              "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"
          ],
          "@version": [
            1
          ]
        }
      }
    },
    {
      "displayName": "Project",
      "name": "projectRLC",
      "type": "resourceLocator",
      "default": {
        "mode": "list",
        "value": ""
      },
      "required": true,
      "displayOptions": {
        "show": {
          "resource": [
            "bucket"
          ],
          "operation": [
            "create",
            "getAll"
          ],
          "@version": [
            {
              "_cnd": {
                "gte": 1.1
              }
            }
          ]
        }
      },
      "modes": [
        {
          "displayName": "From List",
          "name": "list",
          "type": "list",
          "typeOptions": {
            "searchListMethod": "searchProjects",
            "searchable": true
          }
        },
        {
          "displayName": "By ID",
          "name": "id",
          "type": "string",
          "validation": [
            {
              "type": "regex",
              "properties": {
                "regex": "[a-zA-Z0-9\\-_]{2,}",
                "errorMessage": "Not a valid Google Cloud Project ID"
              }
            }
          ],
          "url": "=https://console.cloud.google.com/storage/browser?project={{$value}}"
        }
      ]
    },
    {
      "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/\" + encodeURIComponent($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/\" + encodeURIComponent($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/\" + encodeURIComponent($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",
      "resource": "bucket"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an empty Bucket",
      "resource": "bucket"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get metadata for a specific Bucket",
      "resource": "bucket"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Get list of Buckets",
      "resource": "bucket"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update the metadata of a bucket",
      "resource": "bucket"
    },
    {
      "operation": "create",
      "name": "Create",
      "description": "Create an object",
      "resource": "object"
    },
    {
      "operation": "delete",
      "name": "Delete",
      "description": "Delete an object",
      "resource": "object"
    },
    {
      "operation": "get",
      "name": "Get",
      "description": "Get object data or metadata",
      "resource": "object"
    },
    {
      "operation": "getAll",
      "name": "Get Many",
      "description": "Retrieve a list of objects",
      "resource": "object"
    },
    {
      "operation": "update",
      "name": "Update",
      "description": "Update an object's metadata",
      "resource": "object"
    }
  ]

credentials_required:
  [
    {
      "name": "googleApi",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "serviceAccount"
          ]
        }
      }
    },
    {
      "name": "googleCloudStorageOAuth2Api",
      "required": true,
      "displayOptions": {
        "show": {
          "authentication": [
            "oAuth2"
          ]
        }
      },
      "testedBy": {
        "request": {
          "method": "GET",
          "url": "/b/"
        }
      }
    }
  ]


