Use Case: Personal Assistant
calendar ยท email ยท memory ยท daily briefings ยท knowledge base
What you'll build
A Telegram bot that starts your day with a briefing (weather, calendar, top emails), remembers context across conversations, manages your schedule on request, and answers questions using your personal knowledge base.
Jump to section
Skills you need
| Skill | What it unlocks | Required? |
|---|---|---|
| gmail-reader | Read inbox, summarise unread emails, extract action items | Core |
| google-calendar | Read upcoming events, create/modify events, check availability | Core |
| memory-core | Persistent memory across conversations โ remember preferences, notes, tasks | Core |
| web-search | Look up anything on demand โ flights, restaurants, definitions, current events | Recommended |
| file-writer | Save notes, shopping lists, or journal entries to local files | Recommended |
| http-request | Fetch weather, stock prices, or any JSON API for briefing data | Optional |
SOUL.md template
# Personal Assistant You are my personal AI assistant. You help me manage my schedule, inbox, and information. ## Identity - Name: Assistant (or whatever I call you) - Timezone: Asia/Shanghai (adjust to your TZ) - Tone: Casual and direct โ we talk every day ## Memory rules - Remember things I tell you: preferences, recurring tasks, people I mention - At the start of each morning briefing, recall anything I asked you to follow up on - If I say "remember that..." or "note that...", store it immediately - Never ask me to repeat context I've given before ## Morning briefing format (run at 8am) 1. Date and day of week 2. Weather: current + high/low (use wttr.in API) 3. Today's calendar events (time + title only, no details) 4. Top 3 unread emails that need attention (sender + subject + one sentence) 5. Any reminders I set yesterday ## Calendar rules - When creating events, confirm before saving: show "Creating: [title] on [date] at [time] โ ok?" - Default event duration: 1 hour unless I specify - If I ask "am I free on Thursday afternoon", check the calendar and give a yes/no with any conflicts ## Behaviour - Keep responses short โ I'm usually on my phone - If something needs more than 3 steps, ask if I want the full breakdown - Use my first name when you know it
Google Calendar setup
Same OAuth flow as Gmail โ one Google Cloud project can enable both the Gmail API and Google Calendar API simultaneously.
- Go to console.cloud.google.com โ your project โ APIs & Services โ Library
- Enable both Gmail API and Google Calendar API
- Use the same OAuth 2.0 credentials file, but add the Calendar scope when authorising:
{
"skills": [
"official-gmail-reader",
"official-google-calendar",
"official-memory-core",
"official-web-search",
"official-file-writer"
],
"model": "claude-sonnet-4-5",
"soulPath": "./SOUL.md",
"env": {
"GOOGLE_CREDENTIALS_PATH": "./google-credentials.json",
"GOOGLE_SCOPES": "gmail.readonly,calendar"
},
"channel": {
"type": "telegram",
"token": "YOUR_BOT_TOKEN",
"chatId": "YOUR_CHAT_ID"
}
}Memory & knowledge base
The memory-core skill stores facts in a local Markdown file that persists across sessions. The agent reads it at the start of each conversation, so context carries over automatically.
# Configuring memory location in openclaw.json
{
"skills": [
{
"name": "official-memory-core",
"config": {
"memoryPath": "~/documents/assistant-memory.md",
"maxEntries": 500
}
}
]
}Tell the agent things to remember explicitly:
"Remember: I prefer afternoon meetings, never before 10am"
"Note: John from Acme is our main sales contact, email: [email protected]"
"Remember: dentist appointment is every 6 months, last one was March 2026"
Morning briefing cron
{
"crons": [
{
"name": "Morning briefing",
"schedule": "0 8 * * *",
"task": "Run the morning briefing defined in SOUL.md. Fetch weather from wttr.in/Shanghai?format=3, check today's Google Calendar events, summarise the top 3 unread emails. Post to Telegram."
},
{
"name": "End of day wrap-up",
"schedule": "0 18 * * 1-5",
"task": "Check if any of today's calendar events had action items I mentioned. List tomorrow's first 3 events. Ask if there's anything I want to remember for tomorrow."
}
]
}Example conversations
Schedule a meeting
"Schedule a call with Sarah on Thursday at 2pm for 30 minutes โ title: "Q2 planning sync""
Check calendar
"Am I free next Monday afternoon? I need 2 hours for a workshop."
Inbox triage
"Any urgent emails from the last 4 hours?"
Quick lookup
"What's the weather in Tokyo next Tuesday? I might have a flight."
Save a note
"Remember: the AWS bill renews on the 15th of every month, around $340"
Recall context
"What did I ask you to follow up on yesterday?"
Privacy note: The memory-core skill stores data locally in a plain Markdown file. Nothing is sent to external services. If you're storing sensitive information (passwords, financial data), keep the memory file in an encrypted folder or use disk encryption.
Did this guide solve your problem?