This workflow follows the Gmail โ Google Calendar 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 โ
{
"name": "\ud83e\udde0 5\u5206\u9418\u641e\u5b9an8n + Google OAuth",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [
-960,
220
],
"id": "fcf3cfa9-0197-4bff-be93-8478fe98f289",
"name": "When clicking \u2018Test workflow\u2019"
},
{
"parameters": {
"content": "## Step 1 - Google \u8a2d\u5b9a OAuth 2.0 \u6b0a\u9650\n\n[n8n \u8aaa\u660e\u6587\u4ef6 - n8n Google: OAuth2 single service](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal)\n\n### 1. \u5275\u5efa Google \u5c08\u6848 - `n8n OAuth`\n\n- \u767b\u5165 [Google Cloud \u63a7\u5236\u53f0](https://console.cloud.google.com/)\n- \u9ede\u64ca\u9802\u90e8\u7684\u5c08\u6848\u4e0b\u62c9\u9078\u55ae\uff0c\u9078\u64c7\u300c\u65b0\u589e\u5c08\u6848\u300d\n- \u8f38\u5165\u5c08\u6848\u540d\u7a31\u4e26\u9078\u64c7\u4f4d\u7f6e\uff0c\u7136\u5f8c\u9ede\u64ca\u300c\u5efa\u7acb\u300d\n\n### 2. \u555f\u7528\u76f8\u95dc API\n- \u5728\u5de6\u5074\u5c0e\u822a\u6b04\u9078\u64c7 `API \u548c\u670d\u52d9` > `\u7a0b\u5f0f\u5eab`\n- \u641c\u5c0b\u4e26\u555f\u7528\u4ee5\u4e0b API\uff1a\n - Gmail API \n - Google Sheets API \n - Google Docs API \n - Google Calendar API \n - Google Drive API\n\n### 3. \u8a2d\u5b9a OAuth \u540c\u610f\u756b\u9762\n- \u5728\u5de6\u5074\u5c0e\u822a\u6b04\u9078\u64c7 `API \u548c\u670d\u52d9` > `OAuth \u540c\u610f\u756b\u9762`\n- \u9078\u64c7\u4f7f\u7528\u8005\u985e\u578b\uff08\u5167\u90e8\u6216\u5916\u90e8\uff09\uff0c\u9ede\u64ca\u300c\u5efa\u7acb\u300d\n- \u586b\u5beb\u61c9\u7528\u7a0b\u5f0f\u540d\u7a31\u3001\u4f7f\u7528\u8005\u652f\u63f4\u96fb\u5b50\u90f5\u4ef6\u7b49\u8cc7\u8a0a\n- \u5728\u300c\u6388\u6b0a\u7db2\u57df\u300d\u90e8\u5206\uff0c\u52a0\u5165\u4f60\u7684 n8n \u7db2\u57df\uff08\u4f8b\u5982 `n8n.cloud` \u6216\u81ea\u8a17\u7ba1\u57df\u540d\uff09\n- \u9ede\u64ca\u300c\u5132\u5b58\u4e26\u7e7c\u7e8c\u300d\n\n### 4. \u5efa\u7acb OAuth \u5ba2\u6236\u7aef ID\n- \u8fd4\u56de `API \u548c\u670d\u52d9` > `\u6191\u8b49`\n- \u9ede\u64ca\u300c\u5efa\u7acb\u6191\u8b49\u300d>\u300cOAuth \u5ba2\u6236\u7aef ID\u300d\n- \u9078\u64c7\u61c9\u7528\u7a0b\u5f0f\u985e\u578b\u70ba `\u7db2\u9801\u61c9\u7528\u7a0b\u5f0f`\n- \u5728\u300c\u5df2\u6388\u6b0a\u7684\u91cd\u65b0\u5c0e\u5411 URI\u300d\u6b04\u4f4d\u4e2d\uff0c\u8f38\u5165 n8n \u7684 OAuth \u91cd\u5b9a\u5411 URI (https://{domain}/rest/oauth2-credential/callback)\n- \u9ede\u64ca\u300c\u5efa\u7acb\u300d\uff0c\u7cfb\u7d71\u5c07\u751f\u6210\uff1a\n - \u5ba2\u6236\u7aef ID\n - \u5ba2\u6236\u7aef\u5bc6\u78bc\n\n> \u2705 \u8acb\u59a5\u5584\u7d00\u9304 **\u5ba2\u6236\u7aef ID** \u548c **\u5ba2\u6236\u7aef\u5bc6\u78bc**\uff0c\u5f8c\u7e8c\u8a2d\u5b9a n8n \u6642\u6703\u7528\u5230\u3002\n",
"height": 860,
"width": 670,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-1680,
-200
],
"id": "a25b350d-e8e7-4533-b248-8493437d9c58",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "## Step 2 - \u5728 n8n \u5275\u5efa 5 \u500b Google OAuth \u6191\u8b49\n\n### \ud83d\udd27 \u8a2d\u5b9a n8n \u6191\u8b49\u6d41\u7a0b\uff1a\n\n1. \u767b\u5165\u4f60\u7684 [n8n \u5e73\u53f0](https://n8n.io/)\n2. \u524d\u5f80\u5de6\u5074\u9078\u55ae\uff1a`\u8a2d\u5b9a` > `\u6191\u8b49`\uff08**Credentials**\uff09\n3. \u9ede\u64ca\u53f3\u4e0a\u89d2\u7684 `\u65b0\u589e\u6191\u8b49`\uff08**Create New Credential**\uff09\n4. \u9078\u64c7\u8981\u9023\u63a5\u7684 Google \u670d\u52d9\uff0c\u4f8b\u5982\uff1a`Gmail`\n5. \u8f38\u5165\u5728 Google Cloud \u63a7\u5236\u53f0\u4e2d\u7372\u5f97\u7684\uff1a\n - **Client ID**\n - **Client Secret**\n6. \u9ede\u64ca\u300c**\u4f7f\u7528 Google \u767b\u5165**\u300d\uff08**Connect using Google**\uff09\u9032\u884c\u6388\u6b0a\u9a57\u8b49\n\n### \u2705 Tips\uff1a\u5efa\u8b70\u5148\u9810\u5099\u597d\u4ee5\u4e0b 5 \u500b Google API \u6b0a\u9650\uff0c\u518d\u9010\u4e00\u5efa\u7acb\u6191\u8b49\uff1a\n\n\u8acb\u5148\u5728 Google Cloud \u4e2d\u555f\u7528\u4ee5\u4e0b 5 \u500b API\uff0c\u4e26\u4f7f\u7528\u76f8\u540c\u7684 OAuth Client ID / Secret\uff0c\u5728 n8n \u4e2d\u70ba\u6bcf\u4e00\u9805\u670d\u52d9\u5efa\u7acb\u7368\u7acb\u6191\u8b49\uff1a\n\n- **Google Drive**\n- **Google Sheets**\n- **Google Docs**\n- **Google Calendar**\n- **Gmail**\n\n> \ud83d\udca1 **\u5efa\u8b70\u6d41\u7a0b\uff1a** \n> \u5148\u5728 Google Cloud \u555f\u7528\u597d\u6240\u6709 5 \u500b API\uff0c\u4e26\u53d6\u5f97\u5171\u7528\u7684 OAuth \u6191\u8b49\uff08Client ID / Secret\uff09\uff0c \n> \u7136\u5f8c\u5728 n8n \u4e2d\u4f9d\u5e8f\u8907\u88fd\u8cbc\u4e0a\uff0c\u5efa\u7acb 5 \u7d44\u5c0d\u61c9\u7684\u6191\u8b49\uff0c\u6700\u5f8c\u518d\u4e00\u6b21\u5b8c\u6210\u6388\u6b0a\u9a57\u8b49\u3002\n\n\u5b8c\u6210\u5f8c\uff0c\u5373\u53ef\u5728 workflow \u4e2d\u9078\u64c7\u5c0d\u61c9\u7684\u6191\u8b49\u4f7f\u7528\u3002\n\n",
"height": 720,
"width": 650
},
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
-500,
-220
],
"id": "b4f5e06c-fb99-4cc2-846f-bc3d7ec1f387",
"name": "Sticky Note1"
},
{
"parameters": {
"folderId": "1jpXtp9QAGX96tzdNB2lPYQkkTiTNMazE",
"title": "Google OAuth"
},
"type": "n8n-nodes-base.googleDocs",
"typeVersion": 2,
"position": [
-740,
220
],
"id": "a61e8a35-3ad0-498c-9b44-de84a349a046",
"name": "Google Docs",
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "folder",
"name": "Google OAuth",
"driveId": {
"__rl": true,
"mode": "list",
"value": "My Drive"
},
"folderId": {
"__rl": true,
"mode": "list",
"value": "root",
"cachedResultName": "/ (Root folder)"
},
"options": {}
},
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
-740,
-180
],
"id": "eb4f8e53-72e9-4efa-a11c-8a8f96d93cd1",
"name": "Google Drive",
"credentials": {
"googleDriveOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "spreadsheet",
"title": "Google OAuth",
"options": {}
},
"id": "30737386-018b-47cf-b747-69a17accec37",
"name": "Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
-740,
20
],
"typeVersion": 4.5,
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"calendar": {
"__rl": true,
"value": "n8n-automation@example.com",
"mode": "list",
"cachedResultName": "AI Automation"
},
"additionalFields": {}
},
"type": "n8n-nodes-base.googleCalendar",
"typeVersion": 1.3,
"position": [
-740,
420
],
"id": "1210d687-aa50-414d-9ac6-4170b5c92503",
"name": "Google Calendar",
"credentials": {
"googleCalendarOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "get",
"messageId": "Google OAuth"
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
-740,
620
],
"id": "07432888-4518-4e97-8d4b-e8cacbbf50ce",
"name": "Gmail",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
}
],
"connections": {
"When clicking \u2018Test workflow\u2019": {
"main": [
[
{
"node": "Google Drive",
"type": "main",
"index": 0
},
{
"node": "Google Sheet",
"type": "main",
"index": 0
},
{
"node": "Google Docs",
"type": "main",
"index": 0
},
{
"node": "Google Calendar",
"type": "main",
"index": 0
},
{
"node": "Gmail",
"type": "main",
"index": 0
}
]
]
},
"Google Docs": {
"main": [
[]
]
},
"Google Drive": {
"main": [
[]
]
},
"Google Sheet": {
"main": [
[]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "e9f612e4-2341-499f-828d-6ada5b7ee79e",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "mahJ2a55q8so2Kpm",
"tags": [
{
"createdAt": "2025-02-08T08:50:12.969Z",
"updatedAt": "2025-02-08T08:50:12.969Z",
"id": "MsjujtEapjDx89km",
"name": "YT"
}
]
}
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.
gmailOAuth2googleCalendarOAuth2ApigoogleDocsOAuth2ApigoogleDriveOAuth2ApigoogleSheetsOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
๐ง 5ๅ้ๆๅฎn8n + Google OAuth. Uses googleDocs, googleDrive, googleSheets, googleCalendar. Event-driven trigger; 8 nodes.
Source: https://github.com/qwedsazxc78/ai-automation-n8n/blob/bc074b119e8c8f42b3ceaf6f05d016d893869008/n8n/10-n8n-with-google-oauth/automation.json โ original creator credit. Request a take-down โ
More Email & Gmail workflows โ ยท Browse all categories โ
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automates the full offer letter lifecycle, from generation to final candidate response tracking. When a new row with a Pending status is added to Google Sheets, it creates a personalized
Sync your Google Calendar events with Google Sheets and get daily Slack summaries with meeting statistics. FEATURES:
Fluxo de Entrevistas. Uses formTrigger, gmail, googleSheets, googleCalendar. Event-driven trigger; 28 nodes.
FlujoDeReservasUpdated. Uses googleSheetsTrigger, googleSheets, googleCalendar, gmail. Event-driven trigger; 27 nodes.
Streamline and standardize your entire client onboarding process with a single end-to-end automation. ๐๐ This workflow captures detailed client intake data via webhook, automatically creates a fully s