Prepare for upcoming meetings with attendee context, open action items, relevant email threads, and agenda suggestions. Triggers when user says "prep me for my meeting", "meeting prep", "prepare for [meeting name]", "prep all my meetings", "what should I know before my 2pm", "brief me on the client meeting", "prep me". Do NOT use for post-meeting processing (use meeting-notes or meeting-debrief), creating calendar events (use google-personal or google-workspace connector), or general task review without meeting context (use daily-plan or task-manager).
From tandemnpx claudepluginhub binatrixai/tandem-marketplace --plugin tandemThis skill is limited to using the following tools:
evals/evals.jsonreferences/cli-fallback.mdreferences/context-gathering.mdtemplate.mdExecutes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
Guides idea refinement into designs: explores context, asks questions one-by-one, proposes approaches, presents sections for approval, writes/review specs before coding.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Prepare for upcoming meetings by gathering attendee context from multiple sources
and producing a structured prep brief. Output follows ${CLAUDE_SKILL_DIR}/template.md.
For detailed per-source lookup procedures, see ${CLAUDE_SKILL_DIR}/references/context-gathering.md.
See METHODOLOGY.md language mirror rule. Reply in the user's language.
Smart routing based on user request:
If user names a specific meeting ("prep my 2pm", "prepare for the client meeting"):
If user says "prep all my meetings" or just "prep me":
If user is vague or ambiguous:
AskUserQuestion: "Which meeting would you like to prepare for?"
Options: [
"[HH:MM] -- [Meeting Title] ([key attendees])",
"[HH:MM] -- [Meeting Title] ([key attendees])",
"Prepare for all meetings today",
"I'll describe the meeting manually"
]
When building the options list:
Fetch events for the next 24 hours from Google Calendar.
Parameters:
singleEvents=true -- expand recurring events into individual instancestimeMin = current time (ISO 8601)timeMax = current time + 24 hours (ISO 8601)orderBy=startTimePost-fetch filtering:
status === "cancelled" -- these are deleted instancesattendees[] array (match by email
from ~/Tandem/CLAUDE.md Tools & Connectors section, or ~/Tandem/memory/preferences.md)responseStatus === "declined" -- user won't attendstart.date field, no time component) from timed
meetings (start.dateTime field) -- all-day events are context, not prep targetsresponseStatus === "needsAction" or "tentative":
prompt user: "You haven't responded to [Title] at [Time]. Include in prep?"If calendar is unavailable (no MCP connector, auth error, timeout):
${CLAUDE_SKILL_DIR}/references/cli-fallback.mdWhen no calendar connector is available, or user chooses "describe the meeting manually":
AskUserQuestion: "Tell me about the meeting -- who's attending, what's the topic, and when is it?"
Options: [
"I'll type the details now",
"Let me paste the calendar invite"
]
Parse the user's response for:
Continue to Step 3 with whatever information was provided. Missing fields are OK -- the prep brief will use what's available.
For detailed per-source lookup procedures, see ${CLAUDE_SKILL_DIR}/references/context-gathering.md.
Silently read from all 5 sources below. Do NOT show intermediate results, do NOT ask permission for each source. Compile everything, then present the final brief in Step 4.
Each source is independently optional. If a connector is unavailable or data is not found, skip that source silently -- never fail, never report gaps.
For each attendee, read ~/Tandem/memory/people/{name}.md (lowercase, hyphens for spaces).
Search Gmail for recent threads with each attendee:
from:{email} OR to:{email} newer_than:14d -category:promotions -category:updatesRead ~/Tandem/tasks/kanban.md and search "To Do" and "In Progress" columns for
tasks mentioning or assigned to each attendee.
Search Monday.com for items assigned to or mentioning each attendee.
Search for previous meetings with the same attendees:
~/Tandem/meetings/* for files containing attendee names~/Tandem/documents/meeting-* for older meeting notesBatch mode: For each meeting in the batch, run context gathering independently. Each meeting gets its own set of attendee lookups.
Use the template from ${CLAUDE_SKILL_DIR}/template.md to structure the output.
Generate a full prep brief with:
If some attendees have no context available, simply do not mention them in the context section. No "gaps detected" or "no data found" notes anywhere.
For each meeting, generate a compact brief (see template.md compact format). Lead with a batch overview containing a table: Time | Meeting | Attendees | Key Context.
Use compact format per meeting -- executive summary (1-2 sentences), key context (2-3 bullet points), and relevant open items (1-2 items or omit).
Filename convention: prep-YYYY-MM-DD-HHMM-slug.md
prep-2026-03-21-1400-client-review.mdDirectory: ~/Tandem/meetings/
Batch mode duplicate check: Before generating each brief:
~/Tandem/meetings/prep-{date}-{time}-*.md matching the event's date and timeSave the brief using the Write tool.
After saving the prep brief, log activity to ~/Tandem/stats.json.
Read ~/Tandem/stats.json. If it does not exist, create it as [].
Parse the JSON array, append a new entry, and write it back:
{
"type": "meeting-prep",
"action": "created",
"count": 1,
"timeSavedMinutes": 15,
"description": "Meeting prep: [Title] with [attendees] ([time])",
"timestamp": "<current ISO 8601 UTC>"
}
For batch mode: log one entry per meeting prepped (not one aggregate entry).
After appending to stats.json, follow the /sync workflow from
tandem-skills/core/sync/SKILL.md to rebuild ~/Tandem/dashboard.html with
updated statistics. If /sync fails (e.g., dashboard.html does not exist yet),
continue -- the main workflow must complete regardless of sync outcome.
After all briefs are saved and stats logged:
Single meeting mode:
Batch mode:
No further prompts unless the user asks for changes or drill-down.
Give the user exact words, not vague advice. For each meeting, include 2-3 ready-to-use scripts the user can say verbatim. Tailor scripts to the context gathered in Step 3.
Provide 1-2 opening line options based on meeting context:
Based on open items and email threads, anticipate 2-3 likely questions and provide exact response scripts:
Provide a closing script:
Task format specification: tandem-skills/tasks/task-manager/references/kanban-format.md. When reading or moving tasks, preserve the existing format exactly.