How I Built a Personal Morning Briefing Bot with OpenClaw
I used to spend 20 minutes every morning hopping between apps. Now I wake up to a single Telegram message with everything I need to know. Here's exactly how to build it.
The Problem: 20 Minutes of Morning App-Hopping
Every morning looked the same. Wake up, grab the phone, and start the ritual: open the weather app (is it raining?), switch to CoinGecko (how's my portfolio?), check Google Calendar (any early meetings?), skim the news (anything market-moving?), glance at GitHub (did CI break overnight?).
Each app takes 2-4 minutes. Multiply by 5 apps and you're burning 15-20 minutes before you've even made coffee. Worse, the context-switching fragments your attention right when your brain is freshest.
The insight was simple: every piece of information I check in the morning can be fetched by an API. If an API can fetch it, an AI agent can compile it. And if an agent can compile it, a cron job can schedule it. The result: one Telegram message, delivered at 8 AM, containing everything I need. Zero app-hopping. Zero cognitive load.
What the Brief Includes
Weather
Current conditions and high/low for San Francisco (or wherever I am). Source: wttr.in โ free, no API key needed.
Crypto Prices
BTC, ETH, and SOL with 24h change percentages. Source: CoinGecko free API. Updates every minute.
Fear & Greed Index
The Crypto Fear & Greed Index score and label. Helps calibrate sentiment before checking charts.
Calendar Events
Today's Google Calendar events with times. Uses the Google Calendar API via OpenClaw's gog skill.
Market News
Top 3 market-moving headlines summarized in one sentence each. Source: web search via Brave API.
Portfolio Summary
Quick total portfolio value and 24h change. Aggregated from tracked positions.
All of this gets compiled into a single, well-formatted Telegram message. The entire process โ data fetching, summarization, formatting, and delivery โ takes about 8-12 seconds and costs roughly $0.02.
Architecture: How It Works
The system is elegant in its simplicity. There are no microservices, no message queues, no databases. Just a cron job that triggers an OpenClaw sub-agent:
Cron Trigger
Every day at 8:00 AM โ openclaw run
Sub-Agent Spawned
OpenClaw spawns a sub-agent with the briefing prompt + data-fetching tools
Data Fetched
Weather (wttr.in) โ Crypto (CoinGecko) โ Calendar (Google) โ News (Brave Search)
Compiled & Sent
AI formats everything into a clean summary โ Delivered to Telegram
The beauty of this approach is that the AI model does the formatting and summarization. You don't need to write parsing logic or build templates. You describe what you want in natural language, and the model figures out how to present it clearly.
Step-by-Step Setup
Here's how to build this yourself. You'll need an OpenClaw instance already running (follow the setup guide first if you haven't).
Configure the Cron Schedule
Open your OpenClaw config and add a cron entry. This tells OpenClaw to run a specific prompt on a schedule:
Tip: Use 0 8 * * 1-5 for weekdays only, or 0 8 * * * for every day. Adjust the hour based on your timezone.
Write the Briefing Prompt
The prompt is the heart of the system. It tells the AI what data to fetch and how to format it. Here's what I use:
That's the entire "backend" of the system. The AI model handles the data fetching (using OpenClaw's built-in skills for web fetch, calendar access, etc.), formats the response, and sends it to Telegram. No custom code needed.
Test It Manually
Before relying on the cron, test the briefing manually. Just send the prompt to your OpenClaw Telegram bot:
Iterate on the Format
The first version won't be perfect. Run it for a few days and tweak the prompt. I went through about 5 iterations before landing on the format I use now. Common adjustments: adding/removing data sources, changing the summary length, tweaking the emoji usage, adjusting the tone. The beauty of a prompt-based system is that "refactoring" means editing a sentence.
What It Costs
$0.02
Per briefing
$0.60
Per month
$7.20
Per year
The cost breaks down to roughly 1,500-2,000 input tokens (prompt + fetched data) and ~500 output tokens (the formatted briefing). Using Gemini 2.5 Flash or GPT-5 Mini, that's about $0.01-0.03 per run.
The data APIs are all free: wttr.in has no API key, CoinGecko's free tier allows 10-30 calls/minute, and OpenClaw's built-in web search handles the news.
For less than a dollar a month, you get a personalized morning briefing that would take 20 minutes to compile manually. That's roughly 10 hours saved per month.
Need a server to run this 24/7? DigitalOcean Droplet โ $6/mo
A $6 droplet is all you need for OpenClaw + cron jobs. Always on, always reachable.
What I'd Add Next
The morning briefing is a foundation. Once it's running, you start thinking about what else could be automated. Here's my roadmap:
Stock Market Futures
PlannedPre-market S&P 500 and NASDAQ futures to gauge market sentiment before the bell. Easy to add โ just another data source in the prompt.
RSS Feed Summaries
PlannedTop 3 posts from my favorite blogs (Stratechery, Daring Fireball, The Pragmatic Engineer) summarized in one sentence each. OpenClaw has a blogwatcher skill for this.
Things 3 Task Priorities
In ProgressMy top 3 tasks from Things 3 "Today" view, pulled via the things-mac skill. A gentle reminder of what matters before I open the task manager.
Fitness Summary
ExploringYesterday's step count and sleep quality from Apple Health (when the integration is ready). Because the morning is when I decide if I need to move more today.
The pattern is always the same: find a data source โ add it to the prompt โ test โ done. No code changes, no deployments, no API wiring. Just natural language describing what you want.
Build Your Own Morning Briefing
Start with the OpenClaw setup guide. You can have a working morning briefing running in under 30 minutes.