Jasmine Calendar Bot
A Telegram bot that converts voice messages into Google Calendar events. Speak your plans naturally, and Jasmine handles the rest — transcription, event parsing, and calendar creation.
What It Does
Send a voice note to Jasmine on Telegram saying "Meeting with John tomorrow at 2pm for an hour." The bot transcribes the audio, extracts event details (title, date, time, duration), and creates a Google Calendar event — all in seconds.
Key Facts
- Platform: Telegram Bot API
- Orchestration: n8n workflow (35+ nodes)
- Calendar: Google Calendar API
- Commands: /today, /clear, voice notes
Core Pipeline
Tech Stack
How It Works
The entire pipeline is orchestrated by an n8n workflow with 35+ nodes. Telegram triggers the flow, and each step is handled by a dedicated node chain.
n8n Workflow Structure
-
Telegram Trigger Listens for incoming messages (voice notes and text commands) via webhook
-
Message Router Switch node determines: is this a voice note, /today command, /clear command, or plain text?
-
Voice Processing Branch Downloads audio file from Telegram servers, sends to speech-to-text API for transcription
-
AI Event Extraction Takes transcribed text and extracts structured event data: title, date, time, duration, location
-
Calendar Creation Creates a Google Calendar event with the parsed details and sends confirmation back to Telegram
Voice Processing
The voice-to-text pipeline takes a Telegram voice note and converts it into structured calendar event data through transcription and AI parsing.
Processing Pipeline
Input Example
Parsed Output
date: "2026-03-03"
time: "10:30"
duration: 60 min
Calendar Integration
Google Calendar API handles event creation, retrieval, and deletion. OAuth2 credentials are configured in n8n for seamless access.
Calendar Operations
| Supported Actions | ||
|---|---|---|
| Create Event | From parsed voice data — sets title, start time, end time, optional location | Voice |
| List Today | Fetches all events for current day and formats as readable list | /today |
| Clear Calendar | Deletes all events for the current day (with confirmation) | /clear |
Commands
All the ways to interact with Jasmine. Voice notes are the primary input, but text commands provide quick access to calendar queries.
Available Commands
| Telegram Commands | ||
|---|---|---|
| Voice Note | Record and send a voice message describing an event. Jasmine transcribes, parses, and creates the calendar event. | Primary |
| /today | Shows all calendar events for today in a formatted list with times and titles. | Query |
| /clear | Clears all events from today's calendar. Use with caution — asks for confirmation before deleting. | Destructive |
Usage Tips
- Be specific about time: "at 2pm" works better than "in the afternoon"
- Include duration: "for an hour" or "30 minutes" helps set the end time correctly
- Speak naturally: "Lunch with Sarah tomorrow at noon for an hour" works perfectly
- Date references: "tomorrow," "next Monday," "March 5th" are all understood