Overview

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

Voice NoteTelegram message
TranscribeSpeech-to-text
Parse EventAI extraction
Create EventGoogle Calendar
ConfirmTelegram reply

Tech Stack

Telegram Bot API n8n (35+ nodes) Google Calendar API Speech-to-Text
Architecture

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

  1. Telegram Trigger Listens for incoming messages (voice notes and text commands) via webhook
  2. Message Router Switch node determines: is this a voice note, /today command, /clear command, or plain text?
  3. Voice Processing Branch Downloads audio file from Telegram servers, sends to speech-to-text API for transcription
  4. AI Event Extraction Takes transcribed text and extracts structured event data: title, date, time, duration, location
  5. Calendar Creation Creates a Google Calendar event with the parsed details and sends confirmation back to Telegram
💡
Why n8n? The visual workflow builder makes it easy to add error handling, branching logic, and new commands without writing code. Each node is testable independently.
Processing

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

.ogg AudioTelegram voice
TranscribeSpeech-to-text
AI ParseExtract event details
Structured JSONtitle, date, time

Input Example

"Hey Jasmine, I have a dentist appointment next Tuesday at 10:30am, should be about an hour."

Parsed Output

title: "Dentist Appointment"
date: "2026-03-03"
time: "10:30"
duration: 60 min
⚠️
Relative dates: The AI handles relative references like "tomorrow," "next Tuesday," "in two weeks" by resolving them against the current date at processing time.
Integration

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
Confirmation flow: After creating an event, Jasmine replies in Telegram with a summary: event name, date, time, and duration. This gives the user a chance to verify correctness.
Reference

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
🎉
Walkthrough complete! Jasmine Calendar Bot turns voice messages into calendar events via Telegram. Powered by an n8n workflow with 35+ nodes, speech-to-text transcription, and Google Calendar API.