Zum Hauptinhalt springen

Todoist Smart-Home-Integration, kostenlos und Open Source

Todoist-Integration für Gladys Assistant

Unofficial connector: your Todoist tasks on the dashboard and in your scenes.

Info

Die Dokumentation dieser Integration wird von ihrem Autor geschrieben und ist bisher nur auf Englisch verfügbar.

Unofficial connector, not affiliated with Doist (the makers of Todoist). It brings your Todoist tasks into Gladys: a dashboard widget with the tasks of the day, scene actions to add, complete and read tasks, and scene triggers when a task is due, added or completed. It uses the official Todoist API v1 with your personal API token. Todoist is a trademark of Doist.

What you get​

SurfaceContent
Dashboard widgetTodoist tasks: today's and overdue tasks (or a project, or any Todoist filter), with their priority colour, due time and overdue mark, a check-off button per task and an Add form
Scene actionsadd a task (text, due date, project, priority, labels, or Quick Add), complete a task (named loosely), read tasks (number, overdue, the list as text, the next task)
Scene triggerstask due (at its time, or at the hour you choose for a date without a time), task added, task completed (recurring tasks included), filtered by project and priority

No device is created: tasks are not devices.

Setup​

  1. In Todoist, open Settings → Integrations → Developer and copy your API token.
  2. Install the integration, open its configuration and paste the token. It is sent only to Todoist (api.todoist.com), in the Authorization header; Gladys stores it encrypted.
  3. Click Test the account: it shows your number of tasks and projects, the tasks due today and overdue, and the time zone of your Todoist account (the one every due time is read in).
  4. Put the Todoist tasks widget on a dashboard. Leave its settings empty for today and overdue, type a Todoist filter (#Groceries, @errands, p1 & today), or a project name: the Add form then puts the new tasks in that project.

The widget​

Each task shows its priority colour (red p1, orange p2, blue p3, grey p4), its due time ("19:00", "Tomorrow", "Tue 20 Oct") and, when it is late, "Overdue". A card holds four buttons at most: up to three tasks get their own check-off button (Gladys asks for a confirmation first); with more tasks, the first two keep theirs and Check off… opens a list of all of them. Add opens a form (task, optional due date written as in Todoist). The forms need Gladys 5.2; the check-off buttons work on 5.1.

Scenes​

  • Task due: a task reached its due time. A task due on a day without a time fires at the hour set in the configuration (Hour of the "task due" trigger, 9 by default). It fires once per due time; the dues already passed when Gladys starts never fire.
  • Task added: a task was added in Todoist (the apps, a shared project, an email to your Inbox).
  • Task completed: a task was checked off in Todoist. A recurring task counts too: Todoist moves it to its next date, the {{triggerEvent.data.recurring}} variable is then true.

Each trigger can be limited to a project (typed exactly as in Todoist, case included) and to some priorities. Variables: {{triggerEvent.data.content}}, {{triggerEvent.data.project}}, {{triggerEvent.data.priority}} (p1 to p4), {{triggerEvent.data.due}} ("2026-10-14 19:00"), {{triggerEvent.data.labels}}, {{triggerEvent.data.url}} (the task in the Todoist web app), {{triggerEvent.data.all_day}}. The changes made through Gladys (a scene action, the widget) fire no "task added" or "task completed", so a scene cannot loop through the integration.

The actions return values for the steps that follow. The following actions of the scene find them in their variable list (written {{<step>.<action>.<key>}}, for instance {{0.0.count}} when Read tasks is the first action of the scene):

  • Add a task gives id, url, project and due. The due date is written as in Todoist ("tomorrow at 6pm", "every monday"); a project left empty is your Inbox. With Quick Add, the text is read like the Todoist apps do ("Call mum tomorrow 6pm #Home p2") and the other fields are ignored.
  • Complete a task closes the open task whose text matches, case and accents ignored (else the first one containing the text, the one due first winning), optionally only in a project or a filter. done is false when no task matches.
  • Read tasks takes a Todoist filter (today | overdue by default) and gives count, overdue_count, list (one line per task, in the language of your Todoist account) and the next task: next_task, next_due, next_project, next_priority, next_url.

Filters other than the default are evaluated by Todoist: write them in the language chosen in Language of your filters (English by default).

Pace​

Todoist publishes its limits: per user and per 15 minutes, 1000 incremental syncs and 100 full syncs. The integration does one full sync at start, then one light incremental sync every 2 minutes (option Sync interval, 1 minute at least) while the tasks are watched, and one right after a change made through Gladys. "Task due" is checked every minute on the synced tasks, without any request. A filter Todoist evaluates is kept a minute. Every request is counted: the integration never uses more than half of the published limits and pauses when Todoist asks it to slow down. With Watch the tasks off, nothing runs in the background: the widget and the actions sync when they need it, and the triggers never fire.

Troubleshooting​

  • "Todoist refused the API token": copy the token again and save the configuration; the integration does not try again by itself.
  • "Todoist is unreachable": it tries again at the next sync.
  • A trigger does not fire: check that the tasks are watched and that the project is spelled exactly like in Todoist.
  • The due times are one or two hours off: the time zone of your Todoist account (Todoist: Settings → General) is the one used; Test the account shows it.
  • Logs: the integration's log level is set with the LOG_LEVEL variable.

Privacy​

The API token is sent only to Todoist, never logged. Of your account, the integration keeps in memory the tasks, the project names, the time zone and the language; the email and the other settings Todoist sends are dropped at once. Nothing is written on disk.

Konfigurationseinstellungen​

Diese Einstellungen fragt Todoist in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Todoist taskssectionNeinUnofficial connector, not affiliated with Doist (the makers of Todoist). It reads your Todoist account with your personal API token, found in Todoist under Settings > Integrations > Developer: the token is sent only to Todoist (api.todoist.com), stored encrypted by Gladys and never logged. You get a dashboard widget (today's tasks, check off, add), scene actions (add a task, complete a task, read tasks) and scene triggers (task due, task added, task completed). The tasks are synced incrementally (every 2 minutes by default), far below the limits Todoist publishes.
Todoist API tokensecretJaTodoist: Settings > Integrations > Developer > Copy API token. Sent only to Todoist.
Watch the tasks (needed by the scene triggers)booleanNeinSyncs the tasks in the background so that "task due", "task added" and "task completed" work. Off: no background call, the widget and the scene actions read Todoist when they need it.
Sync interval (minutes)numberNeinHow often the changes are fetched (one light request). A change made through Gladys is read back right away.
Hour of the "task due" trigger for a date without a timenumberNeinA task due on a day without a time fires "task due" at this hour (0 to 23, time zone of your Todoist account).
Language of your filtersselectNeinThe language you write Todoist filters in, in the widget and the scenes ("today | overdue" is English, "aujourd'hui | en retard" French).

So installierst du Todoist in Gladys​

  1. Öffne in Gladys Integrationen: Todoist erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/lm1lc3n7/gladys-todoist:0.1.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/LM1LC3N7/gladys-todoist.

Todoist benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Todoist ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von LM1LC3N7 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂