Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问clear审计通过

google-calendarGoogle Calendar 日程管理

Agent Skill

google-calendar 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

374

周安装

15

GitHub Stars

2

下载量

121
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:google-calendar(Google Calendar 日程管理)
来源仓库:https://github.com/abdullahbeam/nexus-design-abdullah
仓库路径:skills/google-calendar
安装命令:
npx skills add https://github.com/abdullahbeam/nexus-design-abdullah --skill google-calendar
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/abdullahbeam/nexus-design-abdullah --skill google-calendar

简介

google-calendar 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中快速定位候选结果。

  • 适用于关键词搜索、任务场景匹配或来源线索梳理等研究检索需求。
  • 通过 npx skills add 命令从指定 GitHub 仓库安装并使用。
  • 安装前需确认权限范围、维护状态,以及是否会触发联网或文件操作。
  • 适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。

SKILL.md

Purpose

Automate Google Calendar operations including listing events, checking availability, creating meetings, and managing attendees. Particularly useful for sales teams scheduling calls, finding available slots to propose to clients, and managing recurring meetings.

Google Calendar

Read, create, and manage Google Calendar events via OAuth authentication.


CRITICAL SAFETY RULES

These rules are MANDATORY and must NEVER be bypassed:

1. NEVER Create Events Without Explicit Approval

  • ALWAYS show the user the complete event details before creating
  • ALWAYS ask for explicit confirmation: "Create this event? (yes/no)"
  • NEVER auto-create events, even if user says "schedule a meeting"
  • NEVER create multiple events in a loop without per-event confirmation

2. Calendar Invites Alert Attendees

  • When an event has attendees, creating/updating/deleting it sends notifications
  • ALWAYS warn the user: "Attendees will receive a calendar invite!"
  • Consider the impact before modifying events with external participants

3. Recurring Events Need Extra Care

  • Modifying a recurring event can affect all instances
  • WARN user when working with recurring events
  • Ask whether to modify single instance or all occurrences

4. Confirm Deletions

  • ALWAYS show event details before deleting
  • If event has attendees: "Attendees will be notified of cancellation"
  • REQUIRE explicit confirmation before delete

5. Safe Operations (No Confirmation Needed)

These do NOT require confirmation:

  • List events
  • Get event details
  • List calendars
  • Search events
  • Check availability (freebusy)
  • Find available slots

Pre-Flight Check (ALWAYS RUN FIRST)

python3 00-system/skills/google/google-master/scripts/google_auth.py --check --service calendar

Exit codes:

  • 0: Ready to use - proceed with user request
  • 1: Need to login - run python3 00-system/skills/google/google-master/scripts/google_auth.py --login
  • 2: Missing credentials or dependencies - see ../google-master/references/setup-guide.md

Quick Reference

List Upcoming Events

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py list --max 10

List Today's Events

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py list --from "today" --to "tomorrow"

List This Week's Events

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py list --from "2025-12-16" --to "2025-12-20"

Get Event Details

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py get <event_id>

List Calendars

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py calendars

Search Events

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py search "sales call"

Check Availability

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py freebusy --from "2025-12-16T09:00" --to "2025-12-16T17:00"

Find Available Slots (Sales Priority)

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py find-slots --duration 30 --from "2025-12-16" --to "2025-12-20" --hours "9-17"

Create Event

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py create \
  --summary "Sales Call with Acme Corp" \
  --start "2025-12-16T14:00" \
  --end "2025-12-16T14:30" \
  --attendees "john@acme.com" \
  --reminder-popup 15

Quick Add (Natural Language)

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py quick-add "Meeting with John tomorrow at 3pm"

Update Event

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py update <event_id> \
  --start "2025-12-17T15:00" \
  --end "2025-12-17T15:30"

Delete Event

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py delete <event_id>

Add Attendees

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py add-attendees <event_id> --attendees "user@example.com"

Remove Attendees

python3 00-system/skills/google/google-calendar/scripts/calendar_operations.py remove-attendees <event_id> --attendees "user@example.com"

Common Workflows (Sales-Focused)

Check Today's Schedule

User: "What's on my calendar today?"

  1. List events for today
  2. Summarize meetings with times and attendees
  3. Highlight any gaps for potential meetings
from calendar_operations import list_events
from datetime import datetime, timedelta

today = datetime.now().strftime("%Y-%m-%d")
tomorrow = (datetime.now() + timedelta(days=1)).strftime("%Y-%m-%d")

events = list_events(time_min=today, time_max=tomorrow)

for event in events:
    print(f"{event['summary']} - {event['start']}")

Find Available Slots for Client

User: "Find 30-minute slots this week for a client call"

from calendar_operations import find_slots

slots = find_slots(
    duration_minutes=30,
    time_min="2025-12-16",
    time_max="2025-12-20",
    working_hours=(9, 17)
)

print("Available slots:")
for slot in slots[:5]:
    print(f"  {slot['start']} - {slot['end']}")

Schedule a Sales Call

User: "Schedule a call with john@acme.com tomorrow at 2pm"

from calendar_operations import create_event

event = create_event(
    summary="Sales Call - Acme Corp",
    start="2025-12-17T14:00",
    end="2025-12-17T14:30",
    attendees=["john@acme.com"],
    reminders={'popup': 15},
    description="Discovery call to discuss needs"
)

print(f"Created: {event['htmlLink']}")

Reschedule a Meeting

User: "Move the Acme call to Thursday at 3pm"

from calendar_operations import update_event

result = update_event(
    event_id="abc123",
    start="2025-12-19T15:00",
    end="2025-12-19T15:30"
)
# Attendees are automatically notified

Set Up Recurring Check-ins

User: "Set up weekly calls with the client every Tuesday at 10am"

from calendar_operations import create_event

event = create_event(
    summary="Weekly Check-in - Acme Corp",
    start="2025-12-17T10:00",
    end="2025-12-17T10:30",
    attendees=["john@acme.com"],
    recurrence=["RRULE:FREQ=WEEKLY;BYDAY=TU;COUNT=12"],
    reminders={'popup': 15}
)

Check If Free for a Meeting

User: "Am I free Thursday at 2pm?"

from calendar_operations import get_freebusy

result = get_freebusy(
    time_min="2025-12-19T14:00",
    time_max="2025-12-19T15:00"
)

if result['primary']['is_free']:
    print("Yes, that time is available!")
else:
    print("You have a conflict during that time")

Available Operations

OperationFunctionDescription
Listlist_events()List upcoming events with filters
Getget_event()Get full event details
Calendarslist_calendars()List all accessible calendars
Searchsearch_events()Search events by keyword
FreeBusyget_freebusy()Check availability for time range
Find Slotsfind_slots()Find available meeting slots
Createcreate_event()Create new event
Quick Addquick_add()Create from natural language
Updateupdate_event()Modify existing event
Deletedelete_event()Delete event
Add Attendeesadd_attendees()Add people to event
Remove Attendeesremove_attendees()Remove people from event

Recurrence Rules

Use RRULE format for recurring events:

PatternRRULE
DailyRRULE:FREQ=DAILY
WeeklyRRULE:FREQ=WEEKLY
Every TuesdayRRULE:FREQ=WEEKLY;BYDAY=TU
Bi-weeklyRRULE:FREQ=WEEKLY;INTERVAL=2
MonthlyRRULE:FREQ=MONTHLY
10 occurrencesRRULE:FREQ=WEEKLY;COUNT=10
Until dateRRULE:FREQ=WEEKLY;UNTIL=20251231T000000Z

Error Handling

See ../google-master/references/error-handling.md for common errors and solutions.

ErrorCauseSolution
401 UnauthorizedToken expiredRun google_auth.py --login
403 ForbiddenNo access to calendarCheck calendar sharing settings
404 Not FoundWrong event/calendar IDVerify the ID is correct
"Access blocked"User not in test usersAdd to OAuth consent screen test users
Rate limit exceededToo many requestsWait and retry

Python Import Usage

import sys
sys.path.insert(0, "03-skills/google-calendar/scripts")

from calendar_operations import (
    list_events,
    get_event,
    list_calendars,
    search_events,
    get_freebusy,
    find_slots,
    create_event,
    quick_add,
    update_event,
    delete_event,
    add_attendees,
    remove_attendees
)

# List upcoming events
events = list_events(max_results=5)

# Find available 30-min slots
slots = find_slots(
    duration_minutes=30,
    time_min="2025-12-16",
    time_max="2025-12-20"
)

# Create event with attendee
event = create_event(
    summary="Sales Call",
    start="2025-12-17T14:00",
    end="2025-12-17T14:30",
    attendees=["client@company.com"],
    reminders={'popup': 15}
)

# Check availability
freebusy = get_freebusy(
    time_min="2025-12-17T09:00",
    time_max="2025-12-17T17:00"
)

Calendar Selection

By default, all operations use the primary calendar. To use a different calendar:

# List events from a specific calendar
python calendar_operations.py list --calendar "work@group.calendar.google.com"

# Create event on specific calendar
python calendar_operations.py create --calendar "sales@company.com" --summary "Team Meeting" ...

To find available calendar IDs:

python calendar_operations.py calendars

Setup

First-time setup: ../google-master/references/setup-guide.md

Quick start:

  1. pip install google-auth google-auth-oauthlib google-api-python-client
  2. Create OAuth credentials in Google Cloud Console (enable Google Calendar API, choose "Desktop app")
  3. Add to .env file at Nexus root: GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=your-client-secret GOOGLE_PROJECT_ID=your-project-id
  4. Run python3 00-system/skills/google/google-master/scripts/google_auth.py --login

Security Notes

Permission Scope

  • Read permissions - Can view all calendars and events
  • Write permissions - Can create, modify, delete events
  • Tokens stored locally - In 01-memory/integrations/google-token.json

Data Privacy

  • Event data is processed locally, not stored
  • Tokens grant access only to the authenticated user's calendars
  • Sharing the skill does NOT give others access to your calendar
  • Each team member authenticates with their own Google account

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

31.18%
按下载量换算38

Antigravity

22.45%
按下载量换算27

Codex

16.98%
按下载量换算21

Gemini CLI

12.33%
按下载量换算15

windsurf

8.37%
按下载量换算10

OpenCode

3.83%
按下载量换算5

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills