meeting-prep
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.
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
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.