Read Google Calendar events and check availability using gws CLI. Use this skill when any Founder OS plugin needs to list events, check schedules, or query free/busy status — replaces Google Calendar MCP server read operations.
From founder-osnpx claudepluginhub thecloudtips/founder-os --plugin founder-osThis skill uses the workspace's default tool permissions.
Designs and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Calendar read operations via gws CLI. Covers listing events, getting event details, and checking availability.
calendar.readonly (minimum), calendar.events (for full access)# Get today's events with smart formatting
gws calendar +agenda --today --format json
Output: JSON array of today's events with summary, start/end times, attendees, location.
This is the fastest way to get a daily schedule. Use for P02 Daily Briefing, P03 Meeting Prep, P22 Morning Sync.
# Events in a date range
gws calendar events list --params '{
"calendarId": "primary",
"timeMin": "2026-03-09T00:00:00Z",
"timeMax": "2026-03-10T00:00:00Z",
"singleEvents": true,
"orderBy": "startTime"
}' --format json
Key parameters:
calendarId: "primary" for default calendar, or specific calendar IDtimeMin/timeMax: ISO 8601 datetime (must include timezone or Z)singleEvents: true to expand recurring events into individual instancesorderBy: "startTime" (requires singleEvents: true) or "updated"maxResults: limit number of events returnedOutput: JSON with items[] array containing event objects.
gws calendar events get --params '{"calendarId":"primary","eventId":"EVENT_ID"}' --format json
gws calendar freebusy query --json '{
"timeMin": "2026-03-09T08:00:00Z",
"timeMax": "2026-03-09T18:00:00Z",
"items": [{"id": "primary"}]
}' --format json
Output: JSON with busy time ranges for each calendar.
gws calendar calendarList list --format json
gws calendar events list --params '{
"calendarId": "primary",
"timeMin": "2026-03-09T00:00:00Z",
"timeMax": "2026-03-15T23:59:59Z",
"singleEvents": true,
"orderBy": "startTime",
"maxResults": 50
}' --format json
# List events and filter by attendee using jq
gws calendar events list --params '{
"calendarId": "primary",
"timeMin": "2026-03-01T00:00:00Z",
"timeMax": "2026-03-31T23:59:59Z",
"singleEvents": true,
"orderBy": "startTime"
}' --format json | jq '[.items[] | select(.attendees[]?.email == "person@example.com")]'
If Calendar is unavailable, return:
{"source": "calendar", "status": "unavailable", "reason": "gws CLI not found or auth expired"}
Continue with other data sources.