meeting-prep
Prepare briefings for today's meetings \u2014 attendee research, email\ \ history, past meeting notes, LinkedIn, and company context. Use when running the\ \ daily meeting prep cron, or when user asks to prepare for meetings, review who\ \ they're meeting with, or get context on upcoming calls."
npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill meeting-prep --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Prepare detailed meeting briefs for all today’s calendar events with attendee research, email history, Granola/LinkedIn/company context, and delivery channels via WhatsApp and Slack. It also creates cron jobs for pre- and post-meeting reminders, saves full briefs to a state file, deduplicates processing per meeting, and updates a processed-meetings log.
How it works
- Reads user configuration from
../config/user.jsonto obtain user identity, emails, timezone, Slack, and workspace paths. - Logs key steps using a mandatory logging routine via
python3 {user.workspace}/scripts/skill_log.py meeting-prep <level> "<message>" ['<details>']before and after external calls. - Scopes to today’s meetings from primary and work calendars, filtering for events with attendees and excluding personal/solo events.
- For each meeting, prints an event basics block with RSVP status per attendee and flags if any external attendee hasn’t accepted.
- Performs email context gathering for each attendee across two Gmail accounts (search strategies include address, full name, parts of name, and intro signals), with 90-day window and historical fallback if needed.
- Executes Granola searches by attendee, cross-checking with recent meetings to surface decisions, actions, and context; requires exact name matching and preserves citation links.
- Conducts LinkedIn research for attendees and company research for organizations.
- Formats and sends per-meeting briefs in a structured, multi-section message through WhatsApp and Slack (one message per meeting, chronological order, never collapsed).
- Saves full, detailed briefs to a dated Markdown file in
state/meeting-prep-YYYY-MM-DD.mdand triggers pre-meeting cron jobs (pre-meeting reminders) usingopenclaw cron add, then validates withopenclaw cron list. - Creates post-meeting cron jobs to run after meetings, referencing the action-items-todoist skill, and validates cron counts similarly.
- Logs each created cron with timestamped logs and finally logs a summary of cron counts.
- Maintains a deduplication mechanism by appending meeting titles to
{user.workspace}/state/processed-meetings-YYYY-MM-DD.jsonand skipping already-processed meetings. - Includes sanity checks to ensure calendar is source of truth and message/cron counts match expected numbers, with error alerts if counts mismatch.
When to use it
- Use when running the daily meeting prep cron or when a user asks to prepare for meetings, review attendees, or obtain context on upcoming calls.
What it can touch
- Reads from:
../config/user.json,../config/DEBUG_LOGGING.md, emails via Gmail, Granola, LinkedIn, company news sources. - Writes:
/state/meeting-prep-YYYY-MM-DD.md,/state/processed-meetings-YYYY-MM-DD.json, and creates crons viaopenclaw cron add. - Runs:
gog calendar,mcporterGranola queries, email search commands, LinkedIn/Company research commands, and Slack/WhatsApp delivery steps.
Caveats
- Requires the agent to have access to configured Gmail accounts, Granola authentication, and Slack/WhatsApp delivery capabilities.
- If Granola authentication fails, it will attempt a reset once and may continue without Granola data.
- If cron creation count checks fail, it will log an error and emit a WhatsApp alert about missing crons.
- All content is delivered as per the exact formatting and structure described; no automatic content summarization beyond the defined sections.
# Daily Meeting Prep ## Config — read before starting Read `../config/user.json` (resolves to `~/executive-assistant-skills/config/user.json`). Extract and use throughout: - `name`, `full_name` — user's name - `primary_email`, `work_email` — Gmail accounts to check - `whatsapp` — WhatsApp number for delivery - `timezone` — IANA timezone (e.g. America/Argentina/Buenos_Aires) - `slack_username` — Sl
What does the meeting-prep skill do?
Prepare briefings for today's meetings \u2014 attendee research, email\ \ history, past meeting notes, LinkedIn, and company context. Use when running the\ \ daily meeting prep cron, or when user asks to prepare for meetings, review who\ \ they're meeting with, or get context on upcoming calls."
How do I install it?
Run `npx skills add jeremylongshore/claude-code-plugins-plus-skills --skill meeting-prep --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From jeremylongshore/claude-code-plugins-plus-skills, a repository with 2,596 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
