Claude
Skills
Sign in
Back

meeting-prep

Included with Lifetime
$97 forever

Prepare for upcoming meetings — pulls Cal.com bookings, researches participants, audits previous sessions from Obsidian vault, and creates prep notes. Also links prep notes to post-meeting session notes.

General

What this skill does


# Meeting Prep

Prepares comprehensive meeting prep notes for upcoming Cal.com bookings by researching participants and auditing session history from the Obsidian vault.

## Configuration

All paths and settings are in `config.yaml` next to this file. Read it before executing any steps.

```yaml
# config.yaml — key fields:
vault.root          # Obsidian vault root
vault.meetings      # Where meeting notes live
vault.people_search_depth  # How deep to search for person notes
prep_notes.prefix   # Filename prefix (default: "prep")
prep_notes.type_tag # Frontmatter type value (default: "meeting-prep")
calcom.lookahead_days  # Default booking lookahead
calcom.timezone     # Display timezone
calcom.time_format  # 12h or 24h
```

**On first run:** Read `config.yaml` from the same directory as this SKILL.md file. Resolve `~` to the user's home directory. Use these values for all path references below — never hardcode paths.

## When to Use

- User invokes `/meeting-prep`
- User asks to prepare for upcoming meetings/sessions/calls
- User says "who do I have coming up" or "prep for my next session"

## Arguments

- No args → prep all bookings in the next `calcom.lookahead_days` days
- Date (`2026-06-03`) → prep bookings on that specific date
- Name (`Greg`) → prep only bookings with that participant
- `tomorrow` / `today` / `this week` → natural date ranges
- `link` → scan for unlinked prep↔session note pairs and connect them
- `sync` → reconcile prep notes with Cal.com booking state (cancelled, rescheduled, deleted)
- `status` → show Dataview-style overview of all prep notes and their link status

## Workflow

### Step 0: Load Config

Read `config.yaml` from the skill directory. Resolve all paths (expand `~`). Store as variables for use in subsequent steps:

```
VAULT_ROOT     = config.vault.root
MEETINGS_DIR   = config.vault.meetings
PEOPLE_DEPTH   = config.vault.people_search_depth
PREP_PREFIX    = config.prep_notes.prefix
TYPE_TAG       = config.prep_notes.type_tag
LOOKAHEAD      = config.calcom.lookahead_days
TIMEZONE       = config.calcom.timezone
```

### Step 1: Fetch Bookings

Load Cal.com MCP tools via ToolSearch (query: "calcom", max_results: 20). Then:

1. Call `get_bookings` to retrieve upcoming bookings (status: accepted) within the target date range
2. For each booking, call `get_booking_attendees` to get the full attendee list — Cal.com bookings can have multiple attendees (e.g., lab sessions, masterminds, group calls)
3. Filter by arguments if provided (date, name)
4. If no bookings found, report and stop

### Step 2: Search Vault for Session History

For each unique participant, search `MEETINGS_DIR` for previous session notes:

```bash
grep -rl "PARTICIPANT_NAME" $MEETINGS_DIR 2>/dev/null
```

Read matching files (up to 5 most recent) to extract:
- Date and duration of each past session
- Key topics discussed (from headings, summary sections, or transcript excerpts)
- Any action items or follow-ups mentioned
- Session source (Fathom, Granola, manual)

Also search for a person note in the vault:
```bash
find $VAULT_ROOT -maxdepth $PEOPLE_DEPTH -name "*PARTICIPANT_NAME*" -not -path "*/Meetings/*" 2>/dev/null
```

### Step 3: Research Participants (Workflow)

Use the Workflow tool to parallelize participant research. Pass `MEETINGS_DIR` and `VAULT_ROOT` via workflow args so subagents know where to search.

For each unique participant, spawn an agent that:

1. Web-searches the participant's name + company/email domain
2. Checks LinkedIn profile (via web search, not direct scrape)
3. Summarizes: role, company, recent activity, mutual context
4. For returning participants: cross-references with vault history to identify patterns and continuity points

### Step 4: Create Prep Notes in Obsidian

There are two modes depending on the number of attendees:

- **Solo session** (1 attendee): one prep note per session, exactly as described below. Filename: `YYYYMMDD-$PREP_PREFIX-PARTICIPANT_SLUG.md`
- **Group session** (2+ attendees): one prep note for the whole session. Filename: `YYYYMMDD-$PREP_PREFIX-EVENT_SLUG.md` (where `EVENT_SLUG` is the Cal.com event type slug in lowercase kebab-case). The note lists all attendees with brief profiles, and the research section covers all participants.

**If a prep note already exists for that date+session, update it instead of creating a duplicate.**

#### Solo Session Template

Use this template:

```markdown
---
type: $TYPE_TAG
date: YYYY-MM-DD
participant: "Full Name"
email: [email protected]
event_type: "Cal.com event type name"
duration: X min
time: "HH:MM $TIMEZONE"
zoom_link: "https://..."
status: prep
session_note: ""
tags:
  - $TYPE_TAG
  - SESSION_TYPE
---

# Prep: Full Name — YYYY-MM-DD

## Session Info
- **Time**: HH:MM–HH:MM $TIMEZONE (Day of week)
- **Type**: Event type name (X min)
- **Location**: Zoom link
- **Participant timezone**: Timezone

## About FIRST_NAME

RESEARCH_SUMMARY

## Previous Sessions (N total)

### Most Recent: YYYY-MM-DD — Event Type
KEY_TOPICS_AND_OUTCOMES

### Earlier Sessions
BRIEF_LIST_WITH_DATES_AND_TOPICS

## Continuity & Follow-ups

- Outstanding action items from previous sessions
- Recurring themes or patterns
- Progress on previously discussed goals

## Prep Ideas

- Conversation starters from research
- Topics to revisit based on session history
- Questions to explore

## Notes

_Space for pre-meeting thoughts and during-meeting notes_
```

#### Sequential Bookings for the Same Participant

When multiple bookings exist for the same participant within the lookahead window (e.g., Jun 3 and Jun 9), sort them by date and handle as follows:

- **First booking**: standard prep note, no changes.
- **Second+ booking**: the prep note should acknowledge the earlier session:
  - Add `prior_prep: "[[YYYYMMDD-prep-participant]]"` to frontmatter, pointing to the earlier prep note
  - Include a **## Prior Session** section after Session Info:
    ```markdown
    ## Prior Session
    A session with FIRST_NAME is scheduled for PRIOR_DATE — it will have happened by the time this session occurs.
    Update this note after the PRIOR_DATE session with fresh context.
    ```
  - Keep the full research/history sections but flag them as "will be stale after PRIOR_DATE" so the user knows to revisit
  - The note is still useful as-is for background research, but action items and continuity will need a post-session refresh

For first-time participants (no vault history), replace the "Previous Sessions" and "Continuity" sections with:

```markdown
## First Meeting

No previous sessions found in vault.

## Context & Talking Points

- Research-based conversation starters
- Questions to understand their goals and needs
- How they likely found you / booking context
```

#### Group Session Template

For bookings with 2+ attendees, use this template instead:

```markdown
---
type: $TYPE_TAG
date: YYYY-MM-DD
participants:
  - name: "Full Name 1"
    email: [email protected]
  - name: "Full Name 2"
    email: [email protected]
event_type: "Cal.com event type name"
duration: X min
time: "HH:MM $TIMEZONE"
zoom_link: "https://..."
status: prep
session_note: ""
tags:
  - $TYPE_TAG
  - SESSION_TYPE
---

# Prep: Event Type Name — YYYY-MM-DD

## Session Info
- **Time**: HH:MM–HH:MM $TIMEZONE (Day of week)
- **Type**: Event type name (X min)
- **Location**: Zoom link
- **Attendees**: N participants

## Attendees

### FIRST_NAME_1 LAST_NAME_1
BRIEF_PROFILE_AND_RESEARCH_SUMMARY

### FIRST_NAME_2 LAST_NAME_2
BRIEF_PROFILE_AND_RESEARCH_SUMMARY

## Previous Sessions per Attendee

SUMMARY_OF_VAULT_HISTORY_PER_ATTENDEE (grouped by person, skip if no history)

## Prep Ideas

- Group dynamics to consider
- Topics to cover with the full group
- Individual follow-ups to weave in

## Notes

_Space for pre-meeting thoughts and during-meeting notes_
```

### Step 5: Report

After creating all prep notes, output a concise summary:
- List of prepped sessions (date, time, participant, event type)
- Key highlights (first-tim
Files: 4
Size: 34.4 KB
Complexity: 37/100
Category: General

Related in General