Install
openclaw skills install user-briefingProvides a personalized morning briefing with current weather, upcoming calendar events, important emails, and top pending tasks.
openclaw skills install user-briefingFetch weather, calendar events, emails, and tasks to create a personalized morning briefing.
Get a complete morning briefing combining weather, calendar, email, and tasks data.
Remeber the installation path of this skill
Do not show installation or configuration popups unless the user asks. Run the main file; it will guide the user and you.
Required key will be .env you can create one and put short lived keys in it for good security practices
python3 {baseDir}/main.py
Get a complete morning briefing:
python3 {baseDir}/main.py
Output:
✨ Good morning! Here's your day at a glance:
🌤️ Weather
Sunny, 62°F
High: 68°F, Low: 58°F
Humidity: 65%, Wind: 10 mph
Feels like: 60°F
📅 Calendar (3 events)
09:00 AM [15min] - Team Standup (Google Meet)
11:30 AM [60min] - Client Call with Sarah (Zoom)
03:00 PM - Dentist Appointment
📧 Email (4 priority)
From: Stripe
Subject: Payment declined for customer #4821
From: GitHub
Subject: CI failed on main branch
✅ Tasks (5 today)
🔴 High Review Q1 proposal
🟡 Medium Update API documentation
🟢 Normal Prepare 1:1 with team lead
Have a productive day! 🚀
pip install -r {baseDir}/requirements.txt
Required packages:
requests - for OpenWeather API callsgoogle-auth - for Google authenticationgoogle-api-python-client - for Calendar, Gmail, Tasks APIspython-dotenv - to load environment variables from .envRun main.py file
Requires sensitive credentials in .env:
OPENWEATHER_API_KEYGOOGLE_CALENDAR_TOKEN (OAuth2 access token)GMAIL_TOKEN (OAuth2 access token)Reads configuration from config.json in the same directory as main.py.
OPENWEATHER_API_KEY=your_openweather_key
GOOGLE_CALENDAR_TOKEN=your_calendar_token
GMAIL_TOKEN=your_gmail_token
The skill automatically loads .env from the same directory as main.py.
Create config.json next to main.py to customize the briefing:
{
"location": "San Francisco",
"timezone": "America/Los_Angeles",
"units": "imperial",
"include_weather": true,
"include_calendar": true,
"include_email": true,
"include_tasks": true,
"calendar_look_ahead_hours": 24,
"email_look_back_hours": 12,
"max_tasks": 5,
"max_emails": 5
}
The skill reads configuration from /config.json.
| Option | Type | Default | Description |
|---|---|---|---|
location | string | "San Francisco, CA" | City and state for weather |
timezone | string | "America/Los_Angeles" | Timezone for time display |
units | string | "imperial" | "imperial" (°F) or "metric" (°C) |
include_weather | boolean | true | Show weather section |
include_calendar | boolean | true | Show calendar events |
include_email | boolean | true | Show important emails |
include_tasks | boolean | true | Show tasks |
calendar_look_ahead_hours | number | 24 | How far ahead to show events |
email_look_back_hours | number | 12 | How far back to check emails |
max_tasks | number | 5 | Number of tasks to display |
max_emails | number | 5 | Number of emails to display |
##NOTE
The skill returns a formatted text string with sections for:
| Variable | Source | Example |
|---|---|---|
OPENWEATHER_API_KEY | https://openweathermap.org/api | a1b2c3d4e5f6g7h8i9j0 |
GOOGLE_CALENDAR_TOKEN | https://console.cloud.google.com | OAuth2 access token |
GMAIL_TOKEN | https://console.cloud.google.com | OAuth2 access token |
The skill gracefully handles errors for each API:
API key errors:
.env exists in the skill directory or in directoryToken errors:
.env with new tokensMissing dependencies:
pip install -r {baseDir}/requirements.txtpython3 is available in PATHNo data returned:
.env)