Google TasksAPIWebhooksZapierAutomatisierung

Google Tasks API, Webhooks & Zapier: API für Power-User

TasksBoard Team
TasksBoard Team
Google Tasks API, Webhooks & Zapier: API für Power-User

Du möchtest, dass bei jeder Formularabgabe eine Aufgabe in Google Tasks erstellt wird. Oder eine Slack-Nachricht, wenn ein Teammitglied eine Aufgabe auf der gemeinsamen Launch-Liste erledigt. Oder ein nächtliches Skript, das überfällige Aufgaben in eine Tabelle exportiert.

Google bietet eine Tasks API, die funktioniert. Aber es gibt keine Webhooks, also bedeutet “wenn eine Aufgabe erledigt ist” regelmäßiges Abfragen aller Listen per Timer. Die API kennt keine Labels, Verantwortliche oder Boards, weil Google Tasks diese nicht hat. Und jedes Skript beginnt mit einem Google Cloud-Projekt, einem OAuth Consent Screen und einer Token-Aktualisierungsroutine.

TasksBoard bietet nun eine öffentliche REST API für deine Google Tasks-Daten, mit persönlichen API-Schlüsseln, HMAC-signierten Webhooks und einer Zapier-Integration. Diese Anleitung erklärt, was sie bietet, wie du einen Schlüssel erhältst, die wichtigsten Endpunkte, wie Webhooks und Polling funktionieren und für wen das gedacht ist. Die API ist Teil des Team-Plans.

Was die TasksBoard API zu Google Tasks hinzufügt

Die API liest und schreibt die gleichen Google Tasks-Listen und Aufgaben, die du in Gmail und der Google Tasks-App siehst. Jede Listen- und Aufgaben-ID ist die Google Tasks-ID, sodass alles, was du erstellst, mit Google Tasks selbst und anderen Tools, die die Google API nutzen, kompatibel bleibt.

Darüber hinaus macht sie sichtbar, was TasksBoard hinzufügt:

  • Labels und Verantwortliche als eigene Felder. Google Tasks speichert nur Titel, Notizen und ein Fälligkeitsdatum; TasksBoard verwaltet Labels und Verantwortliche innerhalb der Notizen (Labels in der ersten Zeile, dann 👤 Assigned to <Email>). Die API liest und schreibt sie als labels und assignee, sodass der Freitext in notes das ist, was Nutzer auf dem Board sehen.
  • Boards: Welche Listen jedes TasksBoard-Board anzeigt.
  • Geteilte Listen: Ein shared-Flag pro Liste und Events, wenn ein Mitarbeiter eine geteilte Aufgabe ändert.
  • Webhooks für task.created, task.updated, task.completed und task.deleted.

Basis-URL: https://api.tasksboard.com/v1. Antworten sind JSON unter einem data-Schlüssel; Fehler kommen als { "error": { "code", "message", "details" } }, wobei code stabil ist und details bei einem 422 die ungültigen Felder benennt.

API-Schlüssel erstellen

Schlüssel sind persönlich. Ein Schlüssel agiert als der Nutzer, der ihn erstellt hat: Alles, was diese Person in Google Tasks tun kann, kann auch der Schlüssel.

  1. Klicke in TasksBoard auf dein Avatar und öffne Team, dann den API-Tab (oder gehe direkt zu /team?tab=api).
  2. Klicke, um einen Schlüssel zu erstellen. Wähle, ob er schreiben darf; ein Schlüssel ohne Schreibberechtigung erhält 403 forbidden bei jedem Schreibversuch.
  3. Kopiere den Schlüssel. Er beginnt mit tb_live_ und wird nur einmal angezeigt.
  4. Sende ihn als Bearer-Token bei jeder Anfrage:
curl https://api.tasksboard.com/v1/lists \
  -H "Authorization: Bearer tb_live_…"

Derselbe Tab listet deine Schlüssel mit ihrem Scope auf, lässt dich einen widerrufen und zeigt deine Webhooks. Widerrufe einen Schlüssel sofort, wenn er geleakt sein könnte; ein neuer ist in Sekunden erstellt.

Die wichtigsten Endpunkte

Ein kurzer Überblick über die Ressourcen. Die vollständige Referenz, generiert aus der OpenAPI-Definition, findest du im Help Center: TasksBoard API-Referenz.

Account

  • GET /me: Das Konto, zu dem der Schlüssel gehört, dessen Plan und die Berechtigungen des Schlüssels.

Listen

  • GET /lists: Deine Google Tasks-Listen mit shared und boardId.
  • POST /lists: Erstelle eine Liste (title).
  • GET /lists/{listId}: Eine einzelne Liste.

Aufgaben

  • GET /lists/{listId}/tasks: Standardmäßig offene Aufgaben; status=completed oder all, updatedAfter, dueBefore, dueAfter, includeDeleted.
  • POST /lists/{listId}/tasks: Erstelle eine Aufgabe mit title, notes, due, labels, assignee, parent (als Unteraufgabe), previous (nach einer bestimmten Aufgabe einfügen).
  • GET /tasks/{taskId}?listId=: Eine einzelne Aufgabe. Google adressiert Aufgaben über Liste und ID, daher ist listId erforderlich.
  • PATCH /tasks/{taskId}: Teilweise Aktualisierung; sende null, um notes, due, labels oder assignee zu löschen; status: "open" öffnet eine erledigte Aufgabe wieder.
  • POST /tasks/{taskId}/complete: Als erledigt markieren.
  • DELETE /tasks/{taskId}?listId=: Aufgabe löschen.

Boards

  • GET /boards: Deine Boards und die Listen-IDs, die jedes anzeigt. Das Hauptboard ist immer das erste.

Webhooks

  • GET, POST /webhooks sowie GET, PATCH, DELETE /webhooks/{webhookId}.

Eine Aufgabe mit Label und Verantwortlichem erstellen sieht so aus:

curl -X POST https://api.tasksboard.com/v1/lists/LIST_ID/tasks \
  -H "Authorization: Bearer tb_live_…" \
  -H "Content-Type: application/json" \
  -d '{"title": "Q3-Bericht versenden", "due": "2026-10-24",
       "labels": ["❗️Wichtig"], "assignee": "bob@example.com"}'

Der Verantwortliche muss ein Mitarbeiter der Liste (oder du selbst) sein. Listen-Endpunkte geben meta.nextCursor zurück, wenn es mehr gibt; übergib ihn als cursor mit den gleichen Filtern.

Limits, die du beachten solltest
  • 60 Anfragen pro Minute pro Schlüssel. Antworten enthalten X-RateLimit-Limit und X-RateLimit-Remaining; eine 429 enthält Retry-After in Sekunden. Die Quoten von Google Tasks gelten zusätzlich
  • Fälligkeitsdaten sind Datumsangaben. Google Tasks ignoriert die Tageszeit; ein Fälligkeitsdatum kommt immer um Mitternacht UTC zurück
  • 10 Webhooks pro Konto, nur HTTPS-URLs
  • Team-Plan erforderlich. Ein Schlüssel, dessen Besitzer den Plan verlässt, antwortet mit 403 team_plan_required

Webhooks: Benachrichtigungen bei Aufgabenänderungen

Polling ist die Schwachstelle der Google Tasks API. Ein Webhook ersetzt das: TasksBoard ruft deine URL auf, wenn eine Aufgabe erstellt, aktualisiert, erledigt oder gelöscht wird.

  1. Registriere einen Webhook mit den gewünschten Events:
curl -X POST https://api.tasksboard.com/v1/webhooks \
  -H "Authorization: Bearer tb_live_…" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://hooks.example.com/tasksboard",
       "events": ["task.created", "task.completed"]}'
  1. Speichere das secret aus der Antwort. Es wird nur einmal zurückgegeben, nur in dieser Antwort; du kannst auch ein eigenes angeben.
  2. Beantworte jede Lieferung innerhalb von 10 Sekunden mit einem 2xx-Status.

Jede Lieferung enthält drei Header: X-TasksBoard-Event (der Event-Name), X-TasksBoard-Delivery (eine Lieferungs-ID) und X-TasksBoard-Signature. Der Body enthält das Event, einen createdAt-Zeitstempel, die Versuchsnummer, die vollständige Aufgabe unter data.task und eine source: api für einen REST-Aufruf, sync für eine Änderung über eine geteilte Liste, poll für den 15-Minuten-Poll, der unten beschrieben wird.

Signatur verifizieren

Der Signatur-Header hat die Form t=<Unix-Sekunden>,v1=<hex>, wobei v1 der HMAC-SHA256 von "<t>.<roher Body>" mit deinem Secret ist. Berechne den HMAC über den rohen Request-Body genau wie empfangen, vor jeglicher JSON-Verarbeitung, und lehne zu alte Zeitstempel ab:

const crypto = require("crypto")

function verify(secret, rawBody, header, toleranceSeconds = 300) {
  const parts = Object.fromEntries(header.split(",").map((p) => p.split("=")))
  if (Math.abs(Date.now() / 1000 - Number(parts.t)) > toleranceSeconds) return false
  const expected = crypto.createHmac("sha256", secret).update(`${parts.t}.${rawBody}`).digest("hex")
  return crypto.timingSafeEqual(Buffer.from(parts.v1, "hex"), Buffer.from(expected, "hex"))
}

Wiederholungen und Deaktivierung

Fehlgeschlagene Lieferungen werden bis zu 3 Mal mit Backoff wiederholt. Nach 20 aufeinanderfolgenden Fehlern wird der Webhook deaktiviert (active: false), bis du ihn mit PATCH /webhooks/{id} und "active": true wieder aktivierst. Der API-Tab auf der Team-Seite zeigt jeden Webhook mit seiner URL, Events und einem “Aktiv”- oder “Deaktiviert”-Badge, sodass ein toter Endpunkt leicht zu erkennen ist.

Polling für nicht geteilte Listen

Woher kommen Webhook-Events? Aus drei Quellen: Eigene Schreibvorgänge der API, Änderungen über geteilte Listen und, wenn du es aktivierst, ein Poll deiner anderen Listen.

Letzteres ist wichtig. Eine Änderung in Gmail oder der Google Tasks-App an einer Liste, die nicht geteilt ist, wird von TasksBoard nicht beobachtet, es sei denn, jemand sieht sich die Liste an. Aktiviere auf dem API-Tab Meine Listen alle 15 Minuten abfragen: TasksBoard prüft dann diese Listen im genannten Intervall und sendet Events mit source: "poll". Ohne diese Option erzeugt nur API-Zugriff und geteilte Listen Events.

Wenn du nur auf Änderungen an den Listen deines Teams reagieren musst, lasse Polling deaktiviert.

Zapier

Nicht jeder möchte Code schreiben. Die TasksBoard-App für Zapier authentifiziert sich mit dem gleichen persönlichen API-Schlüssel und bietet:

  • Trigger: Neue Aufgabe, Aufgabe erledigt. Beide fragen GET /lists/{listId}/tasks mit updatedAfter ab, das gleiche Muster, das du in deinem eigenen Skript verwenden würdest.
  • Aktionen: Aufgabe erstellen, Aufgabe erledigen, Liste erstellen.

Die Zapier-Integration wird gerade veröffentlicht. Sobald sie gelistet ist, suchst du in Zapier nach TasksBoard, fügst deinen Schlüssel ein und wählst eine Liste. Bis dahin decken die REST API und Webhooks die gleichen Funktionen ab, und die oben genannten Trigger und Aktionen zeigen, was zu erwarten ist. Für einen breiteren Überblick über Automatisierungsmöglichkeiten siehe unseren Guide zu Google Tasks-Integrationen.

TasksBoard logo Teste TasksBoard Team

Geteilte Listen, Rollen, ein Aktivitätsprotokoll und eine REST API mit Webhooks, aufbauend auf den Google Tasks, die du bereits nutzt. Eine Rechnung für das ganze Team.

Pläne ansehen →

Für wen das gedacht ist

Die API ist ein Feature des Team-Plans und hat einen spezifischen Anwendungsfall:

  • Teams mit einer geteilten Liste als Single Source of Truth. Ein Webhook auf task.completed mit source: "sync" feuert, wenn ein Mitarbeiter eine Aufgabe erledigt, egal welche App er genutzt hat. Das ist der Haken für eine Slack-Nachricht, eine Zeile in Sheets oder ein Ticket-Update.
  • Operations-Teams, die Tools verbinden. Formulare, CRMs und Support-Systeme können Aufgaben mit Label und Verantwortlichem in einem Aufruf erstellen, und die Aufgabe erscheint auf dem Board der richtigen Person und in ihrer Google Tasks-App.
  • Entwickler, die die Google Tasks API ausprobiert haben und an Polling, OAuth-Einrichtung oder fehlenden Verantwortlichen gescheitert sind. Ein Schlüssel, ein Header, Googles eigene IDs.

Es ist nicht dafür gedacht, die Google API vollständig zu ersetzen. Wenn du nur deine eigenen Aufgaben in einem persönlichen Skript brauchst und bereits einen OAuth-Client hast, ist die Google API kostenlos und erledigt den Job. Unser Google Tasks-Export-Guide behandelt Einmal-Fälle.

FAQ

Hat die Google Tasks API Webhooks?
Nein. Die Google Tasks API bietet keine Push-Benachrichtigungen für Aufgabenänderungen, daher nutzen Integrationen regelmäßige Abfragen. Die TasksBoard API fügt Webhooks für task.created, task.updated, task.completed und task.deleted hinzu, signiert mit HMAC-SHA256.
Erscheinen Aufgaben, die über die API erstellt wurden, in der Google Tasks-App?
Ja. Die API schreibt in deine Google Tasks-Listen, und jede ID ist von Google. Labels und Verantwortliche erscheinen als Text am Anfang der Aufgabennotizen in Googles Apps, weil TasksBoard sie dort speichert.
Warum feuert mein Webhook nicht, wenn ich eine Aufgabe in Gmail erledige?
Wenn die Liste nicht geteilt ist, beobachtet TasksBoard Änderungen in Googles Apps nur, wenn "Meine Listen alle 15 Minuten abfragen" unter Team → API aktiviert ist. Aktiviere es und erwarte das Event beim nächsten Poll. Änderungen an geteilten Listen kommen beim Sync an.
Ist die Zapier-App jetzt verfügbar?
Die TasksBoard-App für Zapier wird gerade veröffentlicht. Sie nutzt den gleichen persönlichen API-Schlüssel und bietet Trigger für Neue Aufgabe und Aufgabe erledigt sowie Aktionen zum Erstellen und Erledigen von Aufgaben und Listen. Die REST API und Webhooks sind bereits verfügbar.

Fazit

Google Tasks hat eine API, aber keine Webhooks, keine Labels oder Verantwortliche und einen Einrichtungsaufwand, der die meisten kleinen Automatisierungen stoppt, bevor sie beginnen. Die TasksBoard API behält Googles IDs bei und fügt die fehlenden Teile hinzu: einen persönlichen Schlüssel, den du in einer Minute erstellst, Endpunkte für Listen, Aufgaben und Boards, verifizierbare Webhooks, optionales Polling für nicht geteilte Listen und eine Zapier-Integration in Arbeit.

Erstelle einen Schlüssel im API-Tab der Team-Seite, mache einen GET /lists-Aufruf, und der Rest folgt aus der API-Referenz.

Bereit, Ihre Google Tasks zu teilen?

Starten Sie kostenlos mit TasksBoard, keine Kreditkarte erforderlich.

Anmelden