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

ScenarioAction
No upcoming meetings foundReport "No meetings found in the next 24 hours" and ask for a specific event
Calendar MCP unavailableAsk user for meeting details manually (title, attendees, topic)
Clay enrichment failsSkip company data, note "Enrichment unavailable" in attendee row
Slack search returns nothingNote "No recent Slack activity found" in context section
Gmail search returns nothingNote "No recent email threads found" in context section
Attendee not in SlackMark 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