Todoist Smart-Home-Integration, kostenlos und Open Source

Unofficial connector: your Todoist tasks on the dashboard and in your scenes.
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
| Surface | Content |
|---|---|
| Dashboard widget | Todoist 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 actions | add 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 triggers | task 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
- In Todoist, open Settings → Integrations → Developer and copy your API token.
- 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. - 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).
- 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,projectanddue. 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.
doneis false when no task matches. - Read tasks takes a Todoist filter (
today | overdueby default) and givescount,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_LEVELvariable.
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.
| Einstellung | Typ | Pflichtfeld | Beschreibung |
|---|---|---|---|
| Todoist tasks | section | Nein | Unofficial 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 token | secret | Ja | Todoist: Settings > Integrations > Developer > Copy API token. Sent only to Todoist. |
| Watch the tasks (needed by the scene triggers) | boolean | Nein | Syncs 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) | number | Nein | How 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 time | number | Nein | A 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 filters | select | Nein | The 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
- Öffne in Gladys Integrationen: Todoist erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
- 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). - Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
- 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.
- Alle Integrationen durchsuchen, native und aus der Community
- Deine eigene externe Integration bauen und veröffentlichen
- Quellcode auf GitHub — Quelle dieser Dokumentation