Install
openclaw skills install daily-briefing-skillAutomated daily morning briefing generator. Fetches weather, calendar, news, AI/tech updates, OpenClaw insights, and actionable tips. Delivers via iMessage at 7am daily.
openclaw skills install daily-briefing-skillAn automated daily briefing that compiles weather, calendar, news, AI/tech updates, and OpenClaw insights into a concise morning message delivered via iMessage.
Every morning at 7am, the briefing delivers:
cd /Users/nudge/openclaw/skills/daily-briefing
./scripts/generate-briefing.sh
cd /Users/nudge/openclaw/skills/daily-briefing
./scripts/send-briefing.sh paulkingham@mac.com
Edit /Users/nudge/openclaw/skills/daily-briefing/config/config.yaml:
location:
city: "Leyton"
region: "London"
country: "UK"
latitude: 51.5667
longitude: -0.0167
delivery:
recipient: "paulkingham@mac.com"
channel: "imessage"
time: "07:00"
timezone: "Europe/London"
content:
news_sources:
- "bbc"
- "guardian"
- "techcrunch"
ai_sources:
- "openai"
- "anthropic"
- "hacker-news"
max_news_items: 5
max_ai_items: 4
preferences:
temperature_unit: "celsius"
include_weather_icon: true
include_calendar_details: true
The briefing runs automatically via OpenClaw's cron system:
# Check current cron jobs
openclaw cron list
# The briefing is pre-configured. To update schedule:
openclaw cron update daily-briefing --schedule="0 7 * * *"
Add to your system crontab (runs in OpenClaw context):
0 7 * * * cd /Users/nudge/openclaw/skills/daily-briefing && ./scripts/generate-and-send.sh
| Script | Purpose |
|---|---|
generate-briefing.sh | Generates briefing text to stdout |
send-briefing.sh <recipient> | Generates and sends via iMessage |
generate-and-send.sh | Full pipeline (used by cron) |
lib/weather.py | Weather fetching module |
lib/news.py | News aggregation module |
lib/calendar.py | Calendar context module |
lib/ai_pulse.py | AI/tech news module |
lib/openclaw_dive.py | OpenClaw insights module |
Edit config/config.yaml and update the location section.
Modify lib/news.py to add RSS feeds or APIs. Default sources:
Update the cron schedule:
openclaw cron update daily-briefing --schedule="0 8 * * *" # 8am instead
Edit scripts/generate-briefing.sh and comment out sections you don't want:
# Sections (comment out to disable)
SECTIONS=(
weather
calendar
news
ai_pulse
openclaw_dive
suggestions
)
The briefing produces a well-formatted message like:
📰 Good morning! Here's your briefing for Monday, February 16
🌤️ Weather in Leyton
Partly cloudy, 8°C / 46°F
High: 12°C · Low: 5°C
💧 10% rain · 💨 12km/h wind
📅 Today
09:00 - Team standup
14:00 - Client call (Zoom)
📰 Top Stories
• Headline one...
• Headline two...
• Headline three...
• Headline four...
• Headline five...
🤖 AI/Tech Pulse
• OpenAI releases new feature...
• Anthropic updates Claude...
• Hacker News trending: ...
🦾 OpenClaw Deep Dive
New this week: skill-name (description)
Community highlight: ...
Try this: ...
💡 Two Things to Try
1. First suggestion...
2. Second suggestion...
curl wttr.in/London?format=3icalBuddy is installed (optional, for richer calendar data)imsg send --to "recipient" --text "test"config/secrets.yamlRequired:
curl – for web requestspython3 – for data processingOptional (enhanced features):
imsg – for iMessage delivery (via Homebrew: brew install steipete/tap/imsg)icalBuddy – for rich calendar datajq – for JSON processing┌─────────────────┐
│ Cron (7am) │
└────────┬────────┘
│
┌────────▼────────┐
│ generate-and- │
│ send.sh │
└────────┬────────┘
│
┌────┴────┬────────┬────────┬──────────┬──────────┐
▼ ▼ ▼ ▼ ▼ ▼
┌───────┐ ┌──────┐ ┌──────┐ ┌────────┐ ┌──────────┐ ┌─────────┐
│weather│ │calendar│ │news │ │ai_pulse│ │openclaw │ │suggestions│
│ .py │ │ .py │ │ .py │ │ .py │ │_dive.py │ │ .py │
└────┬──┘ └───┬────┘ └──┬───┘ └────┬───┘ └────┬─────┘ └────┬────┘
└─────────┴─────────┴──────────┴──────────┴────────────┘
│
┌────────▼────────┐
│ format-output │
└────────┬────────┘
│
┌────────▼────────┐
│ imsg send │
└─────────────────┘
The skill self-documents its last run. Check status:
cat /Users/nudge/openclaw/skills/daily-briefing/.last-run
cat /Users/nudge/openclaw/skills/daily-briefing/.last-status
To update the skill itself:
cd /Users/nudge/openclaw/skills/daily-briefing
git pull # If tracked in git