Accomplish gws-calendar
View, create, update, and delete Google Calendar events across all connected accounts. Find free time for meetings.
install
source · Clone the upstream repo
git clone https://github.com/accomplish-ai/accomplish
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/accomplish-ai/accomplish "$T" && mkdir -p ~/.claude/skills && cp -r "$T/apps/desktop/bundled-skills/gws-calendar" ~/.claude/skills/accomplish-ai-accomplish-gws-calendar && rm -rf "$T"
manifest:
apps/desktop/bundled-skills/gws-calendar/SKILL.mdsource content
Google Calendar Skill
Overview
This skill guides you in using the
google_calendar MCP tool to manage calendar events across all connected Google accounts.
Available Subcommands
| Subcommand | Description |
|---|---|
| List upcoming events (defaults to next 7 days). |
| Get details of a specific event. |
| Create a new calendar event. |
| Update an existing event. |
| Delete an event. |
| Accept, decline, or tentatively accept an event. |
| Find available meeting slots across all connected calendars. |
Account Routing
- Reads (list, get, free-time): Omit
to query all accounts simultaneously.account - Writes (create, update, delete, rsvp): You must specify
. Ask the user if unclear.account
google_calendar(command: "list") // all accounts google_calendar(command: "free-time --duration 60") // all accounts google_calendar(command: "create --title 'Team Sync'", account: "Work")
Key Flags
| Flag | Description |
|---|---|
| Start time in ISO 8601 format |
| End time in ISO 8601 format |
| Number of days to look ahead (list only, default: 7) |
| Event title |
| Event description |
| Event location |
| Comma-separated attendee emails |
| Required slot duration in minutes (free-time only) |
| RSVP response: accepted / declined / tentative |
Workflow: Scheduling a Meeting
- Find free time:
google_calendar(command: "free-time --duration 60 --days 5") - Confirm a slot with the user.
- Create the event:
google_calendar(command: "create --title 'Meeting' --start '2026-04-15T14:00:00' --end '2026-04-15T15:00:00' --attendees 'alice@example.com'", account: "Work")
Free-Time Algorithm
free-time fetches events from all connected accounts, merges overlapping busy intervals, and returns up to 10 available slots of at least the requested duration within the search window.
Error Handling
- If no accounts are connected, direct user to Settings → Integrations.
- If
is required but not specified, ask the user which account to use before proceeding.account