---
title: "Telegram AI assistant for your mail, calendar and tasks"
kind: "Kit"
category: "Productivity"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/f278a628-0e7e-48bb-ba66-bba4036f2a31"
updated: "2026-11-12"
---

# Telegram AI assistant for your mail, calendar and tasks

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns a Telegram bot into a personal assistant. You send a text or a voice message, an OpenAI agent answers, and it can read your unread Gmail, your Google Calendar and your Baserow tasks and contacts.

Telegram AI assistant for your mail, calendar and tasks is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow runs a personal assistant inside Telegram. You message your bot by text or by voice, and a voice message is turned into text first. An OpenAI agent named Angie reads your request. It can look at unread mail in Gmail, events in Google Calendar and rows in two Baserow tables, tasks and contacts. It keeps the last five exchanges with each sender as memory and sends its answer back to you in Telegram. Fifteen nodes do the work, two of them sticky notes.

### Who it suits

One person who wants to ask for mail, schedule and tasks from a phone chat. It is made for people who already use n8n, Gmail, Google Calendar and Baserow. Skip it for a bot that many people will use, since every sender reaches the same inbox.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Personal productivity | Busy professionals | Ask for the day’s agenda by voice | A manager sends a voice note asking what is on the calendar today and gets the events back. |
| Operations | Small business owners | Check tasks and contact details on the move | An owner asks which tasks are still open and for a supplier’s phone number. |
| Sales | Account managers | Catch up on unread mail between meetings | A rep asks for unread mail since this morning and gets sender, date, subject and a short summary. |
| Consulting | Freelancers | Keep a task list in a table and ask about it | A consultant asks what is on the task list for the week. |

You need some n8n: import a file, add five credentials, make a Telegram bot and fill in a few ids.

### Where to use it

Any n8n that Telegram can reach over HTTPS, and that can reach OpenAI, Google and Baserow, will run it. The bot answers only the user you allow, so it suits one private chat.

- n8n Cloud: import the file, publish it and message your bot
- Your own n8n server: the same steps, with the server open to Telegram over HTTPS
- Another task store: replace the two Baserow tool nodes with another database tool
- Another chat app: replace \`Listen for incoming events\` and \`Telegram\` with that app’s nodes

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Setup is five credentials, a few ids and your own Telegram user id.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own, open to Telegram over HTTPS |
| Telegram | A bot and its token from BotFather, and your own user id |
| OpenAI | An API key |
| Google | A Gmail account and a Google Calendar, each linked through n8n’s Google sign-in |
| Baserow | A database with a tasks table and a contacts table, and a database token |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add a Telegram credential with your bot’s token and select it in `Listen for incoming events`, `Get Voice File` and `Telegram`.
3. Add an OpenAI credential and select it in `OpenAI Chat Model` and `Speech to Text`.
4. Add a Gmail OAuth2 credential and select it in `Get Email`. Add a Google Calendar OAuth2 credential and select it in `Google Calendar`.
5. In Baserow, create a database token under My settings, Database tokens. In n8n, add a Baserow Token API credential and select it in `Tasks` and `Contacts`.
6. In both Baserow nodes, replace `<YOUR_BASEROW_DATABASE_ID>`. Replace `<YOUR_BASEROW_TASKS_TABLE_ID>` in `Tasks` and `<YOUR_BASEROW_CONTACTS_TABLE_ID>` in `Contacts`. They are the numbers in a table’s address in Baserow.
7. In `Google Calendar`, replace `<YOUR_GOOGLE_CALENDAR_ID>` with your calendar’s id. For your main calendar that is your Google address.
8. In `Listen for incoming events`, replace `<YOUR_TELEGRAM_USER_ID>` with your own Telegram user id. To find it, clear the field, press Listen for test event, message your bot and read `message.from.id` in the output.
9. Publish the workflow, then message your bot with a text or a voice note.

### How to use it

Message your bot in plain words, or record a voice note. Ask for unread mail, today’s events or your open tasks. The agent picks the tool that fits and answers in the chat. If you give no date, it assumes today.

What to change for a different result

| To change | Where |
| --- | --- |
| Who the assistant is and how it answers | The system message in \`Angie, AI Assistant\` |
| What mail it skips | The guidelines in the same system message |
| Which unread mail it can see | The filters in \`Get Email\` |
| Which calendar it reads | \`Google Calendar\` |
| Which tables it reads | \`Tasks\` and \`Contacts\` |
| How much it remembers | \`Window Buffer Memory\` |
| The model | \`OpenAI Chat Model\` |

### Example

You send a voice note asking what is on your calendar today and which tasks are still open.

The bot replies in the chat with the events for today and a list of the tasks it found in your Baserow table. Check anything that matters against the source, since a model wrote the answer from what the tools returned.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An agent is a model that can decide to use tools. Here the tools are a mail reader, a calendar reader and two table readers. Telegram hands each message to n8n, the agent chooses which tool to ask, and a speech model first turns a voice note into text.

**For experts.** `Listen for incoming events` feeds `Voice or Text`, which copies the message text into a `text` field. `If` sends an empty text down the voice path. There `Get Voice File` downloads the recording and `Speech to Text` transcribes it. Both paths end in `Angie, AI Assistant`, which reads the `text` field of its input. The two date filters in `Get Email` and `Google Calendar` are filled in by the model through fromAI.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Voice or Text\` | Copies the message text into a \`text\` field | A voice message has no text, so the field is empty |
| \`If\` | Sends an empty text down the voice path | A photo or a sticker also has no text and takes that path |
| \`Speech to Text\` | Turns the recording into text with OpenAI | The node fixes the model as \`whisper-1\` |
| \`Angie, AI Assistant\` | Answers with four tools and a short memory | Its system message sets the rules for mail, calendar and tasks |
| \`Get Email\` | Reads unread inbox mail | The model sets the earliest date |
| \`Google Calendar\` | Lists events after a date the model sets | Only the title and start time come back |
| \`Tasks\` and \`Contacts\` | Read rows from two Baserow tables | They only read |
| \`Telegram\` | Sends the answer to the sender | It uses Markdown mode, and a failed send goes nowhere |

### Good to know

The bot can read your mail, calendar and tasks, so the sender check matters. The speech model it uses is due to be removed.

- Sender check: the file’s trigger had none, so anyone who found the bot could ask for your mail, calendar and tasks. Mindket’s copy uses Telegram Trigger version 1.2 with Restrict to User IDs, which n8n applies from that version on. Until you fill in \`\<YOUR\_TELEGRAM\_USER\_ID\>\` the bot ignores everyone
- Models: OpenAI’s deprecations page, read on 12 November 2026, lists \`gpt-4o-mini\` for shutdown on 14 January 2027 with \`gpt-6-luna\` as the replacement. Mindket’s copy uses \`gpt-5.6-terra\` instead. The model page for \`gpt-6-luna\` says Chat Completions supports function calling only with reasoning effort set to none. This agent calls tools through a node that never sends that setting. The swap was not run from here. The same deprecations page lists \`whisper-1\` for removal on 26 February 2027 with \`gpt-live-transcribe\` or \`gpt-transcribe\` as the replacement. \`Speech to Text\` fixes the model and offers no choice
- Calendar: \`Google Calendar\` asks for only the title and start time of each event. An all-day event has a date and no time, so it comes back without a start
- Other messages: a photo or a sticker has no text, so it takes the voice path, and the run stops with an error there
- Telegram: \`Telegram\` sends in Telegram’s Markdown mode, where an unmatched \`\_\` or \`\*\` makes Telegram refuse the message. The node’s error output is connected to nothing, so a refused reply is dropped without a sign. Telegram also refuses text over 4,096 characters
- Memory: \`Window Buffer Memory\` keeps the last five exchanges for each sender in n8n’s memory and loses them when n8n restarts
- Baserow sign-in: n8n marks the username and password type as deprecated, so Mindket’s copy sets both Baserow tools to a database token
- Billing and data: each message costs at least one OpenAI call, and a voice note adds a transcription. Mail, events and task rows go to OpenAI when the agent reads them
- Not run: nothing here was run against Telegram, OpenAI, Google or Baserow. The notes come from n8n’s source and the vendors’ pages
- Credentials: the JSON holds none

## README

```markdown
# Telegram AI assistant for your mail, calendar and tasks

An n8n workflow that turns a Telegram bot into a personal assistant. You send a text or a voice message, an OpenAI agent
answers, and it can read your unread Gmail, your Google Calendar and your Baserow tasks and contacts.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 15 nodes, two of them sticky notes. It holds no credential. One note labels
  the part that handles the Telegram request, and the other holds Mindket's setup notes.
- `README.md`: these notes.

## What we changed from the original copy

- Every node that needs a sign-in was linked to a credential in its author's n8n. The links are gone, so select your own.
- The Telegram Trigger was version 1 and answered any Telegram user who found the bot, so anyone could ask for your mail, calendar
  and tasks. It is now version 1.2 with Restrict to User IDs set to `<YOUR_TELEGRAM_USER_ID>`.
- `Google Calendar` named its author's calendar by Google address. It is now set by id to `<YOUR_GOOGLE_CALENDAR_ID>`.
- `Tasks` and `Contacts` held their author's Baserow database and table ids. They now hold `<YOUR_BASEROW_DATABASE_ID>`,
  `<YOUR_BASEROW_TASKS_TABLE_ID>` and `<YOUR_BASEROW_CONTACTS_TABLE_ID>`. Both also use a Baserow database token in place of the
  deprecated username and password sign-in.
- `OpenAI Chat Model` used `gpt-4o-mini`, which OpenAI lists for shutdown on 14 January 2027. It now uses `gpt-5.6-terra`.
- The agent node's name had an emoji in it. It is now `Angie, AI Assistant`, and the lines that point at it follow the new name.
- The sticky note that linked the author's video tutorial was replaced by short setup notes.
- The Telegram Trigger's webhook id is gone, and n8n makes a new one when you import the file.
- The export's instance id is gone.
- Nothing else. The system message, the tools and the memory are as they were.

## Before you start

- An n8n instance that Telegram can reach over HTTPS, on n8n Cloud or on your own server.
- A Telegram bot and its token, made by messaging BotFather in Telegram, and your own Telegram user id.
- An OpenAI API key.
- A Gmail account and a Google Calendar, each linked through n8n's Google sign-in.
- A Baserow database with a tasks table and a contacts table, and a Baserow database token.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add a Telegram credential with your bot's token. Select it in `Listen for incoming events`, `Get Voice File` and `Telegram`.
3. Add an OpenAI credential and select it in `OpenAI Chat Model` and `Speech to Text`.
4. Add a Gmail OAuth2 credential and select it in `Get Email`. Add a Google Calendar OAuth2 credential and select it in
   `Google Calendar`.
5. In Baserow, create a database token under My settings, Database tokens. In n8n, add a Baserow Token API credential and select
   it in `Tasks` and `Contacts`.
6. In both Baserow nodes, replace `<YOUR_BASEROW_DATABASE_ID>`. Replace `<YOUR_BASEROW_TASKS_TABLE_ID>` in `Tasks` and
   `<YOUR_BASEROW_CONTACTS_TABLE_ID>` in `Contacts`. They are the numbers in a table's address in Baserow.
7. In `Google Calendar`, replace `<YOUR_GOOGLE_CALENDAR_ID>` with your calendar's id. For your main calendar that is your Google
   address.
8. In `Listen for incoming events`, replace `<YOUR_TELEGRAM_USER_ID>` with your own Telegram user id. To find it, clear the field,
   press Listen for test event, message your bot and read `message.from.id` in the output.
9. Publish the workflow, then message your bot with a text or a voice note.

## How a run goes

1. `Listen for incoming events` takes a new message from the user you allowed.
2. `Voice or Text` copies the message text into a `text` field.
3. `If` checks that field. An empty text means a voice message, and it goes to `Get Voice File`, which downloads the recording.
   `Speech to Text` turns it into text. A message with text skips both nodes.
4. `Angie, AI Assistant` reads the text. Its system message sets the rules. Skip promotional mail. For mail, give the sender,
   date, subject and a short summary. Use the Baserow tool for tasks. Assume today when no date is given. Leave out calendar
   events that do not fit the question. The agent can call `Get Email`, `Google Calendar`, `Tasks` and `Contacts`, and
   `Window Buffer Memory` gives it the last five exchanges with that sender.
5. `Telegram` sends the answer back to the sender in Markdown mode, with n8n's attribution line turned off.

## Change the look

- Who the assistant is and how it answers: the system message in `Angie, AI Assistant`.
- Which unread mail it can see: the filters in `Get Email`. It asks for unread inbox mail after a date that the model sets.
- Which calendar and which fields: `Google Calendar`.
- Which tables it reads: `Tasks` and `Contacts`. Their operation is the node's default, Get Many, so they only read.
- How much it remembers: the Context Window Length in `Window Buffer Memory`.
- The model: `OpenAI Chat Model`.

## Good to know

- The bot can read your mail, calendar and tasks, so the sender check matters. Until you fill in `<YOUR_TELEGRAM_USER_ID>` the bot
  ignores everyone. n8n applies Restrict to User IDs from Telegram Trigger version 1.2 on, which is why the copy uses that version.
- Models: OpenAI's deprecations page, read on 12 November 2026, lists `gpt-4o-mini` for shutdown on 14 January 2027 with
  `gpt-6-luna` as the replacement. Mindket's copy uses `gpt-5.6-terra` instead. The model page for `gpt-6-luna` says Chat
  Completions supports function calling only with reasoning effort set to none, and this agent calls tools through a node that
  never sends that setting. The swap was not run from here. The same deprecations page lists `whisper-1` for removal on 26
  February 2027 with `gpt-live-transcribe` or `gpt-transcribe` as the replacement. `Speech to Text` fixes the model and offers no
  choice.
- `Google Calendar` asks for only the title and start time of each event. An all-day event has a date and no time, so it comes
  back without a start.
- A photo or a sticker has no text, so it takes the voice path, and the run stops with an error there.
- `Telegram` sends in Telegram's Markdown mode. Telegram's Bot API page says `_`, `*`, a backtick and `[` outside an entity need a
  backslash in that mode, and an unmatched one makes Telegram refuse the message. The node's error output is connected to nothing,
  so a refused reply is dropped without a sign. Telegram also refuses text over 4,096 characters.
- `Window Buffer Memory` keeps the last five exchanges for each sender in n8n's memory and loses them when n8n restarts.
- n8n marks the Baserow username and password type as deprecated, so Mindket's copy sets both Baserow tools to a database token.
- Each message costs at least one OpenAI call, and a voice note adds a transcription. Mail, events and task rows go to OpenAI
  when the agent reads them.
- Not run: nothing here was run against Telegram, OpenAI, Google or Baserow. These notes come from n8n's source and the vendors'
  pages, read on 12 November 2026.
```

## What is in it

3 files, 18 KB, downloaded as a zip.

```text
NOTICE.md  643 B
README.md  7 KB
workflow.json  10 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 7 steps, starting on a Telegram event
- AI: 2 steps call an AI model: Speech to Text and Angie, AI Assistant
- Sign-ins: Signs in to: Telegram, OpenAI, Baserow, Gmail and Google Calendar
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads 5 of its 6 step types. It does not read: AI Agent

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/f278a628-0e7e-48bb-ba66-bba4036f2a31)
- [Its page on Mindket](https://mindket.com/p/f278a628-0e7e-48bb-ba66-bba4036f2a31)
