Read and propose Google Calendar changes over OAuth for meeting-assistant scheduling. Use for "schedule a follow-up", "reschedule", "move the meeting", "push this to Friday", "what's on my calendar", "calendar oauth", or when live-evidence proposes a calendar action. Writes are PROPOSE-ONLY and require an explicit --confirm; nothing mutates a real calendar without it.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add grahama1970/agent-skills --skill ops-google-calendar --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Ops Google Calendar?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/grahama1970-ops-google-calendar)More formats (shields.io, HTML) on the badges page.
---
name: ops-google-calendar
description: >
Read and propose Google Calendar changes over OAuth for meeting-assistant
scheduling. Use for "schedule a follow-up", "reschedule", "move the meeting",
"push this to Friday", "what's on my calendar", "calendar oauth", or when
live-evidence proposes a calendar action. Writes are PROPOSE-ONLY and require
an explicit --confirm; nothing mutates a real calendar without it.
triggers:
- google calendar
- calendar oauth
- reschedule meeting
- move the meeting
- push meeting to friday
- whats on my calendar
- schedule a follow-up
- ops-google-calendar
metadata:
short-description: Google Calendar read + propose-only scheduling over OAuth
provides:
- calendar-read
- calendar-propose
- google-calendar-oauth
composes:
- task-monitor
- agentic-evals
complies:
- best-practices-skills
- best-practices-python
- best-practices-security
taxonomy:
- scheduling
- integration
- loyalty
- resilience
runtime_self_improvement: basic
disciplines:
- observability-operations
- developer-tooling
---
# Ops Google Calendar
Read the calendar, and **propose** (never silently apply) scheduling changes an
agent hears in a meeting. This is the destination for the live-evidence
`schedule` action: "can we push this to Friday?" becomes a proposal a human
approves, not an automatic calendar write.
The Google Calendar API and OAuth are **free** (quota-limited, no per-call
billing). This is unrelated to `ops-google`, which is a Gemini-API budget
manager.
## One-time auth setup
OAuth needs a Google Cloud OAuth client (Desktop type). You create it once:
1. In Google Cloud Console, enable the Calendar API and create an OAuth 2.0
**Desktop** client. Download the JSON.
2. Save it (path is configurable):
```bash
mkdir -p ~/.config/ops-google-calendar
cp ~/Downloads/client_secret_*.json ~/.config/ops-google-calendar/client_secret.json
```
3. Run the consent flow in your own terminal (it opens a browser). Because this
is interactive, run it yourself with the `!` prefix:
```bash
! ./run.sh auth
```
The refresh token is stored at `~/.config/ops-google-calendar/token.json`
(mode 0600). The scope is `calendar.events` — event read/write only, no
account or contact access.
## Commands
```bash
./run.sh status --json # authed? reachable? (read-only)
./run.sh events --days 7 --json # upcoming events (read-only)
./run.sh propose-reschedule --event-id <id> --to '2026-08-28T15:00:00-04:00'
./run.sh propose-create --summary 'Sparta sync' \
--start '2026-08-28T15:00:00-04:00' --end '2026-08-28T15:30:00-04:00'
./run.sh sanity # non-mocked local checks
```
`status` and `events` are read-only. `propose-*` emit a
`ops_google_calendar.proposal.v1` receipt and **do not touch the calendar**
unless you add `--confirm`. Without `--confirm` the proposal is printed for a
human to approve; with `--confirm` and a valid token the change is applied and
the applied event is read back into the receipt.
## Boundaries
- **Propose-only by default.** A calendar write is outward-facing and affects
other people; it fails closed without `--confirm` and without a valid token.
Nothing here auto-executes.
- **No secrets in output.** Tokens live in a 0600 file and are never printed;
receipts carry event ids and times, not credentials.
- **Ambiguity is surfaced, not guessed.** A proposal states exactly which event
and time it would set; underspecified requests ("push to Friday") must be
resolved to a concrete datetime by the caller before `--confirm`.
- **Not `ops-google`.** That skill manages the paid Gemini API; this one is a
free Calendar OAuth integration with a separate credential.
## References (retrieve on demand — do not vendor)
External docs drift; cite the canonical URLs and fetch them when needed
with `/context7` (library docs) or `/fetcher` (any URL/PDF) rather than
caching stale copies. Verified reachable (HTTP 200) 2026-08-24.
- Google Calendar API guide: <https://developers.google.com/calendar/api/guides/overview>
```bash
skills/context7/run.sh "google calendar api events oauth"
skills/fetcher/run.sh "https://developers.google.com/calendar/api/guides/overview"
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!