用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill managing-calendar命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | managing-calendar |
| description | | Use when this capability is needed. |
FastMCP server for Google Calendar management.
# Start MCP server
python src/mcp_servers/google_calendar_server.py
list_events(calendar_id, max_results, time_min, time_max) - List upcoming eventscreate_event(summary, start_time, end_time, description, location, attendees) - Create new eventupdate_event(event_id, summary, description, location) - Modify existing eventdelete_event(event_id) - Cancel eventAll times are stored in UTC by default. Client must convert:
# Server always uses UTC
'start': {
'dateTime': start_time,
'timeZone': 'UTC', # Always UTC internally
}
# Convert for user display
from datetime import timezone
local_time = utc_time.astimezone(timezone.utc)
Time parameters MUST be ISO 8601 format:
# ✓ CORRECT
create_event(start_time="2026-01-30T10:00:00")
# ✗ WRONG - Natural language
create_event(start_time="tomorrow 10am")
# ✗ WRONG - Missing T separator
create_event(start_time="2026-01-30 10:00:00")
'primary' - User's main calendar (default)Omitting attendees creates a private event:
# Private event (no notifications)
create_event(summary="Focus time", start_time=..., end_time=...)
# Meeting with notifications
create_event(
summary="Team sync",
start_time=...,
end_time=...,
attendees=["alice@example.com", "bob@example.com"]
)
Calendar uses different OAuth token than Gmail:
token_calendar.json - Calendar accesstoken.json / token_email.json - Gmail accessYou must first retrieve the event ID before updating:
# ✗ FAILS - No ID
update_event(summary="New title")
# ✓ WORKS - Get ID from list_events first
events = list_events()
event_id = events[0]['id']
update_event(event_id=event_id, summary="New title")
Required in config/:
credentials.json - Google OAuth credentialstoken_calendar.json - Calendar OAuth tokenOAuth Scopes:
SCOPES = ['https://www.googleapis.com/auth/calendar']
config/credentials.jsonpython src/mcp_servers/google_calendar_server.py
This opens a browser for OAuth consent. Token saves to token_calendar.json.
Google Calendar API limits:
Not typically a concern for personal use.
All operations logged via utils/audit_logger.py:
AuditDomain.PERSONALcalendar.list_events, calendar.create_event, etc.Run: python scripts/verify.py
watching-gmail - Detect meeting requests in emailsdigital-fte-orchestrator - Process calendar-related tasksConverted and distributed by TomeVault — claim your Tome and manage your conversions.