google-calendar
技能介绍
通过 Google Calendar API 与 Google Calendar 交互 —— 列出即将举行的活动、创建新活动、更新或删除活动。当您需要从 Open… 以编程方式访问您的日历时,请使用此技能。
使用场景
文档(原文)
来源:SKILL.mdname: google-calendar
description: Interact with Google Calendar via the Google Calendar API – list upcoming events, create new events, update or delete them. Use this skill when you need programmatic access to your calendar from OpenClaw.
Google Calendar Skill
Overview
This skill provides a thin wrapper around the Google Calendar REST API. It lets you:
- list upcoming events (optionally filtered by time range or query)
- add a new event with title, start/end time, description, location, and attendees
- update an existing event by its ID
- delete an event by its ID
The skill is implemented in Python (scripts/google_calendar.py). It expects the following environment variables to be set (you can store them securely with openclaw secret set):
GOOGLE_CLIENT_ID=…
GOOGLE_CLIENT_SECRET=…
GOOGLE_REFRESH_TOKEN=… # obtained after OAuth consent
GOOGLE_CALENDAR_ID=primary # or the ID of a specific calendar
The first time you run the skill you may need to perform an OAuth flow to obtain a refresh token – see the Setup section below.
Commands
google-calendar list [--from <ISO> --to <ISO> --max <N>]
google-calendar add --title <title> [--start <ISO> --end <ISO>]
[--desc <description> --location <loc> --attendees <email1,email2>]
google-calendar update --event-id <id> [--title <title> ... other fields]
google-calendar delete --event-id <id>
All commands return a JSON payload printed to stdout. Errors are printed to stderr and cause a non‑zero exit code.
Setup
- Create a Google Cloud project and enable the Google Calendar API.
- Create OAuth credentials (type Desktop app). Note the
client_idandclient_secret. - Run the helper script to obtain a refresh token:
It will open a browser (or print a URL you can open elsewhere) and ask you to grant access. After you approve, copy theGOOGLE_CLIENT_ID=… GOOGLE_CLIENT_SECRET=… python3 -m google_calendar.authrefresh_tokenit prints. - Store the credentials securely:
openclaw secret set GOOGLE_CLIENT_ID <value> openclaw secret set GOOGLE_CLIENT_SECRET <value> openclaw secret set GOOGLE_REFRESH_TOKEN <value> openclaw secret set GOOGLE_CALENDAR_ID primary # optional - Install the required Python packages (once):
pip install --user google-auth google-auth-oauthlib google-api-python-client
How it works (brief)
The script loads the credentials from the environment, refreshes the access token using the refresh token, builds a service = build('calendar', 'v3', credentials=creds), and then calls the appropriate API method.
References
- Google Calendar API reference: https://developers.google.com/calendar/api/v3/reference
- OAuth 2.0 for installed apps: https://developers.google.com/identity/protocols/oauth2/native-app
Note: This skill does not require a GUI; it works entirely via HTTP calls, so it is suitable for headless servers.
安全审计
摘要
通过 Google Calendar API 与 Google Calendar 交互 —— 列出即将举行的活动、创建新活动、更新或删除活动。当您需要从 OpenClaw 以编程方式访问您的日历时,请使用此技能。
ToxicSkills 分析
Toxic 标签
当前静态检测未发现 Toxic 信号。
关键风险 0 项
确定性发现(证据)
| 规则 | 严重性 | 文件 | 片段 |
|---|---|---|---|
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/google_calendar.py 行 2 | import os, sys, json, urllib.request, urllib.parse, argparse |
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/google_calendar.py 行 23 | req = urllib.request.Request(url, data=data, method=method) |
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/google_calendar.py 行 29 | with urllib.request.urlopen(req) as resp: |
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/refresh_token.py 行 2 | import os, sys, json, urllib.request, urllib.parse |
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/refresh_token.py 行 17 | req = urllib.request.Request('https://oauth2.googleapis.com/token', data=data, method='POST') |
| NET_HTTP_REQUEST | 中 | skills/AdrianMiller99/google-calendar/scripts/refresh_token.py 行 20 | with urllib.request.urlopen(req) as resp: |
评分标准
每个技能从 5 个维度评分,加权总分决定星级。
星级说明
为何是这个评分?
以下维度评分低于 60 分,拉低了整体评级:
- 隐私风险: 28/100