
Gws Calendar
Teach your agent to create events, manage ACLs, and pull agendas across Google calendars using `gws calendar` commands.
Overview
gws-calendar is an agent skill for the Build phase that documents Google Calendar v3 `gws calendar` resources, ACL management, and event helper handoffs.
Install
npx skills add https://github.com/googleworkspace/cli --skill gws-calendarWhat is this skill?
- Full `gws calendar <resource> <method>` surface for Calendar v3 ACL and calendar list operations
- Helper skills `gws-calendar-insert` for new events and `gws-calendar-agenda` for upcoming cross-calendar view
- ACL delete/get/insert/list/patch/update/watch coverage for sharing calendars with agents or services
- Requires `gws-shared` prerequisite for auth and global CLI flags
- OpenClaw metadata requires `gws` binary and documents `gws calendar --help`
- Documents two helper commands: `+insert` and `+agenda`
- ACL resource exposes seven methods including watch
- OpenClaw metadata version 0.22.5
Adoption & trust: 30.1k installs on skills.sh; 26.9k GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want calendar automation in your agent workflow but Calendar ACLs, lists, and events are easy to mis-invoke without a structured CLI reference.
Who is it for?
Builders integrating Google Calendar into agents for standups, launch timelines, or customer meeting prep via `gws`.
Skip if: People who only use Google Calendar in the browser with no `gws` CLI or OAuth setup.
When should I use this skill?
The agent must read or mutate Google Calendar calendars, ACLs, or events through the `gws calendar` CLI.
What do I get? / Deliverables
The agent runs vetted `gws calendar` methods and chains to insert or agenda helpers when creating events or showing upcoming items.
- Validated `gws calendar` commands for ACL or calendar-list changes
- Handoff to insert/agenda helpers when creating events or summarizing upcoming schedule
Recommended Skills
Journey fit
Calendar API wiring is integration work you add while building scheduling, reminders, or customer-facing booking flows—not standalone SEO or monitoring. The skill enumerates Calendar v3 resources (acl, calendarList, events, etc.) and helper commands, which is classic third-party API integration during Build.
How it compares
Skill-backed CLI reference for Calendar v3—not a Calendly-style booking MCP or a natural-language scheduling assistant by itself.
Common Questions / FAQ
Who is gws-calendar for?
Solo developers and small teams who already use the `gws` CLI and want agent-guided Calendar API operations with shared auth patterns.
When should I use gws-calendar?
During Build integrations for scheduling features; also in Grow when automating lifecycle touchpoints like review calls, and in Operate when syncing operational calendars—always via the same CLI skill.
Is gws-calendar safe to install?
It enables real calendar and ACL mutations through your Google account; check the Security Audits panel on this page and limit scopes before unattended agent use.
Workflow Chain
Requires first: gws shared
Then invoke: gws calendar insert, gws calendar agenda
SKILL.md
READMESKILL.md - Gws Calendar
# calendar (v3) > **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it. ```bash gws calendar <resource> <method> [flags] ``` ## Helper Commands | Command | Description | |---------|-------------| | [`+insert`](../gws-calendar-insert/SKILL.md) | create a new event | | [`+agenda`](../gws-calendar-agenda/SKILL.md) | Show upcoming events across all calendars | ## API Resources ### acl - `delete` — Deletes an access control rule. - `get` — Returns an access control rule. - `insert` — Creates an access control rule. - `list` — Returns the rules in the access control list for the calendar. - `patch` — Updates an access control rule. This method supports patch semantics. - `update` — Updates an access control rule. - `watch` — Watch for changes to ACL resources. ### calendarList - `delete` — Removes a calendar from the user's calendar list. - `get` — Returns a calendar from the user's calendar list. - `insert` — Inserts an existing calendar into the user's calendar list. - `list` — Returns the calendars on the user's calendar list. - `patch` — Updates an existing calendar on the user's calendar list. This method supports patch semantics. - `update` — Updates an existing calendar on the user's calendar list. - `watch` — Watch for changes to CalendarList resources. ### calendars - `clear` — Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account. - `delete` — Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars. - `get` — Returns metadata for a calendar. - `insert` — Creates a secondary calendar. The authenticated user for the request is made the data owner of the new calendar. Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior. - `patch` — Updates metadata for a calendar. This method supports patch semantics. - `update` — Updates metadata for a calendar. ### channels - `stop` — Stop watching resources through this channel ### colors - `get` — Returns the color definitions for calendars and events. ### events - `delete` — Deletes an event. - `get` — Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter. - `import` — Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported. Deprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped. - `insert` — Creates an event. - `instances` — Returns instances of the specified recurring event. - `list` — Returns events on the specified calendar. - `move` — Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved. - `patch` — Updates an event. This method supports patch semantics. - `quickAdd` — Creates an event based on a simple text string. - `update` — Updates an event. - `watch` — Watch for changes to Events resources. ### freebusy - `query` — Returns free/busy information for a set of calendars. ### settings - `get` — Returns a single user setting. - `list