Automatische Erstellung von täglichen To-Do-Listen in Todoist
Fortgeschritten
Dies ist ein Other-Bereich Automatisierungsworkflow mit 13 Nodes. Hauptsächlich werden If, Code, Filter, Todoist, ScheduleTrigger und andere Nodes verwendet. Automatisches Erstellen einer täglichen Aufgabenliste in Todoist
Voraussetzungen
- •Keine besonderen Voraussetzungen, sofort nach Import nutzbar
Verwendete Nodes (13)
Kategorie
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
"nodes": [
{
"id": "d49ee203-5bd1-45c0-859d-f1b248bfdf71",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
280,
40
],
"parameters": {
"color": 5,
"width": 424.4907862645661,
"height": 154.7766688696994,
"content": "### 👨🎤 Setup\n1. Add Todoist creds\n2. Create a `template` list to copy from in Todoist. Add days and due times on each task as necessary.\n3. Set the projects to copy from and to write to in each **Todoist** node"
},
"typeVersion": 1
},
{
"id": "e69dd4e2-7ff6-4613-a1c9-ac1f3da37955",
"name": "Alle Aufgaben aus Template-Projekt abrufen",
"type": "n8n-nodes-base.todoist",
"position": [
860,
420
],
"parameters": {
"filters": {
"projectId": "2299363018"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"todoistApi": {
"id": "1",
"name": "Todoist account"
}
},
"executeOnce": true,
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "fa907d45-3822-4549-9f84-8385bb4183cc",
"name": "Aufgabendetails analysieren",
"type": "n8n-nodes-base.code",
"position": [
1080,
420
],
"parameters": {
"mode": "runOnceForEachItem",
"jsCode": "const item = {};\n\nitem.description = $input.item.json.description;\nitem.content = $input.item.json.content;\n\nconst parts = item.description.split(';').map((v) => v.trim());\nparts.forEach((v) => {\n const tag = v.split(':');\n if (tag && tag.length === 2) {\n item[tag[0]] = tag[1].trim();\n }\n});\n\nif (item.due) {\n item.due = parseTimeString(item.due);\n}\n\nreturn item;\n\nfunction parseTimeString(timeString) {\n const regex = /^(\\d{1,2})(\\.)?(\\d{2})?([ap]m)$/i;\n const match = timeString.match(regex);\n \n if (!match) {\n throw new Error(\"Invalid time format\");\n }\n\n let hours = parseInt(match[1], 10);\n let minutes = match[3] ? parseInt(match[3], 10) : 0;\n const period = match[4].toLowerCase();\n\n if (hours === 12) {\n hours = period === 'am' ? 0 : 12;\n } else {\n hours = period === 'pm' ? hours + 12 : hours;\n }\n\n // Check if minutes are valid\n if (minutes < 0 || minutes >= 60) {\n throw new Error(\"Invalid minutes\");\n }\n\n const now = DateTime.now().set({ hour: hours, minute: minutes, second: 0, millisecond: 0 });\n return now.toUTC();\n}\n"
},
"typeVersion": 1
},
{
"id": "4989bac6-0741-4cdc-bc9c-e7800f9b3019",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1140,
600
],
"parameters": {
"color": 7,
"width": 351.4230769230764,
"height": 222.50000000000006,
"content": "### 👆 This adds due dates to tasks from description.. \n### For example in the description of a task\n`days:mon,tues; due:8am`\n### So that it will create a task every Monday and Tuesday that's due at 8am ⏰"
},
"typeVersion": 1
},
{
"id": "accc330b-1b67-4181-8735-94b0debc8d70",
"name": "Aufgaben für heute filtern",
"type": "n8n-nodes-base.filter",
"position": [
1300,
420
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.days }}",
"value2": "={{ ['sun', 'mon', 'tues', 'wed', 'thurs', 'fri', 'sat', 'sun'][new Date().getDay()] }}",
"operation": "contains"
},
{
"value1": "={{ $json.days }}",
"value2": "={{ ['sun', 'mon', 'tues', 'wed', 'thurs', 'fri', 'sat', 'sun'][new Date().getDay()] }}",
"operation": "contains"
}
]
},
"combineConditions": "OR"
},
"typeVersion": 1
},
{
"id": "dbe1fc24-1833-493b-b444-de21a4b3c3c5",
"name": "Täglich um 5:10 Uhr",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
620,
420
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 5,
"triggerAtMinute": 10
}
]
}
},
"typeVersion": 1.1
},
{
"id": "b4737822-89aa-4ca0-bd9b-c5f9a16360c0",
"name": "Täglich um 5 Uhr",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
400,
220
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 5,
"triggerAtMinute": 10
}
]
}
},
"typeVersion": 1.1
},
{
"id": "2a9adc4b-552b-47a9-a32c-54d8d4bfb669",
"name": "Alle Aufgaben aus dem Posteingang abrufen",
"type": "n8n-nodes-base.todoist",
"position": [
620,
220
],
"parameters": {
"filters": {
"projectId": "938017196"
},
"operation": "getAll",
"returnAll": true
},
"credentials": {
"todoistApi": {
"id": "1",
"name": "Todoist account"
}
},
"executeOnce": false,
"retryOnFail": true,
"typeVersion": 1,
"alwaysOutputData": true
},
{
"id": "d4794543-3002-4663-8979-360eb437fb4e",
"name": "Wenn Liste nicht leer ist",
"type": "n8n-nodes-base.if",
"position": [
840,
220
],
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json[\"id\"] }}",
"operation": "isNotEmpty"
}
]
}
},
"typeVersion": 1
},
{
"id": "297fcbcb-efe3-4965-b836-34e78a3b452d",
"name": "Wenn tägliches Label vorhanden",
"type": "n8n-nodes-base.if",
"position": [
1080,
220
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ ($json[\"labels\"] || []).includes('daily') }}",
"value2": true
}
]
}
},
"typeVersion": 1
},
{
"id": "0365a865-f03b-4afc-a535-4e3892fc3add",
"name": "Aufgabe löschen",
"type": "n8n-nodes-base.todoist",
"position": [
1280,
220
],
"parameters": {
"taskId": "={{ $json[\"id\"] }}",
"operation": "delete"
},
"credentials": {
"todoistApi": {
"id": "1",
"name": "Todoist account"
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "b14a8ecc-ee07-4a33-ab4b-122c98694c60",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1740,
440
],
"parameters": {
"color": 7,
"width": 256.14371825927645,
"height": 100,
"content": "### 👈🏽 Every new task has `daily` label that gets deleted in the other flow"
},
"typeVersion": 1
},
{
"id": "d951f461-685e-4507-b010-bce2be0e3709",
"name": "Neue Aufgabe im Posteingang erstellen",
"type": "n8n-nodes-base.todoist",
"position": [
1520,
420
],
"parameters": {
"labels": [
"daily"
],
"content": "={{ $json.content }}",
"options": {
"description": "={{ $json.description }}",
"dueDateTime": "={{ $json.due }}"
},
"project": {
"__rl": true,
"mode": "list",
"value": "938017196",
"cachedResultName": "Inbox"
}
},
"credentials": {
"todoistApi": {
"id": "1",
"name": "Todoist account"
}
},
"retryOnFail": true,
"typeVersion": 2,
"alwaysOutputData": false
}
],
"pinData": {},
"connections": {
"b4737822-89aa-4ca0-bd9b-c5f9a16360c0": {
"main": [
[
{
"node": "2a9adc4b-552b-47a9-a32c-54d8d4bfb669",
"type": "main",
"index": 0
}
]
]
},
"d4794543-3002-4663-8979-360eb437fb4e": {
"main": [
[
{
"node": "297fcbcb-efe3-4965-b836-34e78a3b452d",
"type": "main",
"index": 0
}
]
]
},
"fa907d45-3822-4549-9f84-8385bb4183cc": {
"main": [
[
{
"node": "accc330b-1b67-4181-8735-94b0debc8d70",
"type": "main",
"index": 0
}
]
]
},
"dbe1fc24-1833-493b-b444-de21a4b3c3c5": {
"main": [
[
{
"node": "e69dd4e2-7ff6-4613-a1c9-ac1f3da37955",
"type": "main",
"index": 0
}
]
]
},
"297fcbcb-efe3-4965-b836-34e78a3b452d": {
"main": [
[
{
"node": "0365a865-f03b-4afc-a535-4e3892fc3add",
"type": "main",
"index": 0
}
]
]
},
"2a9adc4b-552b-47a9-a32c-54d8d4bfb669": {
"main": [
[
{
"node": "d4794543-3002-4663-8979-360eb437fb4e",
"type": "main",
"index": 0
}
]
]
},
"accc330b-1b67-4181-8735-94b0debc8d70": {
"main": [
[
{
"node": "d951f461-685e-4507-b010-bce2be0e3709",
"type": "main",
"index": 0
}
]
]
},
"e69dd4e2-7ff6-4613-a1c9-ac1f3da37955": {
"main": [
[
{
"node": "fa907d45-3822-4549-9f84-8385bb4183cc",
"type": "main",
"index": 0
}
]
]
}
}
}Häufig gestellte Fragen
Wie verwende ich diesen Workflow?
Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.
Für welche Szenarien ist dieser Workflow geeignet?
Fortgeschritten - Sonstiges
Ist es kostenpflichtig?
Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.
Verwandte Workflows
Automatisches Archivieren von Gmail-Posteingangs-E-Mails
Automatisches Archivieren von Gmail-Posteingangs-E-Mails
Gmail
Filter
Item Lists
+
Gmail
Filter
Item Lists
10 NodesMutasem
Sonstiges
Automatisches Protokollieren von n8n-Workflows direkt in der Notion-Datenbank
Automatisches Protokollieren von n8n-Arbeitsabläufen direkt in einer Notion-Datenbank
If
N8n
Set
+
If
N8n
Set
10 NodesMutasem
Sonstiges
Automatisiertes Herunterladen der zuletzt favorisierten Spotify-Songs
Automatisches Herunterladen der zuletzt favorisierten Songs von Spotify
If
Set
Code
+
If
Set
Code
23 NodesMario
Sonstiges
n8n-Knoten in der visuellen Referenzbibliothek erkunden
Erkundung von n8n-Knoten in der visuellen Referenzbibliothek
If
Ftp
Set
+
If
Ftp
Set
113 NodesI versus AI
Sonstiges
Für Ihre E-Mail visuelle Zusammenfassungen und Wissensgrafik-Einblicke generieren
Für Ihre E-Mails visuelle Zusammenfassungen und Wissensgrafik-Einblicke generieren
If
Set
Code
+
If
Set
Code
38 NodesInfraNodus
Sonstiges
KI-Agent Restaurant [Vorlage]
🤖 KI-Restaurantassistent für WhatsApp, Instagram und Messenger
If
N8n
Set
+
If
N8n
Set
239 NodesAmanda Benks
Sonstiges
Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes13
Kategorie1
Node-Typen6
Autor
Externe Links
Auf n8n.io ansehen →
Diesen Workflow teilen