Google Sheets und Gmail mit Google Apps Script automatisieren

Erstelle ein einfügefertiges Google Apps Script: Es liest deine Tabelle, verschickt Mails oder legt Termine an, läuft per Trigger, vermeidet Duplikate und bringt Testmodus und Einrichtung mit. Entwickelt für ChatGPT, Claude, Gemini und Microsoft Copilot. Er enthält 4 anpassbare Variablen und lässt sich kostenlos mit einem Klick kopieren.

Fortgeschritten · Code · Redaktionelle Prüfung ausstehend

Prompt

Du bist erfahrener Entwickler für Google Apps Script und Google Workspace und baust robuste Automatisierungen für nicht-technische Teams.

Kontext:
- Was ich automatisieren will: {{aufgabe}}
- Aufbau der Tabelle (Name des Tabellenblatts und Spalten mit einer Beispielzeile): {{tabelle}}
- Wann es laufen soll: {{trigger}}
- Beteiligte Dienste (Gmail, Kalender, Drive, Docs, Forms): {{dienste}}

Liefere:
1. Eine Zusammenfassung des Ablaufs in 4-6 Schritten und deine Annahmen über die Daten.
2. Vollständigen Apps-Script-Code (JavaScript V8) mit:
   - Einem CONFIG-Block am Anfang (Blattname, Spalten, Absender, Betreff), änderbar ohne Eingriff in die Logik.
   - Lesen im Block mit getValues() und Schreiben im Block, nicht Zelle für Zelle.
   - Einer Statusspalte, die verarbeitete Zeilen markiert und doppelte Mails verhindert, falls das Skript zweimal läuft.
   - Einem Testmodus (DRY_RUN), der protokolliert, was passieren würde, ohne etwas zu senden.
   - Fehlerbehandlung pro Zeile, Logging mit console.log und einer Zusammenfassung am Ende.
   - LockService, falls gleichzeitige Ausführungen möglich sind.
3. Eine Funktion, die den Trigger per Code anlegt, sowie die manuelle Alternative über das Trigger-Menü.
4. Einrichtung Schritt für Schritt: Erweiterungen > Apps Script, einfügen, speichern, Berechtigungen erteilen (erkläre, welche Berechtigungen angefragt werden und warum).
5. Zu beachtende Limits: tägliche Versandkontingente und maximale Laufzeit je nach Kontotyp; schreib [PRÜFEN in Googles Kontingent-Dokumentation] statt exakter Zahlen.
6. Einen Testplan mit 3 Beispielzeilen, davon eine mit leeren oder fehlerhaften Daten.

Einschränkungen:
- Keine externen Bibliotheken oder kostenpflichtigen Dienste.
- Frag nie nach Passwörtern und speichere keine im Code.
- Ist der Tabellenaufbau unklar, frag mich, bevor du den Code schreibst.

Format: nummerierte Abschnitte, der Code in einem einzigen Block und Kommentare auf Deutsch.

So verwenden Sie ihn

Beschreibe deine Spalten anhand einer echten Zeile (ohne personenbezogene Daten). Starte das Skript zuerst mit aktiviertem DRY_RUN, prüfe das Protokoll und schalte es erst danach ab und lege den Trigger an.

Anwendungsbeispiel

Aufgabe: Erinnerungsmail 3 Tage vor Fälligkeit jeder Rechnung · Tabelle: Blatt „Rechnungen“ mit Kunde, E-Mail, Betrag in Euro, Fälligkeitsdatum, Status · Trigger: täglich um 8 Uhr · Dienste: Gmail.

Beispielergebnis

2. Code (Apps Script, V8)

const CONFIG = {
  SHEET_NAME: 'Anmeldungen',
  STATUS_COL: 5,            // A=Name, B=E-Mail, C=Kurs, D=Startdatum, E=Status
  SUBJECT: 'Willkommen in deinem Kurs',
  DRY_RUN: true,            // set to false once the test run looks right
};

function sendWelcomeEmails() {
  const lock = LockService.getScriptLock();
  if (!lock.tryLock(30 * 1000)) return;           // another run is in progress
  try {
    const sheet = SpreadsheetApp.getActive().getSheetByName(CONFIG.SHEET_NAME);
    const lastRow = sheet.getLastRow();
    if (lastRow < 2) return;
    const rows = sheet.getRange(2, 1, lastRow - 1, CONFIG.STATUS_COL).getValues();
    let sent = 0;
    const statuses = rows.map(([name, email, course, start, status], i) => {
      if (status) return [status];                // already processed: skip
      try {
        if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) throw new Error('invalid email');
        const date = Utilities.formatDate(new Date(start), Session.getScriptTimeZone(), 'dd.MM.yyyy');
        const body = `Hallo ${name},\n\nwillkommen im Kurs „${course}“! Wir starten am ${date}.`;
        if (CONFIG.DRY_RUN) { console.log(`[DRY_RUN] would email ${email}`); return ['']; }
        GmailApp.sendEmail(email, CONFIG.SUBJECT, body);
        sent++;
        return ['GESENDET ' + new Date().toISOString()];
      } catch (e) {
        console.log(`Row ${i + 2}: ${e.message}`);
        return ['FEHLER: ' + e.message];
      }
    });
    sheet.getRange(2, CONFIG.STATUS_COL, statuses.length, 1).setValues(statuses); // one bulk write
    console.log(`Done: ${sent} sent out of ${rows.length} rows`);
  } finally {
    lock.releaseLock();
  }
}

function createTrigger() {
  ScriptApp.newTrigger('sendWelcomeEmails')
    .forSpreadsheet(SpreadsheetApp.getActive()).onFormSubmit().create();
}

Die Statusspalte verhindert doppelte Mails, falls das Skript zweimal läuft. Die Google-Kalender-Einladung kommt in dieselbe Schleife, sobald der Kurskalender feststeht → [AUSFÜLLEN]…

Wichtige Fakten

Kategorie
Programmierung & Entwicklung · Automatisierungen
Ausgabetyp
Code
Niveau
Fortgeschritten
Entwickelt für
ChatGPT, Claude, Gemini und Microsoft Copilot
Verifiziert in
Redaktionelle Prüfung ausstehend
Variablen
Was automatisiert werden soll, Aufbau der Tabelle, Trigger und Beteiligte Dienste
Sprache
Deutsch
Preis
Kostenlos, ohne Anmeldung
Aktualisiert
07.11.2026

Häufig gestellte Fragen

Muss ich programmieren können, um das Skript zu nutzen?

Kaum: Code einfügen, CONFIG-Block anpassen und Berechtigungen erteilen genügt. Teste es trotzdem zuerst mit einer Kopie der Tabelle, bevor echte Daten im Spiel sind.

Warum verlangt das Skript so viele Berechtigungen?

Apps Script fragt Zugriff auf jeden Dienst an, den der Code nutzt, etwa Gmail oder Kalender. Prüf die Liste: Wird etwas Unnötiges verlangt, lässt sich der Code so anpassen, dass weniger Rechte nötig sind.

Wofür ist dieser Prompt gedacht?

Erstelle ein einfügefertiges Google Apps Script: Es liest deine Tabelle, verschickt Mails oder legt Termine an, läuft per Trigger, vermeidet Duplikate und bringt Testmodus und Einrichtung mit.

Mit welchen KI-Tools funktioniert er?

Er ist für ChatGPT, Claude, Gemini und Microsoft Copilot entwickelt. Wir haben ihn in diesen Tools noch nicht überprüft, daher können die Ergebnisse variieren.

Wie passe ich den Prompt an?

Klicken Sie auf „Anpassen“ und füllen Sie die Variablen aus (Was automatisiert werden soll, Aufbau der Tabelle, Trigger und Beteiligte Dienste). Der Text wird sofort aktualisiert und lässt sich anschließend mit einem Klick kopieren. Die Werte werden nur in Ihrem Browser gespeichert.

Brauche ich Erfahrung, um ihn zu verwenden?

Er ist für Fortgeschrittene: Es hilft, das Thema zu kennen, um guten Kontext zu liefern und das Ergebnis kritisch zu prüfen.

Ist dieser Prompt kostenlos?

Ja. Jeder Prompt von HomeCasa Prompts ist kostenlos, ohne Anmeldung und ohne Abonnement. Sie können ihn auch in beruflichen Projekten verwenden.

Kann ich der KI-Ausgabe vertrauen?

Betrachten Sie sie als hochwertigen Entwurf: Prüfen Sie Daten, Zahlen und wichtige Aussagen immer, bevor Sie etwas veröffentlichen oder Entscheidungen treffen.

Ähnliche Prompts