Meeting Scheduler Pro

Handles full meeting lifecycle by integrating with Google Calendar—schedules meetings, manages availability, generates prep briefs, agendas, and follow-up ta...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 29 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description align with implementation: calendar operations are performed via the gog CLI, availability is driven by config/settings.json, and prep/follow-up flows are implemented with local note files and dashboard metrics. There are no unrelated credentials, binaries, or services requested.
Instruction Scope
SKILL.md and examples instruct the agent to read/write Google Calendar (via gog), optionally query Gmail (via gog), and optionally perform web searches for attendee/company context. Those behaviors are documented in SECURITY.md and controlled by settings (prep.include_web_search, prep.include_email_context). This is within the stated purpose but involves sensitive data flows (calendar entries, email content, attendee names sent to web search/AI) that users should explicitly enable/disable.
Install Mechanism
No install spec and no external downloads. The package is instruction + local scripts (setup.sh, export-schedule.sh, weekly-agenda.sh). Scripts only check for gog/python3, create local config and notes directories, and set permissions; nothing is fetched or executed from an untrusted URL.
Credentials
The skill requests no environment variables or new credentials; it relies on the gog CLI's OAuth tokens and the OpenClaw-configured AI provider. This is proportional, but it means the gog token scopes and the AI provider's handling of sensitive text (emails, calendar titles, attendee names, web search results) are important trust surfaces.
Persistence & Privilege
always is false; the package only writes to its own config (config/settings.json by setup.sh) and creates a local meeting-notes/ directory. It updates its own integration flags when other local skills are detected. It does not request system-wide privileges or modify other skills' configs.
Assessment
This package appears internally consistent, but review and configure it before use. Key points: - gog CLI handles Google OAuth tokens; verify the scopes you grant (Calendar read/write, Gmail read if enabled) are acceptable. - By default, settings enable web search and email context; those send attendee names, event text, and email snippets to your configured AI model and to web search. Disable prep.include_web_search or prep.include_email_context in config/settings.json if you don't want those flows. - Meeting notes are stored locally under meeting-notes/ and persist until you delete them—audit/clean them periodically. - The setup script modifies only this package's settings.json and creates local directories; inspect scripts/setup.sh before running and run setup in a user-owned environment. - Source/homepage is missing; if provenance matters, ask the publisher for a canonical source or run the skill in a restricted environment first. If you want higher confidence, confirm the skill’s publisher/source, run the scripts in a sandbox, and review gog's stored tokens and AI provider data-handling policies.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97209snkwhdtsk6hk4r9vfht983xscx

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Meeting Scheduler Pro — SKILL.md

Your AI meeting co-pilot. Not just a booking link.

Meeting Scheduler Pro handles the full meeting lifecycle: prep → schedule → agenda → follow-up. It connects to Google Calendar via the gog CLI, manages your availability through conversation, preps you before every call, generates agendas, and creates follow-up tasks when the meeting ends.


Prerequisites

  • OpenClaw installed and running
  • gog CLI authenticated with Google Calendar (gog auth login)
  • Google Calendar as your primary calendar
  • config/settings.json configured with your availability preferences (see Setup)

Optional Integrations

  • Relationship Buddy (NormieClaw) — enriches meeting prep with contact history and relationship notes
  • Project Manager Pro (NormieClaw) — receives follow-up tasks created after meetings

Setup

  1. Run the setup script:
    bash scripts/setup.sh
    
  2. Authenticate gog with Google Calendar:
    gog auth login
    
  3. Verify calendar access:
    gog calendar list
    
  4. Edit config/settings.json with your working hours, buffer preferences, and meeting defaults.

Core Capabilities

1. Calendar Integration

All calendar operations use the gog CLI. The agent reads, writes, and queries Google Calendar directly.

Reading Events:

# Today's meetings
gog calendar events list --from today --to today

# This week
gog calendar events list --from "Monday" --to "Friday"

# Specific date range
gog calendar events list --from "2026-03-15" --to "2026-03-22"

Creating Events:

gog calendar events create \
  --title "Call with Sarah — Q3 Roadmap" \
  --start "2026-03-18T10:00:00" \
  --end "2026-03-18T10:30:00" \
  --description "Discuss Q3 roadmap priorities and timeline" \
  --attendees "sarah@example.com"

Checking Availability:

# Pull events for a date range, then compute open slots against settings.json availability
gog calendar events list --from "2026-03-16" --to "2026-03-20"

The agent parses event output and cross-references with your availability windows defined in config/settings.json to identify open slots.


2. Scheduling Engine

The scheduling engine handles the full booking conversation. When a user requests a meeting, the agent:

  1. Parses the request — extracts attendee(s), duration, preferred timeframe, topic
  2. Checks availability — pulls calendar events for the requested window, applies availability rules from settings.json
  3. Suggests 3 slots — prioritizes morning/afternoon preference, avoids back-to-back without buffers, respects no-meeting blocks
  4. Handles negotiation — if the user or attendee rejects all slots, expands the search window and offers alternatives
  5. Creates the event — books it on Google Calendar with title, description, attendees, and any video link

Scheduling Flow

Step 1: Parse the Request

When the user says something like "Schedule a 30-min call with Sarah next week about the roadmap," extract:

  • Who: Sarah (resolve to email from contacts or ask)
  • Duration: 30 minutes
  • When: Next week (Monday–Friday of the following week)
  • Topic: Roadmap discussion
  • Type: Call (add video link if configured)

Step 2: Check Calendar & Suggest Slots

Query the date range via gog calendar events list, parse occupied blocks, and apply settings.json rules (working hours, buffers, no-meeting blocks, lunch).

Present 3 options with context:

Here are 3 open slots for a 30-min call with Sarah next week:

1. Monday Mar 16, 10:00–10:30 AM — light morning, no adjacent meetings
2. Tuesday Mar 17, 2:00–2:30 PM — 1-hour gap before your next call
3. Thursday Mar 19, 11:00–11:30 AM — open morning block

Which works? Or want me to look at different times?

Step 4: Book It

Once confirmed:

gog calendar events create \
  --title "Call with Sarah — Roadmap Discussion" \
  --start "2026-03-16T10:00:00" \
  --end "2026-03-16T10:30:00" \
  --description "Discuss Q3 roadmap priorities and timeline.\n\nAgenda will be generated before the meeting." \
  --attendees "sarah@example.com"

Confirm with: event title, date/time, attendee, and note that prep/agenda will be generated.

Edge Cases

  • No email: Ask for the attendee's email before booking
  • Fully booked: Expand to the next week and offer alternatives
  • Conflicting preferences: Note the conflict and suggest the next-best option
  • Recurring: Offer to make it recurring if the topic suggests regularity

3. Availability Management

Availability rules live in config/settings.json. The agent reads these before every scheduling decision.

See config/settings.json for the full structure: working hours, timezone, buffer minutes, no-meeting blocks (day/start/end/label), preferred times for external vs internal, max meetings per day, and lunch block.

Dynamic Availability Updates

Users can update availability through conversation:

  • "Block off Friday afternoons for focus time" → Agent updates settings.json
  • "I'm out of office March 20–22" → Agent checks for conflicts and blocks the dates
  • "No meetings before 10 AM this week" → Agent applies a temporary override

Availability Sharing

When someone asks for your availability (via the agent), format it conversationally:

Sarah asked when you're free next week for a 30-min call. Here's what I'd share:

Available slots:
- Mon 10:00–11:30 AM
- Tue 2:00–4:00 PM
- Thu 9:00–11:00 AM
- Fri 10:00–12:00 PM

Want me to send these options, or adjust anything first?

No booking page required — the agent handles the back-and-forth. If the user wants a booking page, generate a simple availability summary they can share.


4. Meeting Prep

Before every meeting, the agent generates a prep brief. This runs automatically when triggered by a cron/heartbeat check, or on demand when the user asks "What's my next meeting?"

Prep Brief Structure

📋 MEETING PREP: Call with Sarah Chen
📅 Monday Mar 16, 10:00–10:30 AM
📍 Google Meet (link)

👤 ATTENDEE
- Sarah Chen, VP Product at Acme Corp
- Last met: Feb 3, 2026 (Q2 planning call)
- Connected via: LinkedIn, mutual intro from David

📝 LAST INTERACTION NOTES
- Discussed Q2 product roadmap timeline concerns
- She flagged resource constraints on the mobile team
- Agreed to revisit in 6 weeks (this meeting)

💡 SUGGESTED TALKING POINTS
1. Follow up on mobile team resourcing — did they hire?
2. Q3 roadmap priorities she wants to align on
3. Timeline for the API v2 launch she mentioned last time

⚡ CONTEXT
- Acme Corp announced Series C last month ($45M)
- Their Q1 earnings call mentioned expanding developer tools
- You have an open proposal with them (sent Feb 15)

Data Sources for Prep

The agent gathers prep context from available sources:

  1. Google Calendar — meeting title, description, attendees, past meetings with same attendee
  2. Relationship Buddy (if installed) — contact notes, interaction history, relationship score
  3. Web search (if enabled) — recent news about the attendee's company, LinkedIn profile context
  4. Meeting history — past agendas and follow-up notes stored locally
  5. Email context (via gog) — recent email threads with the attendee

Use gog calendar events list --query "<name>" for past meetings and gog gmail search --query "from:<email>" for recent emails.

When Prep Runs

  • Automated: Agent checks tomorrow's calendar each evening and preps briefs for all meetings
  • On-demand: User asks "Prep me for my 2 PM" or "What do I need to know about tomorrow?"
  • Morning brief: Included in daily briefing if configured — "You have 3 meetings today. Here are your prep briefs."

5. Agenda Generation

For meetings you're hosting, the agent auto-generates an agenda based on context.

Agenda Structure

📋 AGENDA: Q3 Roadmap Discussion with Sarah Chen
📅 Monday Mar 16, 10:00–10:30 AM

1. Check-in (2 min)
   - How's the team doing after Q2 push?

2. Q2 Retrospective (8 min)
   - What shipped vs. what slipped
   - Mobile team capacity update

3. Q3 Priorities (12 min)
   - Top 3 roadmap items to align on
   - API v2 timeline and dependencies
   - Resource allocation for new initiatives

4. Open Questions (5 min)
   - Partnership proposal status
   - Any blockers you need help with?

5. Next Steps & Follow-up (3 min)
   - Action items
   - Schedule follow-up if needed

Total: 30 min

Agenda Generation Logic

  1. Parse meeting purpose from title and description
  2. Review past meeting notes with same attendee(s)
  3. Check for open action items from previous meetings
  4. Allocate time proportionally based on meeting duration
  5. Include standing items (check-in, next steps) for recurring meetings
  6. Add open questions from recent email threads or notes

Sharing Agendas

Add the agenda to the calendar event description via gog calendar events update, email it to attendees via gog gmail send, or both. Always ask the user: "Want me to add this to the invite, email it, or both?"


6. Follow-Up Engine

After a meeting ends, the agent initiates follow-up. This triggers based on calendar events ending or the user saying "Just got off a call with Sarah."

Follow-Up Flow

Step 1: Check In

Your call with Sarah just ended. How'd it go? Any action items?

Step 2: Capture Notes User responds naturally: "Good call. She needs the API docs by Friday. We agreed to push the mobile launch to April. I need to send her the updated timeline."

Step 3: Parse and Create Tasks

Extract action items and create structured follow-ups:

Got it. Here's what I captured:

Action Items:
1. ☐ Send API docs to Sarah — due Friday Mar 20
2. ☐ Update mobile launch timeline to April — no due date
3. ☐ Send Sarah the updated timeline — due this week

Follow-up Meeting:
- Sarah mentioned revisiting in 2 weeks. Want me to schedule a 30-min follow-up for week of March 30?

Shall I create these tasks in Project Manager Pro?

Step 4: Create Tasks (if Project Manager Pro is installed)

# Tasks are created via Project Manager Pro's task creation interface
# The agent formats tasks and passes them to the PM Pro skill

If Project Manager Pro isn't installed, tasks are stored as a local note:

Follow-up notes saved to: meeting-notes/2026-03-16-sarah-chen-roadmap.md

Step 5: Send Follow-Up Email (optional)

Want me to send Sarah a follow-up email? Here's a draft:

---
Subject: Follow-up: Q3 Roadmap Discussion

Hi Sarah,

Great chatting today. Here's a quick recap:

- I'll send over the API docs by Friday
- We're aligning on an April timeline for the mobile launch
- I'll share the updated timeline this week

Let me know if I missed anything. Talk soon.
---

Send it, edit it, or skip?

Follow-Up Note Storage

Notes are saved as meeting-notes/YYYY-MM-DD-attendee-topic.md with: date, attendees, discussion points, action items (owner + due date), decisions, and next meeting date. These feed back into future meeting prep for the same attendees. See examples/example-follow-up.md for a full example.


7. Smart Suggestions

The agent proactively monitors your calendar and offers suggestions. These surface during daily briefings, heartbeat checks, or when you interact with the scheduler.

Calendar Health Checks

Back-to-back detection:

⚠️ Heads up — you have 4 meetings back-to-back Tuesday (9 AM to 1 PM) with no breaks.
Want me to add 10-min buffers between them? Or move the 11:30 to 2 PM?

Overloaded day warning:

Wednesday has 7 meetings scheduled. Your max is 6.
The least critical one looks like "Team Social Planning" at 4 PM.
Want me to suggest rescheduling it?

Meeting-free day protection:

You have no meetings Friday — nice! Want me to block it as a focus day
so nothing gets booked?

Recurring meeting audit:

You have 3 recurring weekly meetings that haven't had agenda updates in 4+ weeks:
1. Monday standup with Dev Team
2. Wednesday sync with Marketing
3. Friday review with Ops

Worth checking if any of these can go async or biweekly?

Stale relationship nudge:

You haven't met with David Park in 8 weeks. Last meeting was about the
partnership deal. Want me to schedule a 15-min check-in?

Suggestion Triggers

  • Morning brief: Calendar health check for today + tomorrow
  • Evening prep: Next-day meeting prep and conflict detection
  • Weekly review: Friday afternoon calendar audit for the next week (via scripts/weekly-agenda.sh)
  • On scheduling: When booking a new meeting, flag conflicts or back-to-back issues

8. Dashboard Integration

Meeting Scheduler Pro tracks metrics for the NormieClaw dashboard.

All 12 metrics are defined in dashboard-kit/manifest.json (prefix: ms_). Key metrics: meetings today/week, prep completion rate, pending/completed follow-ups, avg meetings/day, busiest day/hour, no-show rate, buffer compliance, agent-booked count, reschedule count.

Dashboard Views

See dashboard-kit/DASHBOARD-SPEC.md for full visualization specs:

  • Weekly meeting heatmap — grid showing meeting density by day/hour
  • Meeting frequency trend — line chart of meetings per week over time
  • Prep completion tracker — bar chart showing prep rate by week
  • Follow-up pipeline — kanban-style view of pending vs completed follow-ups
  • Calendar health score — composite score based on buffer compliance, meeting density, focus time

Conversational Interface Reference

Scheduling Commands

User SaysAgent Does
"Schedule a call with Sarah next week"Checks calendar, suggests 3 slots, books on confirmation
"Find 30 minutes for me and John Tuesday"Scans Tuesday availability, offers slots
"Book a 1-hour meeting with the team on Thursday"Creates group event, sends invites
"Reschedule my 2 PM to Friday"Finds Friday slots, moves the event
"Cancel tomorrow's standup"Confirms and deletes the event
"What's my availability next week?"Generates shareable availability summary
"Block off Friday afternoon"Adds a calendar block, updates settings

Prep Commands

User SaysAgent Does
"Prep me for my next meeting"Generates prep brief for the next upcoming meeting
"What do I need to know about tomorrow?"Preps all of tomorrow's meetings
"Who am I meeting with today?"Lists today's meetings with attendee context
"Generate an agenda for my 10 AM"Creates and optionally shares an agenda

Follow-Up Commands

User SaysAgent Does
"Just got off a call with Sarah"Initiates follow-up: asks how it went, captures action items
"Meeting with John went great, follow up on the proposal"Creates task, drafts follow-up email
"What action items do I have open?"Lists all pending follow-up tasks
"Send Sarah a follow-up"Drafts and optionally sends follow-up email

Calendar Health Commands

User SaysAgent Does
"How's my week looking?"Calendar overview with health check
"Am I overbooked?"Checks against meeting limits, flags issues
"Audit my recurring meetings"Reviews recurring meetings for relevance
"Who haven't I met with recently?"Flags stale relationships based on meeting history

Integration Points

Relationship Buddy (NormieClaw)

If Relationship Buddy is installed, Meeting Scheduler Pro pulls:

  • Contact notes and relationship history
  • Last interaction date and context
  • Relationship health score
  • Suggested topics based on past conversations

This enriches meeting prep significantly. Without Relationship Buddy, prep relies on calendar history, email context, and web search.

Project Manager Pro (NormieClaw)

If Project Manager Pro is installed, follow-up tasks are created directly in the task management system:

  • Tasks with owners, due dates, and meeting context
  • Linked to the originating meeting for traceability
  • Included in PM Pro's dashboard metrics

Without PM Pro, tasks are stored as local markdown files.

Daily Briefing

Meeting Scheduler Pro contributes to the daily briefing:

  • Today's meeting count and schedule
  • Prep briefs for morning meetings
  • Any calendar conflicts or warnings
  • Pending follow-up tasks from yesterday

Scripts Reference

setup.sh

Validates gog installation, checks calendar auth, creates config directory, initializes settings.json with defaults. Run once during installation.

export-schedule.sh

Exports upcoming meetings (default: next 7 days) to a formatted markdown file. Useful for sharing your schedule or generating a weekly overview.

bash scripts/export-schedule.sh           # Next 7 days
bash scripts/export-schedule.sh 14        # Next 14 days
bash scripts/export-schedule.sh 7 /tmp/schedule.md  # Custom output path

weekly-agenda.sh

Generates a week-ahead meeting prep document. Pulls next week's meetings, generates prep briefs for each, identifies conflicts, and outputs a comprehensive planning document.

bash scripts/weekly-agenda.sh             # Next week
bash scripts/weekly-agenda.sh 2026-03-23  # Specific week start date

Configuration Reference

All settings live in config/settings.json. See the file directly for field names, types, and defaults. Key sections:

  • availability — working hours, timezone, buffer minutes, no-meeting blocks, lunch block, max meetings/day, preferred times for external vs internal meetings
  • meeting_defaults — default duration, video link, reminder minutes
  • prep — auto-prep toggle, web search toggle, email context toggle
  • followup — auto-prompt toggle, task creation toggle, email draft toggle
  • notes_directory — where meeting notes are stored
  • integrations — flags for Relationship Buddy and Project Manager Pro

Troubleshooting

"gog: command not found"

Install gog: npm install -g gog or check your OpenClaw installation — gog should be bundled.

"Calendar access denied"

Re-authenticate: gog auth login — make sure you grant calendar read/write permissions.

"No events found"

Check that you're querying the correct calendar. gog calendar list shows all available calendars. If you use multiple calendars, specify the calendar ID in your queries.

Prep brief is thin

Prep quality depends on available data. For richer briefs:

  • Install Relationship Buddy for contact history
  • Enable email context in settings.json
  • Enable web search for company news
  • Build meeting history by using follow-up features consistently

Agent suggests times outside working hours

Check config/settings.json — ensure working_hours and timezone are set correctly.

Files

13 total
Select a file
Select a file to preview.

Comments

Loading comments…