# Send meeting-prep to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "meeting-prep",
    "name": "meeting-prep",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/hougangdev/meeting-prep",
    "canonicalUrl": "https://clawhub.ai/hougangdev/meeting-prep",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/meeting-prep",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=meeting-prep",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "meeting-prep",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-01T21:34:44.658Z",
      "expiresAt": "2026-05-08T21:34:44.658Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=meeting-prep",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=meeting-prep",
        "contentDisposition": "attachment; filename=\"meeting-prep-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "meeting-prep"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/meeting-prep"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/meeting-prep",
    "downloadUrl": "https://openagent3.xyz/downloads/meeting-prep",
    "agentUrl": "https://openagent3.xyz/skills/meeting-prep/agent",
    "manifestUrl": "https://openagent3.xyz/skills/meeting-prep/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/meeting-prep/agent.md"
  }
}
```
## Documentation

### Meeting Prep

Automated meeting preparation and daily commit summaries for development teams.

### Capabilities

Meeting Prep — Check Google Calendar for upcoming meetings with video links, notify user, generate commit-based updates
Daily Summary — End-of-day summary of all commits across all developers

### Google Calendar OAuth

Create OAuth credentials in Google Cloud Console:

Enable Google Calendar API
Create OAuth 2.0 Desktop credentials
Store client_secret.json in credentials/
Authorize with scopes: https://www.googleapis.com/auth/calendar
Store tokens in credentials/calendar_tokens.json

For multiple accounts, store separate token files per account.

### GitHub Token

Create a classic Personal Access Token with repo scope. Store at credentials/github_token.

### Meeting Prep Check

Trigger: Cron every 15 minutes or heartbeat.

Query configured calendars for events in next 45 minutes
Filter for events with Google Meet links (hangoutLink or conferenceData)
If meeting 30-45 min away and not yet notified:

Ask user: "Meeting [title] in X min. When was your last update? Which repos should I check?"
Track in state file to avoid duplicates


If meeting 10-20 min away:

Generate update from commits
Send formatted update

### Daily Commit Summary

Trigger: Cron at end of day.

Fetch all commits from configured repos for current day
Include all developers
Group by repo and subdirectory
Format with author names
Send summary

### Check Calendar

NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ)
LATER=$(date -u -d "+45 minutes" +%Y-%m-%dT%H:%M:%SZ)
TOKEN=$(jq -r '.access_token' credentials/calendar_tokens.json)

curl -s "https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=$NOW&timeMax=$LATER&singleEvents=true" \\
  -H "Authorization: Bearer $TOKEN" | \\
  jq '[.items[] | select(.hangoutLink != null or .conferenceData != null)]'

Refresh Token

CLIENT_ID=$(jq -r '.installed.client_id' credentials/client_secret.json)
CLIENT_SECRET=$(jq -r '.installed.client_secret' credentials/client_secret.json)
REFRESH_TOKEN=$(jq -r '.refresh_token' credentials/calendar_tokens.json)

curl -s -X POST https://oauth2.googleapis.com/token \\
  -d "client_id=$CLIENT_ID" \\
  -d "client_secret=$CLIENT_SECRET" \\
  -d "refresh_token=$REFRESH_TOKEN" \\
  -d "grant_type=refresh_token"

Fetch Commits

TOKEN=$(cat credentials/github_token)
SINCE=$(date -u -d "-7 days" +%Y-%m-%dT%H:%M:%SZ)

# List org repos
curl -s -H "Authorization: Bearer $TOKEN" \\
  "https://api.github.com/orgs/ORG_NAME/repos?per_page=50&sort=pushed"

# Get commits
curl -s -H "Authorization: Bearer $TOKEN" \\
  "https://api.github.com/repos/ORG/REPO/commits?since=$SINCE&per_page=30"

Output Format

Plain text, no markdown, no emojis:

Update - [DATE]

[repo-name]

[subdirectory]
• Verbose description of change (Author)
• Another change (Author)

Today
• [user input]

Blockers
• None

Discussion
• None

Formatting Rules

• Group by repo, then subdirectory
• Summarize commits into meaningful descriptions
• Include author names
• Plain text only for easy copy-paste
State Management

Track state in data/meeting-prep-state.json:

{
  "notified": {},
  "config": {
    "repoFilter": "org-name/*"
  }
}
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: hougangdev
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-01T21:34:44.658Z
- Expires at: 2026-05-08T21:34:44.658Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/meeting-prep)
- [Send to Agent page](https://openagent3.xyz/skills/meeting-prep/agent)
- [JSON manifest](https://openagent3.xyz/skills/meeting-prep/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/meeting-prep/agent.md)
- [Download page](https://openagent3.xyz/downloads/meeting-prep)