⚡ Run a Telegram productivity assistant with OpenRouter, Google Calendar, and Todoist

⚡ 93 views · ⚡ Personal Productivity

Description

Quick overview

This workflow turns Telegram into a personal assistant that manages your Google Calendar and Todoist, sends daily briefings, and alerts you when meetings are booked or things break.

How it works

  1. Morning briefing - Every day at a set time, the workflow checks your Google Calendar for today’s events and your Todoist for open tasks, then sends you two Telegram messages: a calendar rundown and a task summary grouped by project with priority flags.
  2. Cal.com booking alerts - When someone books, reschedules, or cancels a call on Cal.com, or a meeting ends, the workflow catches the webhook and sends you a Telegram notification with the attendee’s name, email, meeting title, and time.
  3. Talk to your assistant on Telegram - Message the bot with text or a voice note. Voice notes get transcribed automatically. Your message goes to an AI agent that can read, create, update, or delete calendar events, and create, find, update, complete, or delete Todoist tasks, all through natural conversation. The agent replies back in the same chat.
  4. Error alerts - If any part of the workflow fails, you get a Telegram message with the failed node, the error, and a link to the execution, so you catch problems before they pile up.

Setup

  1. Create your Telegram bot - Message @BotFather on Telegram, create a bot, grab the token, and add it as Telegram API credentials in n8n. Get your own chat ID (message @userinfobot) and use it in every Telegram send node.
  2. Connect Google Calendar - Set up a Google Cloud project, enable the Calendar API, create OAuth2 credentials, and connect them in n8n. Point the calendar ID (your Google account email) in both the scheduled reminder nodes and the agent’s calendar tools.
  3. Connect Todoist - Generate a Todoist API token from your Todoist settings and add it as credentials in n8n. Update the project names referenced in the agent’s system prompt and tool descriptions to match your own Todoist projects.
  4. Add an OpenRouter API key - Sign up on OpenRouter, generate a key, add it as credentials, and pick your model in the AI Agent’s language model node (this template uses Gemini 2.5 Flash, but any OpenRouter model works).
  5. Add a Groq API key - Sign up on Groq (free tier available), generate an API key, and use it as a credential (not a hardcoded header) in the transcription HTTP Request node. This powers voice note transcription via Whisper.
  6. Set up the Cal.com webhook - In Cal.com, go to Settings → Developer → Webhooks, add a new webhook pointing to this workflow’s webhook URL, and subscribe to Booking Created, Booking Rescheduled, Booking Cancelled, and Meeting Ended events.
  7. Set your schedule times - Adjust the two Schedule Trigger nodes to whatever time you want your calendar and task briefings delivered.
  8. Turn on error alerts - Activate the workflow, then set this workflow as the “error workflow” in your n8n instance settings (or leave the Error Trigger active within it) so failures route to your Telegram.

Requirements

Customization

Additional info

Voice notes and text messages both route through the same AI agent, so there’s no difference in what you can ask either way Conversation memory is keyed per Telegram user ID, so multiple people can message the same bot without mixing up context The agent is instructed to always verify actions (create, update, delete) against live data rather than assuming success Before publishing: replace any hardcoded API keys, bot tokens, chat IDs, or personal email addresses in the JSON with credential references or placeholder values

🔗 Nodes Used

HTTP Request, Webhook, Telegram, Telegram Trigger, Todoist, Google Calendar

📥 Import

Download workflow.json and import into n8n: Workflow menu → Import from File

📖 Importing guide · 🔑 Credential setup