Asistente para programar reuniones

Intermedio

Este es unAI Chatbot, Multimodal AIflujo de automatización del dominio deautomatización que contiene 13 nodos.Utiliza principalmente nodos como Telegram, GmailTool, DateTimeTool, Agent, TelegramTrigger. Asistente de gestión de reuniones

Requisitos previos
  • Bot Token de Telegram
  • Cuenta de Google y credenciales de API de Gmail
  • Clave de API de OpenAI
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "id": "SeCqKiu6DwEynq5h",
  "meta": {
    "instanceId": "061ca141d020a6e1355b8c7fe05f92a699e37e92079ad2e150a506ee8bbe9e11"
  },
  "name": "Meeting Booking Agent",
  "tags": [],
  "nodes": [
    {
      "id": "4145c3f3-c976-4e1a-8248-086484f1304d",
      "name": "Disparador de Telegram",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        48,
        496
      ],
      "webhookId": "3d3f14ad-37ba-49b1-a0f7-dadaa17f208b",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "db0d67ac-a2ff-4236-9c6f-007c2e3a1707",
      "name": "Agente IA",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        256,
        496
      ],
      "parameters": {
        "text": "={{ $json.message.text }}",
        "options": {
          "systemMessage": "=You are a smart, helpful AI assistant that helps users schedule meetings, check availability, create events in Google Calendar, and send meeting details via email.\nAlways respond like a friendly, professional human assistant.\n\nCore Process:\n\nALWAYS use Date and Time tool FIRST to get current date/time\nALWAYS check Google Calendar for conflicts before booking new meetings\nOnly create meetings if no time conflicts exist\n\nCritical Rules:\n\nDate Accuracy: When user says \"tomorrow,\" \"next Monday,\" etc., use Date and Time tool to calculate exact dates.\n\nConflict Prevention: Before creating any meeting, check if user already has something booked at that time. If conflict exists, inform user and offer alternatives.\n\nNever double-book: Always resolve conflicts before creating new meetings.\n\nTool Usage:\n\nDate and Time tool: Use first to establish current date, then for any relative date calculations\n\nGoogle Calendar tool: Check for conflicts first, then create events only if no conflicts\n\nGmail tool: Use when user asks to send meeting details or email invites\n\nExample Workflows:\n\nBooking Request: \"Book meeting with Sarah tomorrow at 2 PM\"\n\nGet current date → Calculate tomorrow's exact date\nCheck calendar for that time slot\nIf no conflict: Create meeting / If conflict: \"You already have [meeting] at 2 PM on [date]. Different time?\"\n\nMeeting Inquiry: \"Do I have meetings tomorrow?\"\n\nGet current date → Calculate tomorrow's exact date\nSearch calendar for that date\nList meetings with specific date: \"Here are your meetings for [exact date]:\"\n\n\nBe proactive. Make scheduling easy and human-like. Don’t ask the user to write structured inputs — understand what they mean naturally."
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "386b3bc2-736a-429d-b98d-0620c72815a6",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmailTool",
      "position": [
        736,
        736
      ],
      "webhookId": "544e077e-e370-458f-982a-6740070b19ed",
      "parameters": {
        "sendTo": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('To', ``, 'string') }}",
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {
          "appendAttribution": false
        },
        "subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', ``, 'string') }}",
        "emailType": "text"
      },
      "typeVersion": 2.1
    },
    {
      "id": "354df6b7-8db1-4f44-a602-40281542f6ad",
      "name": "Telegram",
      "type": "n8n-nodes-base.telegram",
      "position": [
        624,
        496
      ],
      "webhookId": "c939004c-728c-4431-969d-35c88ff6f52c",
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a154a955-05fa-40ce-a4e6-22aab05f1292",
      "name": "Fecha y hora",
      "type": "n8n-nodes-base.dateTimeTool",
      "position": [
        864,
        736
      ],
      "parameters": {
        "options": {
          "timezone": "Asia/Dhaka"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "08d4ae43-8bc4-43b8-b40f-2e251485d406",
      "name": "Get",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        384,
        736
      ],
      "parameters": {
        "limit": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Limit', ``, 'number') }}",
        "options": {},
        "timeMax": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Before', ``, 'string') }}",
        "timeMin": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "12712b7aba31856a75d127a01be4994372f5f10c5449c805f0d5d049789c9516@group.calendar.google.com",
          "cachedResultName": "For the Agent"
        },
        "operation": "getAll"
      },
      "typeVersion": 1.3
    },
    {
      "id": "1e51325f-74f1-472b-9f90-3e38a91e6a77",
      "name": "Update",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        288,
        736
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "12712b7aba31856a75d127a01be4994372f5f10c5449c805f0d5d049789c9516@group.calendar.google.com",
          "cachedResultName": "For the Agent"
        },
        "operation": "update",
        "updateFields": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "6216fc21-9f71-4f14-857b-6f949579c433",
      "name": "Delete",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        480,
        736
      ],
      "parameters": {
        "eventId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Event_ID', ``, 'string') }}",
        "options": {},
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "12712b7aba31856a75d127a01be4994372f5f10c5449c805f0d5d049789c9516@group.calendar.google.com",
          "cachedResultName": "For the Agent"
        },
        "operation": "delete"
      },
      "typeVersion": 1.3
    },
    {
      "id": "20d9c182-28f6-4fb3-b28f-eeb8dd961d7e",
      "name": "Create",
      "type": "n8n-nodes-base.googleCalendarTool",
      "position": [
        576,
        736
      ],
      "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": "12712b7aba31856a75d127a01be4994372f5f10c5449c805f0d5d049789c9516@group.calendar.google.com",
          "cachedResultName": "For the Agent"
        },
        "additionalFields": {
          "summary": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Summary', ``, 'string') }}",
          "attendees": [
            "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('attendees0_Attendees', ``, 'string') }}"
          ],
          "description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Description', ``, 'string') }}"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f87ed0e3-92bd-47e6-805e-3aadab5670ed",
      "name": "OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -64,
        736
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "705a6708-9249-4090-ab7c-3c9510f04785",
      "name": "Memoria",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        64,
        736
      ],
      "parameters": {
        "sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "d88091a2-d857-4bab-ad26-2fa85aeacb31",
      "name": "Nota adhesiva",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1136,
        -128
      ],
      "parameters": {
        "color": 5,
        "width": 960,
        "height": 1056,
        "content": "\n---\n\n# 🛠 Setup Guide\n\nFollow these steps to get started:\n\n1. **Connect your [Telegram Bot](https://core.telegram.org/bots#creating-a-new-bot)**\n\n   * In the **Telegram Trigger** and **Telegram** nodes, insert your Telegram bot token (from @BotFather).\n   * This allows users to chat with the agent directly from Telegram.\n\n2. **Add your [OpenAI](https://platform.openai.com/api-keys) API key**\n\n   * Used in the **OpenAI** node to power natural conversation and interpret scheduling requests.\n   * Choose the right model (`gpt-4.1-mini` is already set).\n\n3. **Enable Conversation Memory**\n\n   * The **Memory** node is linked to Telegram chat IDs, so the bot remembers ongoing conversations.\n   * No extra setup needed, but make sure the session key remains `chat.id`.\n\n4. **Plug in your [Google Calendar](https://calendar.google.com/) account**\n\n   * In the **Get**, **Update**, **Delete**, and **Create** nodes, connect your Google Calendar.\n   * This lets the AI check availability, prevent double-booking, and create events.\n\n5. **Set your Timezone**\n\n   * In the **Date & Time** node, confirm your correct timezone (currently `Asia/Dhaka`).\n   * This ensures correct handling of “tomorrow,” “next Monday,” etc.\n\n6. **Connect your [Gmail](https://mail.google.com/) account**\n\n   * In the **Gmail** node, link your Gmail account.\n   * This is used to send meeting invites and confirmations to attendees.\n\n7. **AI Agent System Message (already set)**\n\n   * The **AI Agent** node has rules to:\n\n     * Always calculate exact dates with Date & Time\n     * Always check calendar before creating events\n     * Avoid double-booking and suggest alternatives\n   * Keep these rules as they make the assistant act professional and human-like.\n\nOnce all connections are set, your workflow will **chat with users on Telegram, check Google Calendar for availability, create meetings, and send invites via Gmail — all automatically** 📅🤖\n\n---\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ce35084a-f8c5-4b87-9ddb-50ef4b8268ba",
      "name": "Nota adhesiva3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -64,
        -112
      ],
      "parameters": {
        "color": 5,
        "width": 544,
        "height": 464,
        "content": "## Start here: Step-by Step Youtube Tutorial :star:\n[![Meeting Booking n8n Agent](https://img.youtube.com/vi/IWDGfZyN5to/sddefault.jpg)](https://youtu.be/IWDGfZyN5to)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c97ce50f-79b7-40c5-b270-3ee564838ce4",
  "connections": {
    "08d4ae43-8bc4-43b8-b40f-2e251485d406": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "386b3bc2-736a-429d-b98d-0620c72815a6": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "20d9c182-28f6-4fb3-b28f-eeb8dd961d7e": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "6216fc21-9f71-4f14-857b-6f949579c433": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "f87ed0e3-92bd-47e6-805e-3aadab5670ed": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "1e51325f-74f1-472b-9f90-3e38a91e6a77": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "354df6b7-8db1-4f44-a602-40281542f6ad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Date & Time": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Telegram Trigger": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Chatbot de IA, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos13
Categoría2
Tipos de nodos9
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34