This workflow corresponds to n8n.io template #9635 — we link there as the canonical source.
This workflow follows the Gmail Tool → Google Calendar Tool recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "VA0ERpeYyEiickux",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "How to connect Google ecosystem with ChatGPT App & OpenAI Agent Builder (using MCP)",
"tags": [],
"nodes": [
{
"id": "168a34ab-bf1d-4f7f-8146-cff82ecfe571",
"name": "Get a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-640,
912
],
"parameters": {
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}",
"operation": "get"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "27b1158f-36fc-4a1d-b194-aa26cc8c5ed9",
"name": "Send a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-464,
912
],
"parameters": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "7f784f55-d277-4403-94df-5887bd32d545",
"name": "Get many messages in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-128,
912
],
"parameters": {
"simple": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Simplify', ``, 'boolean') }}",
"filters": {
"q": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search', ``, 'string') }}",
"receivedAfter": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_After', ``, 'string') }}",
"receivedBefore": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Received_Before', ``, 'string') }}"
},
"options": {
"downloadAttachments": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Download_Attachments', ``, 'boolean') }}"
},
"operation": "getAll",
"returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "348abc8d-a3c8-4a39-b33b-7b3e53f0a37c",
"name": "Reply to a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-304,
912
],
"parameters": {
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message_ID', ``, 'string') }}",
"operation": "reply"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "f885ab48-0550-4f31-9163-1982a93cc9ab",
"name": "Create a draft in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
48,
912
],
"parameters": {
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To_Email', ``, 'string') }}",
"replyTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Send_Replies_To', ``, 'string') }}",
"threadId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Thread_ID', ``, 'string') }}"
},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"resource": "draft"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "5acdc8b0-891a-4c6b-9509-182484d5f31b",
"name": "MCP Gmail Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-400,
688
],
"parameters": {
"path": "63975752-0598-4992-9422-165a84c8798c"
},
"typeVersion": 2
},
{
"id": "682d9175-44e6-4951-8248-1ca8ed6f0b62",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
-240
],
"parameters": {
"width": 912,
"height": 832,
"content": "## ChatGPT App\n\n* Go to your OpenAI profile (a Plus account is usually required).\n* Navigate to **Settings \u2192 Apps and Connectors \u2192 Advanced Settings**.\n* Enable **\u201cDeveloper mode.\u201d**\n* Go back to **Settings \u2192 Apps and Connectors** and click **\u201cCreate.\u201d**\n* Set the MCP server URL from n8n (**\u201cMCP Gmail Trigger\u201d**).\n* Click **\u201cCreate.\u201d**\n\n\n\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "1dbf3fff-ff93-4ff6-8d19-5f0e555d82e8",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
240,
-240
],
"parameters": {
"width": 752,
"height": 832,
"content": "## OpenAI Agent Builder\n\n* Go to OpenAI\u2019s [Agent Builder](https://platform.openai.com/agent-builder) and enable API.\n* Click **\u201cCreate a workflow.\u201d**\n* Add an **Agent** node.\n* Open it and click the **\u201c+\u201d** button in the **Tools** section.\n* Select **\u201cMCP Server.\u201d**\n* Set the MCP server URL from n8n (**\u201cMCP Gmail Trigger\u201d**).\n* Click **\u201cCreate.\u201d**\n* Click the **\u201c+\u201d** button again and set the MCP server URL from n8n (**\u201cMCP Gmail Trigger\u201d**).\n* Click **\u201cConnect\u201d** and **\u201cAdd\u201d**\n\n"
},
"typeVersion": 1
},
{
"id": "962fdcbc-069a-47df-aba7-3d421ccd64d5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-688,
-608
],
"parameters": {
"color": 3,
"width": 912,
"height": 320,
"content": "## How to connect Google ecosystem with ChatGPT App & OpenAI Agent Builder (using MCP)\n\nThe official ChatGPT connector doesn\u2019t allow you to interact directly with Google Workspace apps from within the app. Let\u2019s see how to overcome this limitation by creating a dedicated **MCP server**.\n\nThis workflow acts as a **Middleware Control Point (MCP)** between **Google Workspace** services \u2014 including **Gmail, Drive, Docs, Sheets, Calendar, and Slides** \u2014 and **AI agents** like **OpenAI\u2019s Agent Builder** and the **ChatGPT App**.\n\nIt enables these AI assistants to **directly interact with Google Workspace** tools \u2014 from managing emails and calendars to creating and editing documents, spreadsheets, or presentations \u2014 through secure automation endpoints, a feature that is not natively supported in the ChatGPT app."
},
"typeVersion": 1
},
{
"id": "621eefe0-4d78-4fb6-8d4e-380081260be1",
"name": "MCP Calendar Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
560,
688
],
"parameters": {
"path": "0f72eb90-2a1c-403e-98e1-901d76c2825c"
},
"typeVersion": 2
},
{
"id": "3db4b714-002d-42cb-bd04-49f58520e938",
"name": "Create an event in Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
400,
896
],
"parameters": {
"end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
"start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}",
"__regex": "(^[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
},
"additionalFields": {}
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "e6ecc620-ab66-4341-8bff-6dac630711eb",
"name": "Get many events in Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
560,
896
],
"parameters": {
"options": {},
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}",
"__regex": "(^[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
},
"operation": "getAll",
"returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "a735beec-e60e-4e26-8487-3ea70414a1b5",
"name": "Get an event in Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
704,
896
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"options": {},
"calendar": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}",
"__regex": "(^[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
},
"operation": "get"
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "e89c256f-f995-41a0-9935-168db6c270be",
"name": "Delete an event in Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
848,
896
],
"parameters": {
"eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
"options": {},
"calendar": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}",
"__regex": "(^[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
},
"operation": "delete"
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "544c8073-2d08-4d49-a3f2-b97223e972fb",
"name": "Get availability in a calendar in Google Calendar",
"type": "n8n-nodes-base.googleCalendarTool",
"position": [
992,
896
],
"parameters": {
"options": {},
"timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End_Time', ``, 'string') }}",
"timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Time', ``, 'string') }}",
"calendar": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Calendar', ``, 'string') }}",
"__regex": "(^[a-zA-Z0-9.!#$%&\u2019*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)"
},
"resource": "calendar"
},
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "f8a19eb8-5dc7-4e56-808d-bbe5f2235ddd",
"name": "Download file in Google Drive",
"type": "n8n-nodes-base.googleDriveTool",
"position": [
-608,
1488
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('File', ``, 'string') }}"
},
"options": {},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "e7b1bfb2-794b-4e61-86be-7d3da4534932",
"name": "Search files and folders in Google Drive",
"type": "n8n-nodes-base.googleDriveTool",
"position": [
-448,
1488
],
"parameters": {
"limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
"filter": {},
"options": {},
"resource": "fileFolder",
"queryString": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Search_Query', ``, 'string') }}"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "c469b3fa-2c45-4953-8265-6a3432838507",
"name": "Get many shared drives in Google Drive",
"type": "n8n-nodes-base.googleDriveTool",
"position": [
-304,
1488
],
"parameters": {
"limit": 50,
"options": {},
"resource": "drive",
"operation": "list",
"returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "df0cc0d0-9209-415d-a707-c1af53806533",
"name": "Create file from text in Google Drive",
"type": "n8n-nodes-base.googleDriveTool",
"position": [
-144,
1488
],
"parameters": {
"name": "={{$now.format('yyyyLLdd')}}",
"content": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('File_Content', ``, 'string') }}",
"driveId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Parent_Drive', ``, 'string') }}"
},
"options": {},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Parent_Folder', ``, 'string') }}"
},
"operation": "createFromText"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "7cbaab83-0114-4d4a-92b0-7f92524ce0ef",
"name": "Move file in Google Drive",
"type": "n8n-nodes-base.googleDriveTool",
"position": [
48,
1488
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('File', ``, 'string') }}"
},
"driveId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Parent_Drive', ``, 'string') }}"
},
"folderId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Parent_Folder', ``, 'string') }}"
},
"operation": "move"
},
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 3
},
{
"id": "f078f81f-0cc5-44f7-b043-2664011584af",
"name": "Create a document in Google Docs",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
528,
1488
],
"parameters": {
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"folderId": "default"
},
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "b9c1e37b-2b1c-4b03-8f60-4dd9956308c7",
"name": "Get a document in Google Docs",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
704,
1488
],
"parameters": {
"operation": "get",
"documentURL": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Doc_ID_or_URL', ``, 'string') }}"
},
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "2b8b0ea1-26f2-4183-9909-2e4c4cfbb0be",
"name": "Update a document in Google Docs",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
912,
1488
],
"parameters": {
"actionsUi": {
"actionFields": [
{
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('actionFields0_Text', ``, 'string') }}",
"action": "insert"
}
]
},
"operation": "update",
"documentURL": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Doc_ID_or_URL', ``, 'string') }}"
},
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "5a542afa-4920-477b-844a-b99c5ea765ab",
"name": "MCP Docs Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
608,
1328
],
"parameters": {
"path": "1f35317d-7b8e-48b9-a419-936ea5b63ae6"
},
"typeVersion": 2
},
{
"id": "6ce871bd-a4c4-437d-b8a8-90f40f8843ec",
"name": "MCP Drive Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-400,
1344
],
"parameters": {
"path": "031809b0-c277-4ff1-b65a-9e72294b1ff1"
},
"typeVersion": 2
},
{
"id": "bbb9c2cc-e528-4a7e-8443-8fa021a7dd31",
"name": "MCP Sheet Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
-416,
1712
],
"parameters": {
"path": "1f35317d-7b8e-48b9-a419-936ea5b63ae6"
},
"typeVersion": 2
},
{
"id": "45409bf6-d7bd-4678-84ea-cde82d1d93d7",
"name": "Get row(s) in sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-688,
1904
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "bbb5016f-e709-4850-91e4-f1b910f4a72e",
"name": "Append or update row in sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-528,
1904
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "c2b57287-67ec-4557-b84a-835a58dc77fd",
"name": "Create sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-208,
1904
],
"parameters": {
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
"options": {},
"operation": "create",
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "535af93b-6264-425e-a3dd-a042946ab939",
"name": "Delete rows or columns from sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-64,
1904
],
"parameters": {
"operation": "delete",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
},
"startIndex": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Row_Number', ``, 'number') }}",
"numberToDelete": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Number_of_Rows_to_Delete', ``, 'number') }}"
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "f416b0ac-0dc5-4564-9884-8032a91257fc",
"name": "Update row in sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
-384,
1904
],
"parameters": {
"columns": {
"value": {},
"schema": [],
"mappingMode": "autoMapInputData",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "93496b49-3c6a-43a2-95eb-3caafc875bb3",
"name": "Clear sheet in Google Sheets",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
96,
1888
],
"parameters": {
"operation": "clear",
"sheetName": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Sheet', ``, 'string') }}"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Document', ``, 'string') }}"
},
"keepFirstRow": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Keep_First_Row', ``, 'boolean') }}"
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "c8e9e81b-483d-448c-9795-2417be38cdc9",
"name": "Create a presentation in Google Slides",
"type": "n8n-nodes-base.googleSlidesTool",
"position": [
464,
1920
],
"parameters": {
"title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "2ae1247d-99a1-4d1e-905a-ba3611e211cb",
"name": "MCP Slides Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
624,
1712
],
"parameters": {
"path": "1f35317d-7b8e-48b9-a419-936ea5b63ae6"
},
"typeVersion": 2
},
{
"id": "8d78817e-333e-4daa-b95c-1ce0019f88b5",
"name": "Get a presentation in Google Slides",
"type": "n8n-nodes-base.googleSlidesTool",
"position": [
624,
1920
],
"parameters": {
"operation": "get",
"presentationId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Presentation_ID', ``, 'string') }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "50ea1dd1-e10c-4ee2-942a-7128cef8ee6d",
"name": "Get slides from a presentation in Google Slides",
"type": "n8n-nodes-base.googleSlidesTool",
"position": [
784,
1920
],
"parameters": {
"operation": "getSlides",
"returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}",
"presentationId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Presentation_ID', ``, 'string') }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "be7c29b7-5d3a-4d60-8f0d-e88871e7523d",
"name": "Replace text in a presentation in Google Slides",
"type": "n8n-nodes-base.googleSlidesTool",
"position": [
960,
1920
],
"parameters": {
"textUi": {
"textValues": [
{
"text": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('textValues0_Search_For', ``, 'string') }}",
"replaceText": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('textValues0_Replace_With', ``, 'string') }}"
}
]
},
"options": {
"revisionId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Revision_ID', ``, 'string') }}"
},
"operation": "replaceText",
"presentationId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Presentation_ID', ``, 'string') }}"
},
"credentials": {
"googleSlidesOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "72575ff6-e6bc-40d5-8ce0-9994e7747049",
"name": "Delete a draft in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
64,
1104
],
"parameters": {
"resource": "draft",
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}",
"operation": "delete"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "7d89205c-5bf7-4047-bdc2-6907f582fcf2",
"name": "Delete a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-640,
1104
],
"parameters": {
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}",
"operation": "delete"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "97e1d739-cf3d-4e65-9e99-82b43c434987",
"name": "Add label to message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-464,
1104
],
"parameters": {
"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}",
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}",
"operation": "addLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c9ae4857-0bfb-4996-9dc9-28c8fae0a8ab",
"name": "Remove label from message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-288,
1104
],
"parameters": {
"labelIds": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Label_Names_or_IDs', ``, 'string') }}",
"messageId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Draft_ID', ``, 'string') }}",
"operation": "removeLabels"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "361b1cba-8304-462f-9d5a-17ee3c1b242e",
"name": "Send message and wait for response in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
-112,
1104
],
"parameters": {
"sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
"message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
"options": {},
"subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
"operation": "sendAndWait"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
}
],
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "730570cc-7a35-45d5-9791-7dcda4635a26",
"connections": {
"Get a message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create a draft in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Delete a draft in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Send a message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Delete a message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Move file in Google Drive": {
"ai_tool": [
[
{
"node": "MCP Drive Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get many messages in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Reply to a message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Clear sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Add label to message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Download file in Google Drive": {
"ai_tool": [
[
{
"node": "MCP Drive Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get a document in Google Docs": {
"ai_tool": [
[
{
"node": "MCP Docs Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get an event in Google Calendar": {
"ai_tool": [
[
{
"node": "MCP Calendar Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create a document in Google Docs": {
"ai_tool": [
[
{
"node": "MCP Docs Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Update a document in Google Docs": {
"ai_tool": [
[
{
"node": "MCP Docs Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create an event in Google Calendar": {
"ai_tool": [
[
{
"node": "MCP Calendar Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Delete an event in Google Calendar": {
"ai_tool": [
[
{
"node": "MCP Calendar Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get many events in Google Calendar": {
"ai_tool": [
[
{
"node": "MCP Calendar Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Remove label from message in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get a presentation in Google Slides": {
"ai_tool": [
[
{
"node": "MCP Slides Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get row(s) in sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Update row in sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create file from text in Google Drive": {
"ai_tool": [
[
{
"node": "MCP Drive Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Create a presentation in Google Slides": {
"ai_tool": [
[
{
"node": "MCP Slides Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get many shared drives in Google Drive": {
"ai_tool": [
[
{
"node": "MCP Drive Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Search files and folders in Google Drive": {
"ai_tool": [
[
{
"node": "MCP Drive Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Send message and wait for response in Gmail": {
"ai_tool": [
[
{
"node": "MCP Gmail Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Append or update row in sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get slides from a presentation in Google Slides": {
"ai_tool": [
[
{
"node": "MCP Slides Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Replace text in a presentation in Google Slides": {
"ai_tool": [
[
{
"node": "MCP Slides Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Get availability in a calendar in Google Calendar": {
"ai_tool": [
[
{
"node": "MCP Calendar Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Delete rows or columns from sheet in Google Sheets": {
"ai_tool": [
[
{
"node": "MCP Sheet Trigger",
"type": "ai_tool",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
gmailOAuth2googleCalendarOAuth2ApigoogleDocsOAuth2ApigoogleDriveOAuth2ApigoogleSheetsOAuth2ApigoogleSlidesOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
The official ChatGPT connector doesn’t allow you to interact directly with Google Workspace apps from within the app. Let’s see how to overcome this limitation by creating a dedicated MCP server.
Source: https://n8n.io/workflows/9635/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow implements an advanced AI automation agent (OpenClaw Agent) that interacts with users through Telegram and integrates multiple AI models, external tools, and cloud services to automate c
This template is designed for anyone who wants to use WhatsApp as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida
This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida
> This n8n template builds Stacey, an AI assistant that runs inside Telegram. Stacey listens to your messages, understands what you want using AI, and intelligently routes commands to MCP-connected
An AI assistant that NEVER forgets using MemMachine for persistent cross-session memory, with voice transcription support and productivity tools.