ClawKit Logo
ClawKitReliability Toolkit

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.

Skills you need

SkillWhat it unlocksRequired?
gmail-readerRead inbox, summarise unread emails, extract action itemsCore
google-calendarRead upcoming events, create/modify events, check availabilityCore
memory-corePersistent memory across conversations โ€” remember preferences, notes, tasksCore
web-searchLook up anything on demand โ€” flights, restaurants, definitions, current eventsRecommended
file-writerSave notes, shopping lists, or journal entries to local filesRecommended
http-requestFetch weather, stock prices, or any JSON API for briefing dataOptional

SOUL.md template

SOUL.md โ€” personal assistant
# 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.

  1. Go to console.cloud.google.com โ†’ your project โ†’ APIs & Services โ†’ Library
  2. Enable both Gmail API and Google Calendar API
  3. Use the same OAuth 2.0 credentials file, but add the Calendar scope when authorising:
openclaw.json โ€” personal assistant
{
  "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.

Memory is stored at ~/openclaw/memory.md by default
# 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

Add to openclaw.json โ€” 8am daily briefing
{
  "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?

Need Help?

Try our automated tools to solve common issues instantly.