tomorrow-io

n8n community node for Tomorrow.io Weather API

Package Information

Downloads: 2 weekly / 23 monthly
Latest Version: 1.0.0

Documentation

Tomorrow.io Weather Node for n8n

A community node that adds Tomorrow.io Weather API support to n8n.


Prerequisites


Installation

Option A: Install from npm (recommended for production)

Use this if the package is published to npm.

  1. Open your n8n instance in the browser
  2. Go to Settings (gear icon in the left sidebar)
  3. Click Community Nodes
  4. Click Install a community node
  5. Enter: n8n-nodes-tomorrow-io
  6. Click Install
  7. The node will appear in the node panel under "Tomorrow.io"

Option B: Install locally (for development/testing)

  1. Clone and build the node:

    cd /path/to/workflow-automation-plugin/n8n
    npm install
    npx tsc
    
  2. Link the package globally:

    npm link
    
  3. Start n8n with the custom node:

    # Option 1: Using N8N_CUSTOM_EXTENSIONS
    export N8N_CUSTOM_EXTENSIONS="/path/to/workflow-automation-plugin/n8n"
    npx n8n start
    
    # Option 2: Using npm link in n8n's directory
    cd ~/.n8n
    npm link n8n-nodes-tomorrow-io
    npx n8n start
    
  4. Open http://localhost:5678 in your browser

Option C: Docker (self-hosted n8n)

  1. Build the node:

    cd /path/to/workflow-automation-plugin/n8n
    npm install
    npx tsc
    
  2. Mount the node into your n8n Docker container by adding a volume:

    # docker-compose.yml
    services:
      n8n:
        image: n8nio/n8n
        volumes:
          - ./n8n:/home/node/.n8n/custom/n8n-nodes-tomorrow-io
        environment:
          - N8N_CUSTOM_EXTENSIONS=/home/node/.n8n/custom
    
  3. Restart the container:

    docker-compose up -d
    

Setup: Add Credentials

  1. In n8n, go to Credentials (key icon in left sidebar)
  2. Click Add Credential
  3. Search for Tomorrow.io API
  4. Paste your API key
  5. Click Save — n8n will test the connection automatically

Testing: Create a Test Workflow

Test 1: Get Realtime Weather

  1. Click Add workflow (or open an existing one)
  2. Click + to add a node
  3. Search for Tomorrow.io and select it
  4. Configure:
    • Credential: Select your saved Tomorrow.io credential
    • Operation: Get Realtime Weather
    • Location: New York
    • Units: Metric
  5. Click Test step
  6. You should see output like:
    {
      "data": {
        "time": "2026-03-30T12:00:00Z",
        "values": {
          "temperature": 18.5,
          "humidity": 65,
          "windSpeed": 12.3,
          "weatherCode": 1100
        }
      },
      "location": { "lat": 40.7128, "lon": -74.006 }
    }
    

Test 2: Get Forecast

  1. Add another Tomorrow.io node
  2. Configure:
    • Operation: Get Forecast
    • Location: London
    • Timesteps: Daily
    • Units: Imperial
  3. Click Test step
  4. You should see a timelines object with daily array entries

Test 3: Get Recent History

  1. Add another Tomorrow.io node
  2. Configure:
    • Operation: Get Recent History
    • Location: 48.8566,2.3522 (Paris coordinates)
    • Timesteps: Hourly
    • Units: Metric
  3. Click Test step
  4. You should see a timelines object with hourly array entries from the past ~6 hours

Troubleshooting

Problem Solution
Node doesn't appear in the panel Restart n8n after installation. Check that N8N_CUSTOM_EXTENSIONS path is correct.
"Invalid credentials" error Verify your API key at https://app.tomorrow.io/development/keys
"Rate limit exceeded" error Free tier allows 25 calls/hour, 500/day. Wait and retry.
Build errors (npx tsc) Run npm install first. Ensure Node.js 18+.
Location not found Try using coordinates instead of place name (e.g. 40.7128,-74.006)

File Structure

n8n/
├── package.json                              # Package manifest
├── tsconfig.json                             # TypeScript config
├── credentials/
│   └── TomorrowIoApi.credentials.ts          # API key credential
└── nodes/
    └── TomorrowIo/
        ├── TomorrowIo.node.ts                # Main node (declarative)
        └── tomorrowio.svg                    # Node icon

Discussion