{
  "name": "Terminerinnerung an Kunden aus Google Kalender",
  "nodes": [
    {
      "parameters": {
        "content": "## Terminerinnerung an Kunden aus Google Kalender\n\n**Zweck:** Holt jeden Tag um 9 Uhr die Termine von morgen aus dem Kalender und schickt jedem eingeladenen Gast eine eigene Erinnerung. Je E-Mail-Adresse geht eine eigene Mail raus, die Gäste sehen die Adressen der anderen nicht.\n\n**Zugangsdaten (Credentials):**\n- Google Calendar: Google OAuth2\n- E-Mail senden: SMTP-Zugang\n\n**Wer bekommt eine Mail:** Gäste ohne dich selbst, ohne den Organisator, ohne Ressourcen (Räume) und ohne Gäste mit Status „abgelehnt“.\n\n**Anpassen:**\n- Kalender in „Termine morgen“ (Standard: primary)\n- In „Empfänger auswählen“ die eigene Domain eintragen (Standard: deine-firma.de), sonst bekommen auch Kollegen eine Erinnerung\n- Absender und Text in „Erinnerung senden“\n\n**Datenschutz:** Gäste erhalten Titel, Zeit und Ort des Termins. Prüfe vor dem Aktivieren, ob Erinnerungen an Gäste zulässig sind und der Titel nichts Internes verrät. Keine Rechtsberatung.\n\nValidiert am 09.11.2026 gegen das n8n-Node-Schema, nicht in Produktion ausgeführt.\nQuelle: automationskompass.de/n8n-templates/",
        "height": 700,
        "width": 420,
        "color": 7
      },
      "id": "25ecdc67-f7d8-4249-8a67-57c57435c8ee",
      "name": "Notiz",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -520,
        120
      ]
    },
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 9
            }
          ]
        }
      },
      "id": "95300611-c8bc-49cf-9e01-921a6840cc34",
      "name": "Täglich 9 Uhr",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        300
      ]
    },
    {
      "parameters": {
        "operation": "getAll",
        "calendar": {
          "__rl": true,
          "value": "primary",
          "mode": "list",
          "cachedResultName": "primary"
        },
        "returnAll": true,
        "timeMin": "={{ $now.plus({ days: 1 }).startOf('day').toISO() }}",
        "timeMax": "={{ $now.plus({ days: 1 }).endOf('day').toISO() }}",
        "options": {
          "singleEvents": true
        }
      },
      "id": "81367ef4-7525-4c09-8673-14faeea6832e",
      "name": "Termine morgen",
      "type": "n8n-nodes-base.googleCalendar",
      "typeVersion": 1.3,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "id": "173fa87a-1e2c-4e46-9247-066d850699db",
              "leftValue": "={{ ($json.attendees || []).length }}",
              "rightValue": 0,
              "operator": {
                "type": "number",
                "operation": "gt"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "7d5e4a18-c945-4c30-870b-21db1f099845",
      "name": "Hat Gäste?",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        480,
        300
      ]
    },
    {
      "parameters": {
        "fieldToSplitOut": "attendees",
        "include": "allOtherFields",
        "options": {
          "destinationFieldName": "gast"
        }
      },
      "id": "f86ceb7d-9d82-422a-a632-647bc3731f65",
      "name": "Gäste einzeln",
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        720,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose",
            "version": 2
          },
          "conditions": [
            {
              "id": "9b4e0f13-2cd6-4cd6-bf1a-6ac8b2334b50",
              "leftValue": "={{ !$json.gast.self && !$json.gast.organizer && !$json.gast.resource && $json.gast.responseStatus !== 'declined' && !!$json.gast.email && !$json.gast.email.endsWith('@deine-firma.de') }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "id": "990fb76a-7e78-4154-998b-09e973df0581",
      "name": "Empfänger auswählen",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        960,
        300
      ]
    },
    {
      "parameters": {
        "fromEmail": "termine@deine-firma.de",
        "toEmail": "={{ $json.gast.email }}",
        "subject": "=Erinnerung: {{ $json.summary }} am {{ DateTime.fromISO($json.start.dateTime || $json.start.date).toFormat('dd.MM.yyyy HH:mm') }}",
        "emailFormat": "text",
        "text": "=Guten Tag,\n\nwir erinnern an unseren Termin „{{ $json.summary }}“ am {{ DateTime.fromISO($json.start.dateTime || $json.start.date).toFormat('dd.MM.yyyy') }} um {{ DateTime.fromISO($json.start.dateTime || $json.start.date).toFormat('HH:mm') }} Uhr.\n{{ $json.location ? 'Ort: ' + $json.location : '' }}\n\nViele Grüße",
        "options": {
          "appendAttribution": false
        }
      },
      "id": "a04906df-440b-41a6-9439-ceb250ae7e4f",
      "name": "Erinnerung senden",
      "type": "n8n-nodes-base.emailSend",
      "typeVersion": 2.1,
      "position": [
        1200,
        300
      ]
    }
  ],
  "connections": {
    "Täglich 9 Uhr": {
      "main": [
        [
          {
            "node": "Termine morgen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Termine morgen": {
      "main": [
        [
          {
            "node": "Hat Gäste?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Hat Gäste?": {
      "main": [
        [
          {
            "node": "Gäste einzeln",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gäste einzeln": {
      "main": [
        [
          {
            "node": "Empfänger auswählen",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Empfänger auswählen": {
      "main": [
        [
          {
            "node": "Erinnerung senden",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1",
    "timezone": "Europe/Berlin"
  },
  "meta": {
    "templateCredsSetupCompleted": false
  }
}
