Birthday Reminder Telegram Bot
Every morning at 8 AM this agent checks a birthday list stored in Google Drive and only messages you on Telegram if someone's birthday falls today. No match, no noise — smart, conditional automation.
Architecture
0 8 * * * (8 AM daily) · Smart behaviour: only sends a message when there's an actual birthdaySample Telegram Message
What You Need
| What | Where to get it | Time |
|---|---|---|
| Docker Desktop | docker.com/products/docker-desktop | 5 min |
| Google Account (Drive) | Already have one | — |
| Google OAuth Credentials | console.cloud.google.com | 10 min |
| Birthday Excel file (.xlsx) | Create it yourself | 5 min |
| Telegram Bot Token & Chat ID | @BotFather / @userinfobot | 3 min |
Step-by-Step Setup
Install Docker & Run n8n
New to Docker? Follow the full Docker & n8n Setup Guide →
Create Your Birthday Excel File
Create columns exactly named Full Name and Date of Birth, add rows for each person, save as .xlsx, and upload it to Google Drive.
Set Up Google OAuth
Create a Google Cloud project, enable the Google Drive API, configure the OAuth consent screen (add yourself as test user), then create an OAuth Client ID with redirect URI:
Create Your Telegram Bot
Message @BotFather, send /newbot, copy the Bot Token, then find your bot and click Start. Get your Chat ID from @userinfobot.
Import the Workflow
In n8n: + → New Workflow → ... → Import from file → select birthday_reminder_telegram.json. You should see 6 connected nodes.
Connect Google Drive
On the Drive node, connect your OAuth credential, sign in, then switch the File field from "By ID" to "From List" and select your birthday file.
Configure the Telegram Node
Replace the Bot Token in the URL and the Chat ID in the JSON body (keep the single quotes).
Test & Publish
Add today's date as a test birthday, save, and click Execute workflow. All nodes should turn green and the alert should arrive on Telegram. Click Publish to activate the daily check.
Excel Format & Troubleshooting
Excel File Format
| Full Name | Date of Birth |
|---|---|
| Rahul Sharma | 22/07/1990 |
| Priya Patel | 15/08/1995 |
| Anita Desai | 03/01/2000 |
Full Name and Date of Birth. Supported date formats: DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD — only day and month are compared, year doesn't matter.Troubleshooting
| Error | Cause | Fix |
|---|---|---|
Access blocked on Google sign-in | Not added as test user | OAuth Consent Screen → Audience → add your Gmail |
File not found | File not selected | Switch to "From List" and pick your file |
| No Telegram message received | No birthday today | This is correct behaviour — add a test date to confirm |
| Date not matching | Wrong date format | Try YYYY-MM-DD in your Excel file |
Ideas to Extend
- Add the bot to a group so everyone gets notified
- Ask Gemini to suggest a gift idea for the birthday person
- Alert one day in advance instead of on the day
- Add a third column for anniversaries