google-workspace

google-workspace is a skill for Claude Code, Codex from BreadchainCoop/labor.fun. It costs 90 tokens per session (1,448 once invoked), scanned A, original, MIT.

A connection to Google Workspace, the set of work tools that includes Gmail, Calendar, Drive, Docs, Sheets, and Tasks. It lets the assistant work with those services through the organization's configured account.

In plain words
What is it for?
It can create, read, and update calendar events; send and read email; and work with documents, files, spreadsheets, and tasks.
Why use it?
It gives the assistant one documented way to handle workplace information and actions while checking whether Google Workspace is actually configured.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit It can create, read, and update calendar events; send and read email; and work with documents, files, spreadsheets, and tasks.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/breadchaincoop/labor.fun/google-workspace
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add BreadchainCoop/labor.fun --skill google-workspace
Clone the repo
git clone --depth 1 https://github.com/BreadchainCoop/labor.fun

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for google-workspace

README.md
[![agentmods](https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/google-workspace/github.svg)](https://agentmods.dev/skills/breadchaincoop/labor.fun/google-workspace)
Your own site
<a href="https://agentmods.dev/skills/breadchaincoop/labor.fun/google-workspace"><img src="https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/google-workspace/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for google-workspace

Your own site · 80×15
<a href="https://agentmods.dev/skills/breadchaincoop/labor.fun/google-workspace"><img src="https://agentmods.dev/badge/skills/breadchaincoop/labor.fun/google-workspace.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 90 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,448 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00090 $0.01448
Opus 5.5 $0.00036 $0.00579
Sonnet 5.5 $0.00018 $0.00290
Haiku 4.5 $0.00009 $0.00145

Measured 1mo ago against content hash 08b8b8a76774, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

google-workspace scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

container/skills/google-workspace/SKILL.md · 108 lines

How it starts

The opening of the file, as written. The whole thing — 108 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Google Workspace (gws MCP server)

The organization's Google Workspace is available through the bundled gws MCP server — NOT a raw CLI. It runs in compact tool-mode: one tool per service (mcp__gws__calendar, mcp__gws__gmail, mcp__gws__drive, mcp__gws__docs, mcp__gws__sheets, mcp__gws__tasks) plus a mcp__gws__gws_discover meta-tool for drilling into a service's exact methods and fields. It acts as the org's Google Workspace service account.

Availability check

Run printenv GOOGLE_WORKSPACE_CLI_CREDENTIALS_FILE (Bash). If it prints a path, Google Workspace is configured and the mcp__gws__* tools are loaded — just call them. If it's empty, tell the user Google Workspace isn't set up on this deployment (don't pretend to create things).

Tool shape

  • Each service tool takes the target method (e.g. events.insert, users.messages.send) plus that method's parameters: path/query params (calendarId, sendUpdates, eventId, …) and the request body (the resource you're creating/patching) as structured JSON.
  • Not sure of a method's name or fields? Call mcp__gws__gws_discover first (e.g. discover calendar → events.insert) instead of guessing.
  • Responses are structured JSON — read ids/links (id, htmlLink, documentId, …) directly from the response.

HARD RULES for calendar

  • Dedicated calendar only. Read it with printenv GOOGLE_WORKSPACE_CALENDAR_ID and pass it as calendarId. Never use primary — that's the service account's personal calendar. If GOOGLE_WORKSPACE_CALENDAR_ID is empty, stop and tell the user it isn't configured.
  • Always invite by email. Whenever the event has attendees, set sendUpdates: "all" in the request params so Google actually emails them. Omitting it silently adds people with no notification — never do that.
  • Share the link = the event's htmlLink. Return the htmlLink from the insert response verbatim — that is the real, live event (RSVP, updates, attendee list). Do not rebuild or re-encode it.
    • It resolves for: invited attendees, anyone in the org's Google Workspace, and — only if the events calendar is public ("see all event details") — for everyone. If a recipient outside the domain gets "event not found", the calendar is not public; that's a calendar setting, not a link you can work around.
  • Never pass off a render?action=TEMPLATE / r/eventedit link as "the event." Those only prefill a NEW copy in the recipient's own calendar — no RSVP, no live updates, not the shared event. Only send one if the person explicitly asks for an "add a copy to my calendar" link, and label it exactly that — never as the event/share link.
  • For a guaranteed working invite (no public calendar needed): add the person as an attendee by email with sendUpdates:"all" — Google emails them the invite with the real, working link and RSVP. Collect emails in the KB people files to invite people directly.
  • Prefer adding a Google Meet link for virtual/hybrid events.

Read the full file on GitHub · 108 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 1mo ago First seen · 108 lines · 90 tokens per session scan A 08b8b8a76774

Subscribe to this mod's changes

google-workspace is a skill published in the GitHub repository BreadchainCoop/labor.fun (2 stars, last pushed yesterday), licensed MIT. It adds 90 tokens to every session and 1,448 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.