DEV Community

Cover image for I Built an AI Morning Dashboard That Auto-Updates Notion Every Day 🚀
Monica Zvovumba
Monica Zvovumba

Posted on

I Built an AI Morning Dashboard That Auto-Updates Notion Every Day 🚀

Notion MCP Challenge Submission 🧠

What I Built

I built an AI-powered Morning Dashboard that automatically updates my Notion workspace every single day with:

  • 🌅 Good morning greeting with today's date
  • 🌤️ Live local weather (Pretoria, South Africa)
  • 📰 Latest tech news pulled automatically
  • ✅ Daily tasks checklist

No manual work needed — just run the script and your whole day is organized in Notion!

Why I Built This

I wanted a tool that saves time every morning. Instead of checking 5 different apps, everything you need is in ONE place — your Notion dashboard.

How It Works

The app uses:

  • Notion MCP API to write content directly into Notion
  • Python to connect everything together
  • BBC Tech News RSS Feed for live news
  • wttr.in API for live weather

Every morning you run the script and Notion is automatically filled with fresh content!

The Code

import os
import requests
from datetime import datetime
from dotenv import load_dotenv
from notion_client import Client
import xml.etree.ElementTree as ET

load_dotenv()

NOTION_TOKEN = os.getenv("NOTION_TOKEN")
PAGE_ID = os.getenv("NOTION_PAGE_ID")

notion = Client(auth=NOTION_TOKEN)

def get_weather():
    url = "https://wttr.in/Pretoria?format=3"
    response = requests.get(url)
    return response.text

def get_news():
    url = "https://feeds.bbci.co.uk/news/technology/rss.xml"
    response = requests.get(url)
    root = ET.fromstring(response.content)
    items = root.findall('.//item')[:5]
    news = []
    for item in items:
        title = item.find('title').text
        news.append(title)
    return news

def update_notion_dashboard():
    today = datetime.now().strftime("%A, %B %d %Y")
    weather = get_weather()
    news = get_news()

    notion.blocks.children.append(
        block_id=PAGE_ID,
        children=[...] # Full code on GitHub
    )
    print("✅ Dashboard updated successfully!")

update_notion_dashboard()
Enter fullscreen mode Exit fullscreen mode

What I Learned

  • How to use the Notion API to write content programmatically
  • How to connect multiple APIs together in Python
  • How to build practical AI-powered workflows

What's Next

I plan to add:

  • AI motivational quotes using Claude API
  • Weekly goal tracking
  • Calendar integration

This was built for the Notion MCP Challenge on DEV.to!

Top comments (0)