meeting-prep
Compiles multi-source meeting briefing documents by pulling event details from Google Calendar, enriching attendee profiles via Slack and Clay, gathering context from Notion, Slack, and Gmail, and assembling a structured markdown prep document. Triggered when the user asks to prepare for a meeting, brief on attendees, compile meeting context, or get ready for a call.
Meeting Prep Skill
Multi-source meeting briefing compiler.
When to Trigger
Activate this skill when the user:
- Asks to prepare for a meeting or call
- Wants a briefing on attendees or meeting context
- Says "brief me on my next meeting" or "prep for the 2pm call"
- Requests context gathering before a scheduled event
Workflow
Step 1: Get Event Details
Use Calendar MCP to fetch the target meeting:
Tool: gcal_get_event (if event ID is known)
Tool: gcal_list_events (if searching by time or title)
Extract from the event:
- Title — meeting name
- Date/time — start, end, timezone
- Attendees — list of email addresses with RSVP status
- Description — agenda, links, notes
- Location/link — Zoom/Meet URL, physical location
- Organizer — who scheduled it
If the user says "my next meeting," use gcal_list_events with timeMin set to now and maxResults: 1.
Step 2: Enrich Attendees
For each attendee email address, gather profile data in parallel:
Slack profile:
Tool: slack_search_users (search by email)
Tool: slack_read_user_profile (get title, team, timezone, status)
Company enrichment:
Tool: find-and-enrich-contacts-at-company (Clay MCP)
Extract: company name, size, funding stage, tech stack, recent news.
Recent activity:
Tool: slack_search_public (query: "from:@username" with recent date filter)
Surface: what they have been talking about recently, active projects, shared channels.
Fallback: If Clay or Slack enrichment fails for an attendee (external contact), note them as "External — limited profile available" and move on. Do not block the entire workflow.
Step 3: Gather Relevant Context
Run these searches in parallel using keywords from the meeting title and description:
Notion:
Tool: notion-search (query: meeting topic keywords)
Pull: related docs, project pages, decision logs, specs.
Slack:
Tool: slack_search_public (query: meeting topic keywords)
Pull: recent discussions, decisions, blockers mentioned in channels.
Gmail:
Tool: gmail_search_messages (query: attendee emails + topic keywords)
Pull: recent email threads, attachments mentioned, action items from previous correspondence.
Google Drive (if relevant):
Tool: google_drive_search (query: meeting topic keywords)
Pull: shared documents, presentations, spreadsheets linked to the topic.
Step 4: Compile Briefing Document
Assemble all gathered data into a structured markdown document:
# Meeting Prep: [Title]
**Date:** [Day, Month DD, YYYY] at [HH:MM] [timezone]
**Duration:** [estimated or scheduled]
**Location:** [Zoom link / Meet link / Physical address]
**Organizer:** [Name]
---
## Attendees
| Name | Title | Company | Timezone | Notes |
|------|-------|---------|----------|-------|
| Jane Smith | VP Engineering | Acme Corp (Series B, 120 employees) | PST | Active in #product-launches, discussed Q2 roadmap last week |
| John Doe | Product Manager | Internal | EST | Owns the dashboard project, sent budget email on Mar 28 |
| External Guest | — | Unknown | — | External — limited profile available |
## Context
### From Notion
- **[Project Alpha Spec](notion-link)** — Last updated 3 days ago, covers the feature scope being discussed
- **[Q2 OKRs](notion-link)** — Relevant KPIs that may come up
### From Slack
- **#product** (2 days ago): Discussion about timeline slip on the dashboard migration
- **#engineering** (yesterday): John raised a concern about API rate limits
### From Email
- **Thread: "Re: Dashboard Launch Plan"** (Mar 28): Jane requested updated wireframes, John replied with ETA of Apr 2
- **Thread: "Budget Approval"** (Mar 25): Budget was approved with a note to reduce cloud spend by 15%
### From Drive
- **[Q2 Roadmap Deck](drive-link)** — Shared by Jane, last edited yesterday
---
## Suggested Talking Points
Based on gathered context:
1. **Dashboard migration timeline** — Slack discussion suggests a slip; clarify new ETA
2. **API rate limits** — John flagged this in engineering; discuss mitigation strategy
3. **Budget constraints** — 15% cloud cost reduction target affects infrastructure decisions
4. **Updated wireframes** — Jane is waiting on these; confirm delivery status
## Open Questions
- [ ] What is the revised launch date for the dashboard?
- [ ] Has the API rate limit issue been scoped?
- [ ] Are the wireframes ready for review?
- [ ] Who owns the cloud cost reduction initiative?
---
*Compiled at [timestamp] by Meeting Prep Skill*
Step 5: Save the Briefing
Write the compiled document to:
~/Reports/meeting-prep/YYYY-MM-DD-<meeting-title-slug>.md
Rules for the file path:
- Date prefix for chronological sorting
- Meeting title slugified (lowercase, hyphens, no special characters)
- Example:
~/Reports/meeting-prep/2026-04-05-q2-product-roadmap-sync.md
Create the ~/Reports/meeting-prep/ directory if it does not exist.
Scheduling
For recurring prep, use the Scheduled Tasks MCP:
Tool: create_scheduled_task
- Schedule: 30 minutes before the meeting
- Action: Run meeting-prep skill for the next calendar event
This is optional — only set up if the user requests automated prep.
Error Handling
| Scenario | Action |
|---|---|
| No upcoming meetings found | Report "No meetings found in the next 24 hours" and ask for a specific event |
| Calendar MCP unavailable | Ask user for meeting details manually (title, attendees, topic) |
| Clay enrichment fails | Skip company data, note "Enrichment unavailable" in attendee row |
| Slack search returns nothing | Note "No recent Slack activity found" in context section |
| Gmail search returns nothing | Note "No recent email threads found" in context section |
| Attendee not in Slack | Mark as external, skip Slack enrichment |
Privacy Notes
- Meeting prep documents may contain names, titles, and company information
- Store only in
~/Reports/(local filesystem) - Never commit meeting prep files to git repositories
- If sharing the briefing, strip any sensitive notes before sending