一键导入
api-google-calendar
Google Calendar API for events and schedules. Uses OAuth2 refresh token for headless/CI. Activate for calendar operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Google Calendar API for events and schedules. Uses OAuth2 refresh token for headless/CI. Activate for calendar operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
AI Agent Community API interaction. Post errors, questions, solutions and interact with other agents.
Confluence REST API for pages, spaces, and content. Uses API token for headless/CI. Activate for Confluence operations.
GitHub REST API for issues, PRs, repos. Uses PAT for headless/CI. Activate for GitHub operations.
Jira REST API for issues, projects, sprints. Uses API token for headless/CI. Activate for Jira operations.
Notion REST API for pages, databases, blocks. Uses internal integration token for headless/CI. Activate for Notion operations.
Slack Web API for messaging, channels, and notifications. Uses Bot token for headless/CI. Activate for Slack operations.
| name | api-google-calendar |
| description | Google Calendar API for events and schedules. Uses OAuth2 refresh token for headless/CI. Activate for calendar operations. |
| allowed-tools | Bash, Read, Grep |
| user-invocable | true |
| quality_grade | C |
| quality_checked | "2026-03-19T00:00:00.000Z" |
/weekly commandCredentials File: .credentials/google.json
{
"client_id": "...",
"client_secret": "...",
"refresh_token": "..."
}
Create credentials at: https://console.cloud.google.com/apis/credentials
Setup Steps:
.credentials/google.jsonLoad credentials before API calls:
GOOGLE_CLIENT_ID=$(jq -r '.client_id' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
GOOGLE_CLIENT_SECRET=$(jq -r '.client_secret' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
GOOGLE_REFRESH_TOKEN=$(jq -r '.refresh_token' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
https://www.googleapis.com/calendar/v3
Refresh tokens to get short-lived access tokens:
ACCESS_TOKEN=$(curl -s -X POST "https://oauth2.googleapis.com/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=$GOOGLE_CLIENT_ID" \
-d "client_secret=$GOOGLE_CLIENT_SECRET" \
-d "refresh_token=$GOOGLE_REFRESH_TOKEN" \
-d "grant_type=refresh_token" | jq -r '.access_token')
TODAY=$(date +%Y-%m-%dT00:00:00Z)
TOMORROW=$(date -v+1d +%Y-%m-%dT00:00:00Z)
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/${GOOGLE_CALENDAR_ID:-primary}/events?timeMin=$TODAY&timeMax=$TOMORROW&singleEvents=true&orderBy=startTime"
TODAY=$(date +%Y-%m-%dT00:00:00Z)
WEEK_END=$(date -v+7d +%Y-%m-%dT23:59:59Z)
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/${GOOGLE_CALENDAR_ID:-primary}/events?timeMin=$TODAY&timeMax=$WEEK_END&singleEvents=true&orderBy=startTime"
curl -s -X POST \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"summary": "Meeting Title",
"description": "Meeting description",
"start": {
"dateTime": "2026-01-20T14:00:00+09:00",
"timeZone": "Asia/Seoul"
},
"end": {
"dateTime": "2026-01-20T15:00:00+09:00",
"timeZone": "Asia/Seoul"
},
"attendees": [
{"email": "attendee@example.com"}
]
}' \
"https://www.googleapis.com/calendar/v3/calendars/${GOOGLE_CALENDAR_ID:-primary}/events"
curl -s -X PATCH \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"summary": "Updated Title"
}' \
"https://www.googleapis.com/calendar/v3/calendars/${GOOGLE_CALENDAR_ID:-primary}/events/{eventId}"
curl -s -X DELETE \
-H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/${GOOGLE_CALENDAR_ID:-primary}/events/{eventId}"
The /weekly command can query calendar events to auto-populate the weekly update:
# Load credentials
GOOGLE_CLIENT_ID=$(jq -r '.client_id' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
GOOGLE_CLIENT_SECRET=$(jq -r '.client_secret' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
GOOGLE_REFRESH_TOKEN=$(jq -r '.refresh_token' /Users/dhlee/Git/personal/neuron/.credentials/google.json)
# Get this week's meetings for /weekly
ACCESS_TOKEN=$(curl -s -X POST "https://oauth2.googleapis.com/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "client_id=$GOOGLE_CLIENT_ID" \
-d "client_secret=$GOOGLE_CLIENT_SECRET" \
-d "refresh_token=$GOOGLE_REFRESH_TOKEN" \
-d "grant_type=refresh_token" | jq -r '.access_token')
curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=$(date -v-7d +%Y-%m-%dT00:00:00Z)&timeMax=$(date +%Y-%m-%dT23:59:59Z)&singleEvents=true&orderBy=startTime" \
| jq '.items[] | {summary, start: .start.dateTime, attendees: [.attendees[]?.email]}'
| Status | Meaning | Action |
|---|---|---|
| 401 | Invalid/expired token | Refresh access token |
| 403 | Insufficient permissions | Check OAuth2 scopes |
| 404 | Calendar/event not found | Verify calendar ID |
| 429 | Rate limit exceeded | Wait and retry |
https://www.googleapis.com/auth/calendar.readonly - Read eventshttps://www.googleapis.com/auth/calendar.events - Create/update/delete events