Wiederkehrende Aufgaben in Todoist sind fantastisch: sie ersparen mir das ständige neu Anlegen von Routine-Items. Aber irgendwann merkte ich, dass selbst diese Automatisierung noch Zeit kostet — etwa wenn Tags fehlen, Subtasks ergänzt werden müssen oder eine Aufgabe in mehrere Projekte kopiert werden soll. In diesem Artikel zeige ich dir, wie ich Todoist mit eigenen Skripten und Zapier kombiniere, damit wiederkehrende Tasks wirklich „hands-off“ werden — und vor allem, wie ich den echten Zeitgewinn messe.

Warum ich über Automatisierung hinausgehe

Todoist bietet eingebaute Wiederholungen (z. B. „jeden Montag“) und Vorlagen, aber in der Praxis fehlen oft Details: Abhängigkeiten, individuelle Beschreibungen, Zugewiesene Personen (bei geteilten Projekten) oder externe Aktionen wie Kalender-Events und Notion-Updates. Wenn ich diese manuell nachpflege, sammelt sich wieder Zeitaufwand an—genau das möchte ich vermeiden.

Meine Zielsetzung war also klar: so viel wie möglich automatisch erstellen lassen, flexibel anpassbar per Skript, und verlässlich triggerbar über Zapier oder Webhooks. So entstehen standardisierte, fehlerarme Aufgabenstrecken, die ich zentral steuern kann.

Architektur: Todoist + Skripte + Zapier

  • Todoist bleibt die Single Source of Truth für Aufgaben und Fälligkeiten.
  • Skripte (meist Node.js oder Python) erzeugen komplexe Task-Strukturen: Subtasks, Labels, Prioritäten, Kommentare, Attachments.
  • Zapier verbindet externe Trigger (z. B. Formularabschlüsse, Kalender-Events, Webhook-Aufrufe) mit meinen Skripten oder direkt mit der Todoist-API.
  • Webhook/Logging für die Messung: Jeder Erstellungsprozess protokolliert Start- und Endzeit in einer Logdatei oder einer Google Sheet-Zeile.

Ein typischer Workflow, den ich automatisiert habe

Beispiel: Jeden ersten Montag im Monat wird ein „Content-Review“-Workflow für mehrere Projekte angelegt. Die Aufgabe soll:

  • Hauptaufgabe in Todoist mit Fälligkeitsdatum
  • 5 Subtasks (Recherche, Draft, Review, Korrektur, Veröffentlichung)
  • Labels: #content, #monatlich
  • Kommentar mit Links zu relevanten Google Docs
  • Kalendereintrag in Google Calendar
  • Einträge in meiner Zeiterfassung (z. B. Toggl) zur Messung

So etwas lässt sich manuell in 3–10 Minuten pro Runde anlegen — je nach Aufwand. Mit Skript und Zapier brauchst du nur den Trigger; der Rest läuft per Code.

Wie ich das technisch umgesetzt habe

Ich nutze meistens Node.js, weil die Bibliotheken für HTTP-Anfragen, OAuth und JSON-Handling sehr gut sind. Grober Ablauf eines Skripts:

  • Empfange Daten (Webhook von Zapier oder Parameter aus Zap)
  • Erzeuge Hauptaufgabe via Todoist-API (POST /tasks)
  • Erzeuge Subtasks (POST /tasks/{parent_id}/subtasks) und setze Labels/Prioritäten
  • Füge Kommentar hinzu (POST /comments)
  • Erstelle Google Calendar Event und/oder starte einen Toggl-Timer (optional)
  • Logge Start/Endzeit in Google Sheet oder Datenbank für spätere Analyse

Ein verkürztes Node.js-Beispiel (konzeptionell):

// pseudo-code

const todoistApi = async (endpoint, body) => { /* fetch mit Bearer Token */ }

const main = async (payload) => {

const task = await todoistApi('/tasks', { content: payload.title, due_string: payload.due });

for (const s of payload.subtasks) { await todoistApi(`/tasks/${task.id}/subtasks`, { content: s }); }

// Kommentar, Labels, Calendar, Logging ...

}

Zapier als Orchestrator

Zapier setze ich ein, um Trigger aus vielen Quellen zu vereinheitlichen: ein Google Form, ein neuer Trello-Card, ein Stripe-Event oder ein manueller Zapier-Button. Zapier ruft dann mein Skript per Webhook auf (oder nutzt direkt die Todoist-App für einfache Fälle).

Vorteile von Zapier:

  • Einfaches Mapping von Feldwerten
  • Retry-Logik bei Fehlern
  • Kein eigener Server nötig, wenn Webhooks & serverlose Funktionen (z. B. AWS Lambda) eingesetzt werden

So messe ich den echten Zeitgewinn

Wichtig: Zeitgewinn ist nicht nur die Differenz zwischen „wie lange es jetzt dauert“ und „wie lange es früher dauerte“. Ich messe drei Dinge:

  • Die Zeit für manuelle Erstellung vorher (t_manual).
  • Die Zeit, die das Skript benötigt (t_automated) — inklusive Wartezeit durch API-Limits und Zapier.
  • Die Nachbearbeitungszeit, die Nutzer*innen noch investieren müssen (t_manual_after).

Formel für den Netto-Zeitgewinn pro Task: Zeitgewinn = t_manual - (t_automated + t_manual_after)

Praxis: Ich sammle Daten auf zwei Wegen:

  • Vorher: Ich stoppe die Zeit bei manueller Anlage (Stichprobe von ~20 Fällen).
  • Nachher: Jedes Skript schreibt einen Logeintrag mit Start-/Endzeit; Nutzer*innen geben optional per Short-Formular an, wenn Nachbearbeitung nötig war (z. B. „0,5 min Korrektur“).

Beispiel-Messdaten

Aufgabe t_manual (min) t_automated (min) t_manual_after (min) Zeitgewinn (min)
Content-Review (mehrere Subtasks) 8 0.8 0.5 6.7
Onboarding-Checklist 12 1.2 1 9.8
Monatlicher Report 6 0.6 0.2 5.2

Diese Tabelle spiegelt meine echten Messungen: bei komplexeren Workflows spare ich meist 6–10 Minuten pro Instanz. Bei häufigen Aufgaben summiert sich das schnell — bei 20 Wiederholungen pro Monat sind das hundert Minuten und mehr.

Tipps, damit die Automation zuverlässig bleibt

  • Implementiere Logging und Alerts: Bei API-Fehlern oder Rate-Limits möchte ich sofort informiert werden.
  • Versioniere deine Skripte: Wenn sich Task-Strukturen ändern, brauche ich die alte Version zur Nachvollziehbarkeit.
  • Baue „Preview“-Zaps ein: Ein Test-Modus legt Aufgaben im Projekt „Sandbox“ an, bevor die Live-Umgebung bedient wird.
  • Dokumentiere Felder und Mapping in Zapier: So weiß jedes Teammitglied, wie Daten fließen.

Häufige Fehler und wie ich sie vermeide

Fehler 1: Falsche Fälligkeiten durch unterschiedliche Datumsformate. Lösung: Immer ISO-Strings verwenden oder Todoist-eigene „due_string“-Formate nutzen.

Fehler 2: Labels/Projekte existieren nicht. Lösung: Skript prüft vorab und legt fehlende Labels/Projekte automatisch an (oder meldet es).

Fehler 3: Doppelte Tasks bei Retry von Zapier. Lösung: Idempotenz implementieren: Skript prüft, ob eine Aufgabe mit identischem External-ID-Tag bereits existiert.

Was du sofort ausprobieren kannst

  • Lege einen einfachen Zap an: Trigger Formular > Webhook > dein Skript > neue Todoist-Aufgabe. Testen mit Sandbox-Projekt.
  • Baue Logging in Google Sheets: Ein Zap oder das Skript schreibt pro Erstellung eine Zeile mit Zeitstempeln.
  • Führe eine kleine Zeitstudie durch: 10 manuelle vs. 10 automatisierte Fälle messen und vergleichen.

Wenn du willst, teile ich in einem nächsten Artikel ein komplettes, kommentiertes Node.js-Beispiel inklusive Idempotenz-Handling, OAuth-Flow und Google Calendar-Integration. Bis dahin: Fang klein an, automatisiere das Meiste deiner wiederkehrenden Arbeit — und messe genau. So wird Automatisierung nicht nur ein Buzzword, sondern echte Zeitersparnis.