Daily Weather Telegram Agent
Sends a personalised, emoji-rich weather report to Telegram every morning at 8 AM — no Google Cloud or OAuth setup needed, just two free API keys.
Architecture
0 8 * * * (8 AM daily) · APIs: OpenWeatherMap + Telegram — no OAuth neededSample Telegram Message
What You Need
| What | Where to get it | Time |
|---|---|---|
| Docker Desktop | docker.com/products/docker-desktop | 5 min |
| Telegram Bot Token | @BotFather on Telegram | 2 min |
| Telegram Chat ID | @userinfobot or getUpdates URL | 1 min |
| OpenWeatherMap API Key | openweathermap.org/api | 3 min |
Step-by-Step Setup
Install Docker & Run n8n
Open http://localhost:5678 and create your local account. New to Docker? Follow the full Docker & n8n Setup Guide →
Get an OpenWeatherMap API Key
Sign up free at home.openweathermap.org, verify your email, then copy the Default API key from your account page. New keys take up to 10 minutes to activate.
Create Your Telegram Bot
Message @BotFather, send /newbot, follow the prompts, and copy the Bot Token.
Get Your Chat ID & Start the Bot
Message @userinfobot for your Chat ID, then find your own bot on Telegram and click Start (required before it can message you).
Import the Workflow
In n8n: + → New Workflow → ... → Import from file → select daily_weather_telegram.json. You should see 4 connected nodes.
Configure Get Weather
In the Get Weather node's Query Parameters, set q to your city (e.g. Pune,IN) and appid to your OpenWeatherMap key. Leave units as metric for °C.
Configure Send to Telegram
Replace PUT_YOUR_TELEGRAM_BOT_TOKEN_HERE in the URL and PUT_YOUR_TELEGRAM_CHAT_ID_HERE in the JSON body (keep the single quotes around the Chat ID).
Test & Publish
Save, click Execute workflow — all 4 nodes should turn green and the report should arrive on Telegram. Click Publish to activate the daily schedule.
Configuration & Troubleshooting
Configuration Reference
| What to change | Where |
|---|---|
| Schedule time | "Every Day 8AM" node → cron expression |
| City | "Get Weather" node → Query Parameters → q |
| Temperature unit | "Get Weather" node → units (metric=°C, imperial=°F) |
| Message format | "Format Weather Message" Code node |
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
401 - Invalid API key | New OpenWeatherMap key | Wait up to 10 min for activation |
400 - Bad Request | City name not found | Use CityName,CountryCode format e.g. Pune,IN |
403 - Forbidden from Telegram | Bot not started | Open Telegram → find your bot → click Start |
| Weather not arriving at 8 AM | Workflow not published | Click Publish — saving isn't enough |
Ideas to Extend
- Call the
/forecastendpoint for a 5-day outlook - Add an IF node — only send if rain is expected
- Send weather for two cities (home and office)
- Every Sunday, send a 7-day summary instead