A scheduled, auto-running admin-meeting-prep assistant: every day at 9 AM it scans meetings within the next 7 days and sends action reminders; every day at 3 PM it sends a full briefing for the next day's meetings. Notifications are sent to yourself via Google Chat. No manual trigger needed; does not handle post-meeting follow-up.
Scanned 9/19/2026
Install to Claude Code
npx -y skills add peter-tu-zynkr/zynkr-skill-builder --skill admin-meeting-prep --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Admin Meeting Prep?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/peter-tu-zynkr-admin-meeting-prep)More formats (shields.io, HTML) on the badges page.
---
name: admin-meeting-prep
sheetId: "3.03"
description: "A scheduled, auto-running admin-meeting-prep assistant: every day at 9 AM it scans meetings within the next 7 days and sends action reminders; every day at 3 PM it sends a full briefing for the next day's meetings. Notifications are sent to yourself via Google Chat. No manual trigger needed; does not handle post-meeting follow-up."
category: operations
project: admin-meeting-prep
platform: claude
status: WIP
author: Jane Liao
input: "None (scheduled auto-trigger; reads Google Calendar and Gmail)"
process: "9am cron: scan the 7-day calendar → send action reminders to Google Chat | 3pm cron: scan Gmail for attendee background → send briefing to Google Chat"
output: "Google Chat self-message: an action checklist in the morning, a structured briefing in the afternoon"
synergy: []
type: agent
skills: ["admin-meeting-note"]
house-style: bound
---
# Meeting Prep
```bash
npx skills add https://github.com/peter-tu-zynkr/zynkr-skill-builder --skill admin-meeting-prep
```
A admin-meeting-prep assistant that runs automatically twice a day: at 9 AM it tells you which meetings in the coming week need advance preparation, and at 3 PM it sends a full briefing for the next day's meetings — including attendee background, a summary of recent email exchanges, and suggested prep items. Notifications go straight into Google Chat, no manual trigger required.
---
## Two Scheduled Modes
| Schedule | Time | Function |
|------|------|------|
| **Morning Scan** | Daily 09:00 | Scan meetings in the next 7 days → send action reminders |
| **Afternoon Briefing** | Daily 15:00 | Scan the next day's meetings → send a full briefing |
---
## Mode A — Morning Scan (triggered at 09:00)
### Step A1 — Scan Google Calendar
Read all calendar events within the next 7 days.
Use `mcp__google_workspace__get_events`:
- `user_google_email`: the user's email
- `time_min`: today 00:00
- `time_max`: today + 7 days 23:59
Filter criteria:
- Keep only events that have other attendees (not personal block time)
- Exclude all-day events
- Exclude cancelled events
### Step A2 — Send Action Reminders to Google Chat
For each qualifying meeting, list the actions that need to be taken.
Decision logic:
- Within 1 day from now → `🔴 明天!請確認是否有準備`
- 2–3 days out → `🟡 本週內,建議開始準備`
- 4–7 days out → `🟢 本週末前留意`
Output format (Google Chat self-message):
```
📅 本週會議 Action 清單|[日期]
🔴 明天
• [會議名稱] [時間] — 與會者:[人名]
→ 動作:確認議程 / 回顧相關 email
🟡 2–3 天內
• [會議名稱] [時間] — 與會者:[人名]
→ 動作:預先準備資料
🟢 4–7 天內
• [會議名稱] [時間]
→ 動作:備查
如無特定會議 → 發送「📅 本週無多人會議,保持待命。」
```
Use `mcp__google_workspace__google_chat_send_self_message` (requires Peter to wire up the Google Chat API on his end).
---
## Mode B — Afternoon Briefing (triggered at 15:00)
### Step B1 — Get the Next Day's Meetings
Use `mcp__google_workspace__get_events`:
- `time_min`: tomorrow 00:00
- `time_max`: tomorrow 23:59
Apply the same filtering as Mode A to obtain `TOMORROW_MEETINGS[]`.
If there are no meetings → send "✅ 明天沒有多人會議,無需準備。" and stop.
### Step B2 — Gather Gmail Background
For each attendee of each meeting, search recent email exchanges.
Use `mcp__google_workspace__search_gmail_messages`:
- query: `from:[attendee_email] OR to:[attendee_email]`
- time range: the past 30 days
Compile for each attendee:
- Subjects of the most recent 3–5 emails + a one-line summary each
- Whether there are any unanswered to-dos (detect keywords like 「請確認」, 「麻煩回覆」, "waiting for", etc.)
### Step B3 — Generate and Send the Briefing
Generate one Google Chat message per meeting:
```
📋 明日會議 Briefing|[會議名稱]
時間:[start_time]
與會者:[人名清單]
🎯 會議目的
[從 description 或 title 推斷;無法判斷則標「未知,建議確認」]
👥 與會者背景
• [名字]:[近期互動摘要 / 職稱(若已知)]
📧 近期相關 Email(最多 5 筆)
• [日期] [主旨] — [一句話摘要]
⚠️ 待確認事項
• [未回覆 / 懸而未決的項目]
✅ 建議進場前確認
1. [問題或資料]
2. [問題或資料]
```
Send one independent message per meeting.
---
## Inputs
| Parameter | Default | Description |
|------|--------|------|
| `SCAN_DAYS` | 7 | How many days ahead the morning scan covers |
| `EMAIL_LOOKBACK_DAYS` | 30 | How many days back to search Gmail |
---
## Outputs
| Schedule | Output |
|------|------|
| 09:00 | Google Chat self-message: a 7-day action checklist |
| 15:00 | Google Chat self-message: one briefing per meeting for the next day |
---
## Limitations
- **Google Chat MCP not yet wired up**: currently the google_workspace MCP supports Gmail / Drive / Calendar; Google Chat requires Peter to separately integrate the Chat API on his end
- Does not support LINE / Slack or other chat tools
- If an attendee has no Gmail exchange history, the background field shows "無歷史記錄"
- Scheduled triggering requires implementation via a cron job or the Claude Code schedule skill
## House style
Writing style is **not owned by this file**. The house voice lives in two Google Docs under
`[@] 寫作指南` (`12DBdFz3SK22ie9im_ThFMI7IBRXsTZsV`), read at runtime:
- 《[2.0] Zynkr 通用風格指南 House Voice》 `10bOIQwRm9Pxwgct4hlwCwK_B4Pipai1HqBPZKzyRHSE` —
the universal core, plus the addendum for this surface
- 《[3.2] 禁用詞清單 Forbidden Words》 `1N5sHLP4qzmmhpCGsi6KElxi1z0MFe4QZ0Q_35T10Uyg`
Read both before producing client- or reader-facing text, and scan the draft against 《[3.2]》
before handing it over. If Drive is unreachable, say so in the output rather than proceeding
unchecked. Never re-implement either list inside this file.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!