AutomationFlowsAI & RAG › Google Calendar Mcp Server for AI Agent with Dynamic Scheduling

Google Calendar Mcp Server for AI Agent with Dynamic Scheduling

ByLuciano Gutierrez @koresoluciones on n8n.io

Version: 1.0.0 n8n Version: 1.88.0+ Author: Koresolucoes License: MIT

Event trigger★★☆☆☆ complexityAI-powered7 nodesMcp TriggerGoogle Calendar Tool
AI & RAG Trigger: Event Nodes: 7 Complexity: ★★☆☆☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #3677 — we link there as the canonical source.

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 →

Download .json
{
  "id": "grxwlyzZb3z4WLAa",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "MCP_CALENDAR",
  "tags": [],
  "nodes": [
    {
      "id": "10e49f09-5ef8-4945-adcf-f8b99879a31c",
      "name": "MCP_CALENDAR",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "path": "/mcp/:tool/calendar"
      },
      "typeVersion": 1
    },
    {
      "id": "54e84792-4f4a-4501-8aae-e40f06e958c1",
      "name": "GET_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        860,
        240
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "operation": "get"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "c428d7b1-aed4-4a18-962e-fd29b8a2ac54",
      "name": "GET_ALL_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        240,
        240
      ],
      "parameters": {
        "options": {
          "orderBy": "startTime",
          "recurringEventHandling": "expand"
        },
        "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
        "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "26fef8a3-5802-4f3d-ae47-b81aad813728",
      "name": "DELETE_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        480,
        240
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "operation": "delete",
        "descriptionType": "manual"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "e46ea1b3-8597-46aa-b37a-6660aa72f74d",
      "name": "UPDATE_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        680,
        240
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "operation": "update",
        "updateFields": {},
        "useDefaultReminders": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Default_Reminders', ``, 'boolean') }}"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "b9c7618d-b79a-4273-a540-3d21a1c0bfb0",
      "name": "AVALIABILITY_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        80,
        240
      ],
      "parameters": {
        "options": {
          "timezone": {
            "__rl": true,
            "mode": "list",
            "value": "America/Sao_Paulo",
            "cachedResultName": "America/Sao_Paulo"
          }
        },
        "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End_Time', ``, 'string') }}",
        "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start_Time', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "resource": "calendar",
        "descriptionType": "manual",
        "toolDescription": "verifica disponibilidade"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "4fda260a-4d0c-4bf3-807b-e752f06037ff",
      "name": "CREATE_CALENDAR",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        1000,
        240
      ],
      "parameters": {
        "end": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('End', ``, 'string') }}",
        "start": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Start', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "user@example.com",
          "cachedResultName": "ODONTOLOGIA"
        },
        "descriptionType": "manual",
        "toolDescription": "CRIA EVENTOS NOVOS COM O GOOGLE API",
        "additionalFields": {
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
        },
        "useDefaultReminders": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Use_Default_Reminders', ``, 'boolean') }}"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d13dc7da-f510-474c-87be-68fea85c81f2",
  "connections": {
    "GET_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "CREATE_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "DELETE_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "UPDATE_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "GET_ALL_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AVALIABILITY_CALENDAR": {
      "ai_tool": [
        [
          {
            "node": "MCP_CALENDAR",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Version: 1.0.0 n8n Version: 1.88.0+ Author: Koresolucoes License: MIT

Source: https://n8n.io/workflows/3677/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

[3-3] MCP Trigger Server(Claude). Uses mcpTrigger, googleCalendarTool, toolCalculator, httpRequestTool. Event-driven trigger; 10 nodes.

Mcp Trigger, Google Calendar Tool, Tool Calculator +3
AI & RAG

I created this sweet little workflow with lots of love and care, just for you who wants to manage your Google Calendar in a smart and gentle way 💌

Mcp Trigger, Google Calendar Tool
AI & RAG

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

OpenAI Chat, Memory Buffer Window, Mcp Client Tool +12
AI & RAG

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

OpenAI Chat, Memory Buffer Window, Mcp Client Tool +11
AI & RAG

Super Assistants - [MCP Servers]. Uses slackTool, mcpTrigger, airtableTool, googleCalendarTool. Event-driven trigger; 42 nodes.

Slack Tool, Mcp Trigger, Airtable Tool +3