Envoi de messages d'indisponibilité/vacances dynamique

Intermédiaire

Ceci est unPersonal Productivityworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme If, Code, Gmail, GmailTrigger, GoogleCalendar. Envoi dynamique de messages d'indisponcence/congé via Gmail et Google Calendar

Prérequis
  • Compte Google et informations d'identification Gmail API
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "d6e2f2f655b1125bbcac14a4cac6d2e46c7a150e927f85fc96fdca1a6dc39e0e",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "6f15bcff-5358-4f9a-914d-dfd1e87c6e6f",
      "name": "Trouver la date de retour au bureau",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        860,
        0
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "orderBy": "startTime"
        },
        "timeMax": "={{ $now.plus({ week: 2 }) }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "d1ba7566bd33c38760d89364501c748a2c0d75f9bdca2b77e1565b7a93fe146a@group.calendar.google.com",
          "cachedResultName": "General Manager"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "hpuoiTdX3AdioCk5",
          "name": "Rosh's Personal Calendar Account"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "f922f416-5c9e-4053-8612-30d0aa5f92b2",
      "name": "Formater joliment la date de retour",
      "type": "n8n-nodes-base.code",
      "position": [
        1120,
        0
      ],
      "parameters": {
        "jsCode": "const dateTime = $input.first().json.start.dateTime;\nconst timeZone = $input.first().json.start.timeZone;\n\nconst date = new Date(dateTime);\n\nconst returnDate = new Intl.DateTimeFormat(undefined, {\n  timeZone,\n  weekday: 'long',\n  year: 'numeric',\n  month: 'long',\n  day: 'numeric'\n}).format(date);\n\nreturn [{ json: { returnDate } }];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "4585b157-5413-40a6-b661-5836aa1c5717",
      "name": "Envoyer le message d'absence du bureau",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1380,
        0
      ],
      "webhookId": "ecf81e7d-0ed2-425b-9219-42e25657353d",
      "parameters": {
        "sendTo": "={{ $('Receive an Email in Gmail').item.json.From }}",
        "message": "=Hello, \n\nThanks for your message!\n\nI am currently out of the office, and I will be returning on {{ $json.returnDate }}.\n\nBest, \n[User Name]",
        "options": {
          "appendAttribution": true
        },
        "subject": "Out of Office / Vacation Responder",
        "emailType": "text"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "x5LsvRUYpInxYmcG",
          "name": "Rosh's Personal Email"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2a758f6b-981b-42e8-8b6d-65c28d67d3af",
      "name": "Recevoir un e-mail dans Gmail",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        80,
        0
      ],
      "parameters": {
        "filters": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "x5LsvRUYpInxYmcG",
          "name": "Rosh's Personal Email"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "8b0b39a3-2109-4d3f-adb9-016b3aac1712",
      "name": "Vérifier le calendrier pour les événements professionnels à venir",
      "type": "n8n-nodes-base.googleCalendar",
      "position": [
        360,
        0
      ],
      "parameters": {
        "limit": 1,
        "options": {
          "orderBy": "startTime"
        },
        "timeMax": "={{ $now.plus(1, 'days').format('yyyy-MM-dd') }}",
        "calendar": {
          "__rl": true,
          "mode": "list",
          "value": "d1ba7566bd33c38760d89364501c748a2c0d75f9bdca2b77e1565b7a93fe146a@group.calendar.google.com",
          "cachedResultName": "General Manager"
        },
        "operation": "getAll"
      },
      "credentials": {
        "googleCalendarOAuth2Api": {
          "id": "hpuoiTdX3AdioCk5",
          "name": "Rosh's Personal Calendar Account"
        }
      },
      "executeOnce": true,
      "typeVersion": 1.3,
      "alwaysOutputData": true
    },
    {
      "id": "747f8201-60ce-401d-83da-ab2d8867dbca",
      "name": "Événements à venir aujourd'hui ?",
      "type": "n8n-nodes-base.if",
      "position": [
        600,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "5b1567fc-439c-4924-9290-0bcbb0be9b06",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "={{ $json.summary }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "26b69ab5-7004-4c1c-b6bd-8d332ed26a34",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -600,
        -380
      ],
      "parameters": {
        "width": 580,
        "height": 580,
        "content": "## What it Does\nAutomatically checks your Google Calendar to determine if you're officially off work for the rest of today. If so, it auto-sends a personalized out‑of‑office reply via Gmail, telling senders when you’ll be back, based on your next calendar event within the next 2 weeks.\n\n## Prerequisites\nTo use this template, you'll need:\n- Gmail credentials (for the trigger and reply nodes)\n- Google Calendar credentials (for both calendar checks)\n- A dedicated work calendar selected in the Calendar nodes\n\n\n## Why It's Useful\nIdeal for freelancers, consultants, or remote workers who don’t follow a strict 9–5, yet want automated responses aligned with their actual availability, not a static setting. It’s dynamic, real-time, and easy to tweak.\n\n## Classification\nUse Case: Calendar-driven out-of-office automation\n\nRecommended audience: Business professionals, freelancers, remote employees\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "74fbf32d-f2a9-4d14-a810-2be2c89160f8",
      "name": "Note adhésive 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -380
      ],
      "parameters": {
        "width": 760,
        "height": 200,
        "content": "\n## User Setup Instructions\n- Gmail Trigger: Connect your Gmail account and add any desired filters (labels, senders).\n- Google Calendar Nodes: Connect your calendar account and select your “work” calendar in both nodes.\n- Function Node: No changes needed unless you prefer a different date format.\n- Gmail Send Node: Edit the message template and toggle attribution as desired."
      },
      "typeVersion": 1
    },
    {
      "id": "32209323-40fd-47a7-9fb0-2d44b19c87ed",
      "name": "Note adhésive 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Gmail Trigger\n- Monitors incoming emails every minute\n- Can be filtered (e.g., labels or VIP senders)"
      },
      "typeVersion": 1
    },
    {
      "id": "4d571591-139a-41cf-96da-9fb92e27e2a1",
      "name": "Note adhésive 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        280,
        -160
      ],
      "parameters": {
        "color": 5,
        "width": 500,
        "height": 360,
        "content": "## Calendar Check #1\n- Inspects if any events remain today"
      },
      "typeVersion": 1
    },
    {
      "id": "222fbee1-ea2f-4399-a3ab-7146997d8033",
      "name": "Note adhésive 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Calendar Check #2\n- If no remaining events, scans next 14 days for the next event"
      },
      "typeVersion": 1
    },
    {
      "id": "aae2c7e1-cc62-45cd-9fcc-46b03b6bdd7f",
      "name": "Note adhésive 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1060,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Function Node\n- Formats the return date as Weekday, Month D, YYYY (e.g., “Thursday, July 24, 2025”)"
      },
      "typeVersion": 1
    },
    {
      "id": "62c57e58-5f16-48e7-a532-d8b387a8f045",
      "name": "Note adhésive 6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1320,
        -160
      ],
      "parameters": {
        "color": 5,
        "height": 360,
        "content": "## Gmail Send\n- Sends a customized out‑of‑office email, using the formatted date\n- Optionally includes n8n attribution (editable)"
      },
      "typeVersion": 1
    },
    {
      "id": "90c00754-61da-4326-90a0-ca90e6f6c483",
      "name": "Note adhésive 7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        220
      ],
      "parameters": {
        "width": 760,
        "content": "\n## Customization Options\n- Edit the final email content and tone in the Send node\n- Adjust calendar lookahead in Calendar Check #2 (default is 14 days)\n- Add Gmail filters to restrict auto-replies (e.g. only specific senders or labels)"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "f922f416-5c9e-4053-8612-30d0aa5f92b2": {
      "main": [
        [
          {
            "node": "4585b157-5413-40a6-b661-5836aa1c5717",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2a758f6b-981b-42e8-8b6d-65c28d67d3af": {
      "main": [
        [
          {
            "node": "8b0b39a3-2109-4d3f-adb9-016b3aac1712",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "747f8201-60ce-401d-83da-ab2d8867dbca": {
      "main": [
        [],
        [
          {
            "node": "6f15bcff-5358-4f9a-914d-dfd1e87c6e6f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6f15bcff-5358-4f9a-914d-dfd1e87c6e6f": {
      "main": [
        [
          {
            "node": "f922f416-5c9e-4053-8612-30d0aa5f92b2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8b0b39a3-2109-4d3f-adb9-016b3aac1712": {
      "main": [
        [
          {
            "node": "747f8201-60ce-401d-83da-ab2d8867dbca",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Productivité personnelle

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds14
Catégorie1
Types de nœuds6
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34