google-calendar
Use the bundled Google Workspace CLI (gws) to read, create, update, and delete Google Calendar events, list calendars, and show agendas.
Skill by marswaveai
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/marswaveai-google-calendar
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/google-calendar
What's inside
- Skill name
google-calendar- Description
- Use the bundled Google Workspace CLI (gws) to read, create, update, and delete Google Calendar events, list calendars, and show agendas. Use when the user asks to connect or operate Google Calendar, or to manage events on their Google Calendar, or says "谷歌日历"、"Google 日历"、"看看我 Google 日历上的安排".
- License
- MIT
- Metadata
- version: 1.0.1
- Instructions
- 170 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: "google-calendar" does not match folder "google-calendar-skill"
Files (7)
- GWS-APACHE-2.0.txt · LICENSES/
- SHA256SUMS
- SKILL.md
- SOURCES.md
- gws · scripts/bin/darwin-arm64/
- gws · scripts/bin/darwin-x64/
- gws.exe · scripts/bin/win32-x64/
SKILL.md (first lines)
# Google Calendar (gws)
This Skill targets exactly `gws 0.22.5`.
## Locate the executable
Always use the copy bundled with this Skill; never a `gws` that happens to be on `PATH`, which may be an unrelated version. Resolve it once per session:
1. Determine the platform directory — on macOS run `uname -m` (`arm64` → `darwin-arm64`, `x86_64` → `darwin-x64`); on Windows use `win32-x64`.
2. Resolve `scripts/bin/<platform>/gws` against this document's directory — on Windows the file is `gws.exe` — and use that absolute path for every command below.
This package ships macOS and Windows builds only; on any other platform report that Google Calendar is not available there rather than looking for another installation.
The examples below write the command by its bare name for readability; always run the resolved absolute path instead.
If that file is missing, report that Google Calendar is not ready yet — never describe it as an account problem or a broken connector.
## Talk like Cola
These rules govern what you SAY to the user. They never change which commands you RUN.
- **Product words are fine.** 配置、授权、连接、账号、日程、App 专用密码 — the user should always know which step they are in.
- **Implementation details never reach the user.** Tool names, CLI flags, config files, protocols, PATH, raw commands, raw error output. Narrate by goal ("正在看你的日历"), translate every failure into one clear next step, and confirm results in user terms.
## 使用场景
- 查日程:"看看我明天谷歌日历有哪些安排""这周有没有空的整段下午"
- 建与改:"帮我在周四下午约一个一小时的评审会,拉上 Alice""把周会挪到十点"
- 汇总:"把下周的日程整理成一份议程"
**When the request names no provider.** More than one calendar skill can be installed, and a bare 「查下我的日程」 does not say which account to read. Use this skill without asking only when it is the only calendar connected, or when the conversation already established that Google Calendar is the one in play. Otherwise ask which calendar they mean — never start a connection flow for an account the user did not ask about.
This installation is **calendar-only**. Authorization covers Google Calendar and nothing else: other Google services (`gmail`, `drive`, `sheets`, `docs`, `tasks`, …) will fail with permission errors. Do not attempt them, and do not suggest them as available.
## Authorization
OAuth is managed by Cola with calendar-only scopes (`calendar.events` plus read-only calendar list). Credentials are already configured for the `gws` command you invoke.
- **Never run `gws auth login`** or any other interactive auth flow, and never set `GOOGLE_APPLICATION_CREDENTIALS`. Authorization is done by the user in Cola's app center.
- If a command fails with an authorization or permission error, tell the user to open the Google Calendar app in Cola's Skill settings and complete or renew authorization there. Do not retry in a loop.
### Scope boundaries
The granted scopes allow exactly:
- `events` — full read/write on calendar events
- `calendarList` — read-only (`list`, `get`)
Out of scope (will fail; do not call): calendar `acl`, creating/deleting calendars (`calendars insert/delete/clear`), `settings`, `channels`/`watch` subscriptions, and every non-calendar service.
## Helper commands
### Show agenda (read-only)
```bash
gws calendar +agenda --timezone <IANA>
```
| Flag | Description |
|------|-------------|
| `--today` | Show today's events |
| `--tomorrow` | Show tomorrow's events |
| `--week` | Show this week's events |
| `--days <N>` | Number of days ahead to show |
| `--calendar <NAME_OR_ID>` | Filter to a specific calendar |
| `--timezone <IANA>` | Timezone override (e.g. `Asia/Shanghai`). **Always pass it** — see below |
```bash
gws calendar +agenda --today --timezone 'Asia/Shanghai'
gws calendar +agenda --week --format table --timezone 'Asia/Shanghai'
gws calendar +agenda --days 3 --calendar 'Work' --timezone 'Asia/Shanghai'
```
Read-only — never modifies events. Queries all calendars by default.
Always pass `--timezone`. The helper's own default reads the account timezone from `settings`, which this installation's scopes exclude, so it silently falls back to the machine's local timezone — on a machine in a different timezone from the calendar, `--today` and `--week` then query the wrong day boundaries. Ask the user for their timezone, or take it from an event's own timezone, and pass it explicitly.
### Create an event
```bash
gws calendar +insert --summary <TEXT> --start <TIME> --end <TIME>
```
| Flag | Required | Description |
|------|----------|-------------|
| `--summary` | ✓ | Event title |
| `--start` | ✓ | Start time (RFC 3339, e.g. `2026-06-17T09:00:00+08:00`) |
| `--end` | ✓ | End time (RFC 3339) |
| `--calendar` | — | Calendar ID (default: `primary`) |
| `--location` | — | Event location |
| `--description` | — | Event description/body |
| `--attendee` | — | Attendee email (repeatable). Does **not** notify them — see below |
| `--meet` | — | Add a Google Meet link |
```bash
gws calendar +insert --summary 'Standup' --start '2026-06-17T09:00:00+08:00' --end '2026-06-17T09:30:00+08:00'
gws calendar +insert --summary 'Review' --start ... --end ... --attendee alice@example.com --meet
```
> [!CAUTION]
> This is a **write** command — confirm with the user before executing.
**Attendees are not notified by `+insert`.** The helper does not set the Calendar API's `sendUpdates` parameter, whose default is to send nothing, so the guest is added to the event but receives no invitation. When the user's intent is to invite someone, create the event through the resource-level command with that parameter instead, then tell the user the invitation went out:
```bash
gws calendar events insert \
--params '{"calendarId":"primary","sendUpdates":"all"}' \
--json '{"summary":"Review","start":{"dateTime":"2026-06-17T09:00:00+08:00"},"end":{"dateTime":"2026-06-17T10:00:00+08:00"},"attendees":[{"email":"alice@example.com"}]}'
```
`+insert --meet` adds the Meet link automatically, but this resource-level form does not — request the conference explicitly, or the invitation goes out without a way to join:
```bash
gws calendar events insert \
--params '{"calendarId":"primary","sendUpdates":"all","conferenceDataVersion":1}' \
--json '{"summary":"Review","start":{"dateTime":"2026-06-17T09:00:00+08:00"},"end":{"dateTime":"2026-06-17T10:00:00+08:00"},"attendees":[{"email":"alice@example.com"}],"conferenceData":{"createRequest":{"requestId":"<unique-string>","conferenceSolutionKey":{"type":"hangoutsMeet"}}}}'
```
## API resources (within scope)From marswaveai/skills, MIT.
More from marswaveai/skills
- 0.636score
universal-email
marswaveai
Use the bundled Himalaya 2 CLI to connect IMAP/SMTP or Microsoft Graph mailboxes and list, search, read, compose, reply, forward, move, delete, flag, and…
SkillBFreshness: B★ 80Claude Code +9 - 0.636score
podcast
marswaveai
Create podcasts from topics, URLs, or text.
SkillBFreshness: B★ 80Claude Code +9 - 0.636score
tts
marswaveai
Text-to-speech and voice narration.
SkillBFreshness: B★ 80Claude Code +9 - 0.632score
outlook-calendar
marswaveai
View, create, update, and delete Outlook or Microsoft 365 calendar events with the cola-outlook-calendar CLI.
SkillBFreshness: B★ 80Claude Code +9 - 0.632score
icloud-calendar
marswaveai
List iCloud calendars and read, create, update, or delete iCloud Calendar events with the icloud-calendar CLI.
SkillBFreshness: B★ 80Claude Code +9 - 0.631score
listenhub
marswaveai
ListenHub CLI skills router.
SkillBFreshness: B★ 80Claude Code +9 - 0.631score
listenhub-cli
marswaveai
ListenHub CLI skills router.
SkillBFreshness: B★ 80Claude Code +9 - 0.631score
voice-clone
marswaveai
Clone a voice from reference audio into a reusable private ListenHub speaker, then use it for narration.
SkillBFreshness: B★ 80Claude Code +9 - 0.586score
music
marswaveai
Generate, remix, extend, edit, and analyze AI music (Mureka).
SkillCFreshness: C★ 80Claude Code +9 - 0.586score
image-gen
marswaveai
Generate AI images from text prompts.
SkillCFreshness: C★ 80Claude Code +9 - 0.586score
explainer
marswaveai
Create explainer videos with narration and AI-generated visuals.
SkillCFreshness: C★ 80Claude Code +9 - 0.586score
content-parser
marswaveai
Extract and parse content from URLs.
SkillCFreshness: C★ 80Claude Code +9
Signals
- Stars
- 80
- Forks
- 3
- Open issues
- 0
- Last commit (this folder)
- Aug 20, 2026 (2 months ago)
- Last release
- May 22, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0.1
- License
- MIT
- Repository
- github.com/marswaveai/skills
- Website
- skills.sh/marswaveai/skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from marswaveai
- 0.636score
universal-email
marswaveai
Use the bundled Himalaya 2 CLI to connect IMAP/SMTP or Microsoft Graph mailboxes and list, search, read, compose, reply, forward, move, delete, flag, and…
SkillBFreshness: B★ 80Claude Code +9 - 0.636score
tts
marswaveai
Text-to-speech and voice narration.
SkillBFreshness: B★ 80Claude Code +9 - 0.636score
podcast
marswaveai
Create podcasts from topics, URLs, or text.
SkillBFreshness: B★ 80Claude Code +9 - 0.632score
icloud-calendar
marswaveai
List iCloud calendars and read, create, update, or delete iCloud Calendar events with the icloud-calendar CLI.
SkillBFreshness: B★ 80Claude Code +9 - 0.632score
outlook-calendar
marswaveai
View, create, update, and delete Outlook or Microsoft 365 calendar events with the cola-outlook-calendar CLI.
SkillBFreshness: B★ 80Claude Code +9 - 0.631score
listenhub
marswaveai
ListenHub CLI skills router.
SkillBFreshness: B★ 80Claude Code +9
Cite this page
google-calendar skill. Agent Mart. https://agentmart.dev/skills/marswaveai-google-calendar (last updated 2026-10-24)