Workflow n8n

Automatisation Google Calendar avec n8n : rappels d'événements

Ce workflow n8n a pour objectif de gérer les rappels d'événements dans Google Calendar, en envoyant des notifications via Telegram. Dans un contexte professionnel où la gestion du temps est cruciale, ce type d'automatisation permet aux équipes de ne pas manquer d'importants rendez-vous. Grâce à ce workflow, les utilisateurs peuvent recevoir des rappels personnalisés, ce qui améliore leur organisation et leur productivité.

  • Étape 1 : Le déclencheur est un 'Schedule Trigger' qui active le workflow à des intervalles définis.
  • Étape 2 : Le noeud 'Get upcoming event' interroge Google Calendar pour récupérer les événements à venir.
  • Étape 3 : Le noeud 'Already sent?' vérifie si un rappel a déjà été envoyé pour éviter les doublons.
  • Étape 4 : Le modèle de chat OpenAI génère un message de rappel personnalisé.
  • Étape 5 : Le noeud 'Secretary Agent' traite ce message et le prépare pour l'envoi.
  • Étape 6 : Enfin, le noeud 'Send reminder' envoie le rappel via Telegram. En utilisant ce workflow, les entreprises peuvent réduire le risque d'oubli d'événements importants et améliorer leur communication interne, ce qui se traduit par une meilleure efficacité opérationnelle.
Tags clés :automatisationGoogle CalendarTelegramrappelsworkflow
Catégorie: Scheduled · Tags: automatisation, Google Calendar, Telegram, rappels, workflow0

Workflow n8n Google Calendar, Telegram, rappels : vue d'ensemble

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Workflow n8n Google Calendar, Telegram, rappels : détail des nœuds

  • Schedule Trigger

    Ce noeud déclenche le workflow selon un calendrier défini.

  • OpenAI Chat Model

    Ce noeud utilise le modèle de chat d'OpenAI pour générer des réponses basées sur des entrées textuelles.

  • Get upcoming event

    Ce noeud récupère les événements à venir d'un calendrier Google selon des critères spécifiés.

  • Already sent?

    Ce noeud vérifie si un message a déjà été envoyé pour éviter les doublons.

  • Secretary Agent

    Ce noeud agit comme un agent de secrétaire, traitant le texte et fournissant des réponses basées sur des options définies.

  • Send reminder

    Ce noeud envoie un rappel via Telegram à un identifiant de chat spécifié.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur et de contenu définis.

  • Sticky Note1

    Ce noeud crée une note autocollante avec des dimensions et un contenu spécifiés.

  • Sticky Note2

    Ce noeud crée une note autocollante avec des dimensions définies.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "id": "SvYHgLmzosuLAe4A",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
    "templateCredsSetupCompleted": true
  },
  "name": "Google Calendar Event Reminder",
  "tags": [],
  "nodes": [
    {
      "id": "dff5d952-23cb-4822-9aec-0dcae3de568a",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "disabled": true,
      "position": [
        -40,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 1
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a6de9944-1dd7-430e-a1d9-100710ddfa9c",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        700,
        500
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "CDX6QM4gLYanh0P4",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6d2208a6-6000-4b6b-a82c-e346b7885409",
      "name": "Get upcoming event",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        240,
        300
      ],
      "parameters": {
        "limit": 5,
        "options": {},
        "timeMax": "={{ $now.plus({ hour: 1, minute:1 }) }}",
        "timeMin": "={{ $now.plus({ hour: 1 }) }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "davide.boizza@gmail.com",
          "cachedResultName": "davide.boizza@gmail.com"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "8RFK3u13g2PJEGa9",
          "name": "Google Calendar account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "e6f6e744-60b0-4b22-93bc-f3ffcfac71f6",
      "name": "Already sent?",
      "type": "n8n-nodes-base.removeDuplicates",
      "position": [
        480,
        300
      ],
      "parameters": {
        "options": {},
        "operation": "removeItemsSeenInPreviousExecutions",
        "dedupeValue": "={{ $json.id }}"
      },
      "typeVersion": 2
    },
    {
      "id": "882d08f5-790a-40bb-bda5-60744d587633",
      "name": "Secretary Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        720,
        300
      ],
      "parameters": {
        "text": "=These are the details of the event/appointment:\n\nEvent Name: {{ $('Get upcoming event').item.json.summary }}\nDescription: {{ $('Get upcoming event').item.json.description }}\nLocation: {{ $('Get upcoming event').item.json.location }}\nStart: {{ $('Get upcoming event').item.json.start.dateTime }}\nEnd: {{ $('Get upcoming event').item.json.end.dateTime }}\nCreated by: {{ $('Get upcoming event').item.json.creator.email }}",
        "options": {
          "systemMessage": "=## Core Identity\nYou are a professional and friendly virtual secretary, dedicated to reminder appointments with efficiency and a warm personal touch.\n\n## Communication Style\n- Communicate in a conversational, approachable manner\n- Maintain a balance between professional competence and friendly rapport\n- Use a tone that is informal yet precise\n- Inject occasional light humor and personality into interactions\n\n## Key Responsibilities\n1. Calendar Management\n   - Provide timely reminders and scheduling updates\n\n2. Communication Approach\n   - Respond promptly and clearly\n   - Maintain confidentiality and discretion\n\n## Interaction Guidelines\n- Use a friendly, conversational tone\n- Just describe the details of the event without asking questions\n\n## Tone and Language\n- Warm and approachable\n- Professional but not overly formal\n- Direct and clear in communication\n- Use simple, straightforward language\n- Show genuine care and attentiveness\n\nRemember: Your primary goal is to make the user's life easier, more organized, and less stressful through efficient and friendly administrative support."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.8
    },
    {
      "id": "82509a0f-9086-423e-8928-f882e59333b8",
      "name": "Send reminder",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1100,
        300
      ],
      "webhookId": "dbb6a96e-db3b-4827-9455-a91007b89616",
      "parameters": {
        "text": "={{ $json.output }}",
        "chatId": "CHAT_ID",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "0hSq9VwaiJifiscT",
          "name": "Telegram account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "d08dd565-4718-4fbc-af7c-7a2e042c96f8",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        -140
      ],
      "parameters": {
        "color": 3,
        "width": 620,
        "content": "## Google Calendar Event Reminder\nThis smart **Google Calendar** workflow fixes that by sending you a clear, friendly reminder exactly **1 hour before your event starts**—delivered through **Telegram** as if a personal assistant were looking out for you. Powered by **AI**, it transforms cold calendar alerts into warm, conversational nudges you won't ignore."
      },
      "typeVersion": 1
    },
    {
      "id": "7a9379ca-f301-40b9-ae90-742663bbcdf2",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -40,
        40
      ],
      "parameters": {
        "width": 620,
        "height": 140,
        "content": "## STEP 1\n- In the \"Get upcoming event\" node enter how much time before the event starts you want to be notified. It is currently set to 1 hour\n- In the Telegram node replace CHAT_ID with that of your personal Bot"
      },
      "typeVersion": 1
    },
    {
      "id": "d7852912-6501-4a1b-8928-6eb890e4aea8",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        240
      ],
      "parameters": {
        "width": 220,
        "height": 200,
        "content": "Prevent multiple reminders for the same event"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "timezone": "Europe/Rome",
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "d0dd74db-e96c-4a09-a8d1-6fb193b6e015",
  "connections": {
    "Already sent?": {
      "main": [
        [
          {
            "node": "Secretary Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Secretary Agent": {
      "main": [
        [
          {
            "node": "Send reminder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get upcoming event",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Secretary Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get upcoming event": {
      "main": [
        [
          {
            "node": "Already sent?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Google Calendar, Telegram, rappels : pour qui est ce workflow ?

Ce workflow s'adresse aux entreprises et équipes qui utilisent Google Calendar pour la gestion de leurs événements. Il est particulièrement utile pour les professionnels qui souhaitent automatiser l'envoi de rappels, sans nécessiter de compétences techniques avancées. Les PME et les TPE peuvent également en bénéficier pour optimiser leur organisation.

Workflow n8n Google Calendar, Telegram, rappels : problème résolu

Ce workflow résout le problème de la gestion des rappels d'événements, souvent négligés dans un emploi du temps chargé. En automatisant l'envoi de notifications, il élimine les risques d'oubli et de désorganisation. Les utilisateurs peuvent ainsi se concentrer sur leurs tâches sans craindre de manquer des rendez-vous importants, ce qui améliore leur efficacité et leur tranquillité d'esprit.

Workflow n8n Google Calendar, Telegram, rappels : étapes du workflow

Étape 1 : Le workflow est déclenché par un 'Schedule Trigger' à des intervalles réguliers.

  • Étape 1 : Il interroge Google Calendar pour obtenir les événements à venir grâce au noeud 'Get upcoming event'.
  • Étape 2 : Le noeud 'Already sent?' vérifie si un rappel a déjà été envoyé pour éviter les répétitions.
  • Étape 3 : Le modèle OpenAI génère un message de rappel personnalisé.
  • Étape 4 : Le noeud 'Secretary Agent' prépare le message pour l'envoi.
  • Étape 5 : Enfin, le noeud 'Send reminder' envoie le rappel via Telegram.

Workflow n8n Google Calendar, Telegram, rappels : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier les paramètres du 'Schedule Trigger' pour ajuster la fréquence des rappels. Dans le noeud 'Get upcoming event', vous pouvez spécifier le calendrier à interroger et les limites de temps. Il est également possible d'adapter le contenu du message généré par le modèle OpenAI en modifiant les options du noeud 'OpenAI Chat Model'. Assurez-vous de configurer correctement le noeud 'Send reminder' avec l'ID de chat Telegram approprié pour que les rappels soient envoyés au bon destinataire.