This template posts a clean, Slack-ready morning summary of your Google Tasks due today. It fetches tasks, filters only those due “today” in your timezone, asks a local LLM (via LangChain + Ollama) to produce a short summary (no steps, just a concise brief), strips any hidden <think>
blocks, and delivers the message to your chosen Slack channel.
Trigger at Morning (Cron) – runs at 7:00 AM (you can change the hour) to kick things off daily.
Get many tasks (Google Tasks node) – pulls tasks from your selected Google Tasklist.
Code (Filter Due Today) – normalizes dates to your timezone, keeps only tasks due today, and emits a fallback flag if none exist.
If – routes:
Code (Build LLM Prompt) – builds a compact, Markdown-only prompt for the model (no tool calls).
Basic LLM Chain (LangChain) + Ollama Model – generates a short summary for Slack.
Code (Cleanup) – removes any <think>…</think>
content if the model includes it.
Send a message (Slack) – posts the final brief to your Slack channel.
qwen3:4b
); used by the LangChain LLM nodes.Google Tasks credential
In Google Cloud Console: enable Google Tasks API, create an OAuth Client (Web), and set the redirect URI shown by n8n.
In n8n Credentials, add Google Tasks OAuth2 API with scope:
https://www.googleapis.com/auth/tasks
(read/write) orhttps://www.googleapis.com/auth/tasks.readonly
(read-only).In the Get many tasks node, select your credential and your Tasklist.
Slack credential & channel
chat:write
).#new-leads
).Ollama model (LangChain)
http://localhost:11434
).ollama pull qwen3:4b
) or use another supported model (llama3:8b
, etc.).Timezone & schedule
TZ
constant if you prefer a different timezone.(Optional) Cleanup safety
<think>…</think>
blocks from model output. Keep this connected before the Slack node.Test the flow
Run the workflow once manually:
Activate