🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

meeting-notetaker

by @netanel-abergel

Fetch and present meeting notes from monday.com Notetaker, or show the next upcoming meeting with full context prep. Use when: asked to summarize a meeting,...

Versionv1.0.0
Downloads393
TERMINAL
clawhub install meeting-notetaker

πŸ“– About This Skill


name: meeting-notetaker version: "1.0.0" description: "Fetch and present meeting notes from monday.com Notetaker, or show the next upcoming meeting with full context prep. Use when: asked to summarize a meeting, find notes from a meeting with a specific person, retrieve past meeting summaries, or asked about the next meeting. Trigger phrases: 'meeting notes', 'notes from meeting with X', 'last meeting with', 'summarize meeting', 'next meeting', 'what is my next meeting'."

Meeting Notetaker Skill

Load Local Context

CONTEXT_FILE="/opt/ocana/openclaw/workspace/skills/meeting-notetaker/.context"
[ -f "$CONTEXT_FILE" ] && source "$CONTEXT_FILE"

Then use: $OWNER_EMAIL, $CALENDAR_ID, $GOG_CREDS, etc.

Scope

This skill covers monday.com Notetaker meetings only. It does NOT fetch Zoom, Fathom, Fireflies, or other external recording services.


Trigger Phrases

  • "meeting notes"
  • "notes from meeting with X"
  • "last meeting with X"
  • "what happened in the meeting with X"
  • "summarize meeting"
  • "meeting summary"
  • "next meeting"
  • "what is my next meeting"
  • "what do I have next"

  • Step 1 β€” Parse the Request

    Determine search mode:

    | Input | Mode | |---|---| | "last meeting" | Most Recent β€” no filter | | "meeting with [Name]" | Person Search β€” use name as search term | | "meeting about [Topic]" | Topic Search β€” use topic as search term | | Specific date given | Date Search β€” filter by date after fetching | | "next meeting" | Next Meeting Mode β€” see Step 1a below |


    Step 1a β€” Next Meeting Mode

    When triggered by "next meeting" or similar:

    1. Fetch calendar using direct Google Calendar API (NOT gog CLI β€” broken on server). Use credentials from /opt/ocana/openclaw/.gog/credentials.json account owner. See owner-briefing skill for the full auth flow. 2. Find the next upcoming event β€” first event that starts after now 3. Extract participants from the calendar event (attendees list) 4. Search notetaker for past meetings with the same participants or title keywords:

       get_notetaker_meetings(search="[participant name or meeting title keyword]", include_summary=true, include_action_items=true, include_topics=true, limit=3)
       
    5. Format as Next Meeting Prep (see format below)

    Next Meeting Prep Format

    πŸ“… Your next meeting:
    [Meeting Title]
    πŸ• [Time] ([X minutes from now])
    πŸ‘₯ [Participants]

    🎯 Prep: No history found with [Name] / OR:

    Last meeting with [Name] ([date]): β€’ [Summary bullet 1] β€’ [Summary bullet 2] β€’ [Summary bullet 3]

    βœ… Open action items: β€’ [Action] β€” [Owner]

    If no past meetings found with the participants β†’ skip the prep section and just show the meeting details. If no upcoming meetings today β†’ report "No more meetings today".


    Step 2 β€” Fetch Meetings

    Use the get_notetaker_meetings MCP tool with these flags:

    get_notetaker_meetings(
      include_summary=true,
      include_action_items=true,
      include_topics=true,
      search="",  # omit for "last meeting"
      limit=5  # fetch a few to find the best match
    )
    

  • For Most Recent: fetch with no search param, limit=1
  • For Person/Topic Search: use the extracted name/topic as the search param
  • For Date Search: fetch recent meetings and filter by date in output

  • Step 3 β€” Select the Best Match

    If multiple meetings returned: 1. Prefer the most recent one that matches the search intent 2. If ambiguous (multiple meetings with same person), present a short list and ask which one 3. If zero results β†’ report "No monday.com notetaker meetings found for [X]"


    Step 4 β€” Format the Output

    πŸ“‹ [Meeting Title]
    πŸ“… [Date] | [Duration if available]
    πŸ‘₯ Participants: [Name1, Name2, ...]

    Summary: β€’ [Point 1] β€’ [Point 2] β€’ [Point 3] (up to 5 bullets β€” condense if longer)

    πŸ’¬ Topics Discussed: β€’ [Topic 1] β€’ [Topic 2]

    βœ… Action Items: β€’ [Action] β€” [Owner] (due: [Date if available]) β€’ [Action] β€” [Owner]

    If any section has no data, omit it (don't show empty headers).

    Example Output

    πŸ“‹ Product Roadmap Review
    πŸ“… March 28, 2026 | 60 min
    πŸ‘₯ Participants: Netanel Abergel, Daniel K., Omri S.

    Summary: β€’ Discussed Q2 priorities β€” AI features take top slot β€’ Agreed to delay the legacy migration to Q3 β€’ Budget for external design resources approved β€’ Next milestone: beta release by May 15

    πŸ’¬ Topics Discussed: β€’ Q2 roadmap priorities β€’ Legacy migration timeline β€’ Design budget

    βœ… Action Items: β€’ Update roadmap doc with Q2 decisions β€” Netanel (due: April 2) β€’ Send design brief to freelancers β€” Omri (due: April 5)


    Step 5 β€” Offer to Create Action Items (Optional)

    If action items were found, add at the end:

    Want me to add these action items to your monday.com board?
    

    If owner says yes:

  • Use monday-api-mcp__create_item to create items on the relevant board
  • Set owner and due date columns from the action item data
  • Confirm creation with item names

  • Error Handling

    | Situation | Response | |---|---| | No meetings found | "No monday.com notetaker meetings found for [X]" | | Search returns ambiguous results | List top 3 options with dates, ask which one | | Meeting found but no summary/topics | Show what's available, note "Summary not available for this meeting" | | Tool error | Report as BLOCKED: "Could not fetch meeting notes β€” notetaker service unavailable" |


    Notes

  • Language: Respond in the same language the request was made in (Hebrew β†’ Hebrew, English β†’ English)
  • Recency: Always prefer the most recent matching meeting unless owner specifies otherwise
  • Access: Uses access: "OWN" by default β€” fetches owner's own meetings. Use access: "ALL" only if owner asks about a meeting they weren't in.
  • No transcript by default: Don't fetch the full transcript unless explicitly asked (large payload, high token cost)
  • πŸ“‹ Tips & Best Practices

  • Language: Respond in the same language the request was made in (Hebrew β†’ Hebrew, English β†’ English)
  • Recency: Always prefer the most recent matching meeting unless owner specifies otherwise
  • Access: Uses access: "OWN" by default β€” fetches owner's own meetings. Use access: "ALL" only if owner asks about a meeting they weren't in.
  • No transcript by default: Don't fetch the full transcript unless explicitly asked (large payload, high token cost)