AutomationFlowsSlack & Telegram › Daily & On-demand Weather Reports with Openweathermap to Telegram

Daily & On-demand Weather Reports with Openweathermap to Telegram

ByAbhishek Patoliya @abhishekpatoliya on n8n.io

This powerful n8n automation sends you daily weather updates directly to your Telegram chat using live data from OpenWeatherMap. It supports automatic daily updates and manual lookups via form input.

Event trigger★★★☆☆ complexity9 nodesHTTP RequestTelegramForm Trigger
Slack & Telegram Trigger: Event Nodes: 9 Complexity: ★★★☆☆ Added:

This workflow corresponds to n8n.io template #5838 — we link there as the canonical source.

This workflow follows the Form Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "EtMbMlSmiCmshLlm",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Daily Weather Bot",
  "tags": [],
  "nodes": [
    {
      "id": "d5d3309c-a736-4244-8973-ee8bb4df9e5e",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -20,
        -100
      ],
      "parameters": {
        "width": 460,
        "height": 140,
        "content": "## Schedule Trigger (08:00 AM daily)\n   \u2b95 HTTP Request (OpenWeatherMap)\n      \u2b95 Set (Format message with weather + atmosphere + IST)\n         \u2b95 Telegram "
      },
      "typeVersion": 1
    },
    {
      "id": "75c18662-b969-4f48-8a05-1429c2f81567",
      "name": "Get Weather Data",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        20,
        340
      ],
      "parameters": {
        "url": "=https://api.openweathermap.org/data/2.5/weather?q={{ $json['City Name'] }},{{ $json['Country Name'] }}&APPID=key&units=metric",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "3b84cd51-bf28-4a3d-af86-f2acbe1bf097",
      "name": "Format Weather Message",
      "type": "n8n-nodes-base.set",
      "position": [
        240,
        340
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bb388fef-4f43-468e-bdb2-1a65c40f5194",
              "name": "message",
              "type": "string",
              "value": "={{ \n  (() => {\n    const desc = $json.weather[0].description;\n    const temp = $json.main.temp;\n    const hum = $json.main.humidity;\n    const pres = $json.main.pressure;\n    const wind = $json.wind.speed;\n    const city = $json.name;\n    const country = $json.sys.country;\n\n    // Convert UNIX timestamps to IST (Asia/Kolkata)\n    const sunrise = new Date($json.sys.sunrise * 1000).toLocaleTimeString('en-IN', { timeZone: 'Asia/Kolkata' });\n    const sunset = new Date($json.sys.sunset * 1000).toLocaleTimeString('en-IN', { timeZone: 'Asia/Kolkata' });\n\n    // Format current date in IST\n    const now = new Date();\n    const dateStr = now.toLocaleDateString('en-IN', {\n      weekday: 'long', year: 'numeric', month: 'long', day: 'numeric',\n      timeZone: 'Asia/Kolkata'\n    });\n\n    return `\ud83d\udcc5 ${dateStr}\n\ud83c\udf24 Weather in ${city}, ${country}:\nCondition: ${desc}\nTemperature: ${temp}\u00b0C\n\ud83d\udca7 Humidity: ${hum}%\n\ud83c\udf2c Wind Speed: ${wind} m/s\n\ud83d\udd3c Pressure: ${pres} hPa\n\ud83c\udf05 Sunrise: ${sunrise}\n\ud83c\udf07 Sunset: ${sunset}`;\n  })()\n}}\n"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "c601e86a-28d1-4cc1-b643-ca95e14573b2",
      "name": "Send Telegram Message",
      "type": "n8n-nodes-base.telegram",
      "position": [
        460,
        340
      ],
      "parameters": {
        "text": "={{ $json.message }}",
        "chatId": "telegramChatId",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ebf95ad7-5156-4032-87a4-11e85eb0c582",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -220,
        220
      ],
      "parameters": {
        "options": {},
        "formTitle": "Daily Weather Bot",
        "formFields": {
          "values": [
            {
              "fieldLabel": "City Name"
            },
            {
              "fieldLabel": "Country Name"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "2d425b50-6bfc-433d-8baf-172384bd3181",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        380,
        720
      ],
      "parameters": {
        "height": 120,
        "content": "## Telegram Output\n-Bot Setting"
      },
      "typeVersion": 1
    },
    {
      "id": "3108b92c-6f97-4fee-b4bb-7140b2419f5d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        720
      ],
      "parameters": {
        "width": 150,
        "height": 260,
        "content": "## api calling \nopenweathermap"
      },
      "typeVersion": 1
    },
    {
      "id": "a7031c56-09ac-4d05-95fa-9ff7d82a6314",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        720
      ],
      "parameters": {
        "width": 200,
        "height": 260,
        "content": "## Daily Schudule \nTrigger Mode: Every Day\n\nTime:\nHour: 08\nMinute: 00\n\nThis means the workflow will run once per day at 08:00 AM."
      },
      "typeVersion": 1
    },
    {
      "id": "a757108c-961a-4cd2-8fa4-e583c26120ea",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -220,
        460
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bb82186d-3706-43b7-b69c-1a526777461d",
  "connections": {
    "Get Weather Data": {
      "main": [
        [
          {
            "node": "Format Weather Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Weather Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Get Weather Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Weather Message": {
      "main": [
        [
          {
            "node": "Send Telegram Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This powerful n8n automation sends you daily weather updates directly to your Telegram chat using live data from OpenWeatherMap. It supports automatic daily updates and manual lookups via form input.

Source: https://n8n.io/workflows/5838/ — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Automatically transform any website URL into a complete portfolio entry with professional screenshots and AI-generated Upwork project descriptions. Freelancers building their Upwork/portfolio from pas

HTTP Request, Google Drive, Google Sheets +2
Slack & Telegram

This n8n workflow enables a Virtual Try-On experience where users upload a dress image and the system: Combines it with a fashion model image Generates a realistic try-on image* Generates a fashion wa

Form Trigger, Telegram, Discord +3
Slack & Telegram

Generate cinematic AI videos for social media, marketing campaigns, product demos, or creative projects. The workflow handles both text-to-video and image-to-video generation with automatic status pol

Form Trigger, HTTP Request, Telegram
Slack & Telegram

Who’s it for? 👥

Form Trigger, Google Drive, HTTP Request +1
Slack & Telegram

An automated n8n workflow that scrapes financial data from Yahoo Finance using Bright Data, processes market cap information, generates visual charts, and sends comprehensive financial insights direct

Form Trigger, HTTP Request, Google Sheets +1