mirror of
https://github.com/larchanka/manbot.git
synced 2026-05-13 21:42:08 +00:00
11 KiB
11 KiB
Description: You MUST use this skill for all interactions involving Google Calendar.
Calendar Skill
Manage Google Calendar events using the gog CLI.
Mandatory tool: Use the shell tool to execute gog commands.
When to Use
✅ USE this skill when:
- Checking upcoming meetings or daily schedules.
- Searching for calendar events by title or keyword.
- Creating, updating, or deleting calendar events.
- Checking availability or scheduling conflicts.
- Responding to meeting invitations (accept/decline/tentative).
- Reviewing team calendars or free/busy blocks.
When NOT to Use
❌ DON'T use this skill when:
- Managing Gmail messages (use the Email Skill).
- Editing Google Contacts.
- Sending meeting notes via email (unless specifically requested).
Commands
📅 Viewing Events
# Today's events
gog calendar events primary --today
# Tomorrow's events
gog calendar events primary --tomorrow
# Events for the week
gog calendar events primary --week
# Next 3 days
gog calendar events primary --days 3
# Specific date range
gog calendar events primary --from today --to friday
# Fetch events across all calendars
gog calendar events --all
# Fetch events from specific calendars
gog calendar events --cal Work --cal Personal
🔎 Searching Events
# Search events by keyword
gog calendar search "meeting"
# Search within time windows
gog calendar search "standup" --today
gog calendar search "planning" --week
gog calendar search "demo" --days 365
# Custom date range
gog calendar search "conference" \
--from 2025-01-01T00:00:00Z \
--to 2025-01-31T00:00:00Z \
--max 50
📌 Event Details
# Get a specific event
gog calendar get <calendarId> <eventId>
# JSON output for structured parsing
gog calendar get <calendarId> <eventId> --json
➕ Creating Events
# Simple meeting
gog calendar create primary \
--summary "Meeting" \
--from 2025-01-15T10:00:00Z \
--to 2025-01-15T11:00:00Z
# Meeting with attendees
gog calendar create primary \
--summary "Team Sync" \
--from 2025-01-15T14:00:00Z \
--to 2025-01-15T15:00:00Z \
--attendees "alice@example.com,bob@example.com" \
--location "Zoom"
✏️ Updating Events
# Update event title and time
gog calendar update <calendarId> <eventId> \
--summary "Updated Meeting" \
--from 2025-01-15T11:00:00Z \
--to 2025-01-15T12:00:00Z
# Add attendees without replacing existing ones
gog calendar update <calendarId> <eventId> \
--add-attendee "alice@example.com,bob@example.com"
❌ Deleting Events
gog calendar delete <calendarId> <eventId>
📩 Invitations
# Accept meeting
gog calendar respond <calendarId> <eventId> --status accepted
# Decline meeting
gog calendar respond <calendarId> <eventId> --status declined
# Tentative
gog calendar respond <calendarId> <eventId> --status tentative
🕒 Availability & Conflicts
# Check free/busy time
gog calendar freebusy \
--calendars "primary,work@example.com" \
--from 2025-01-15T00:00:00Z \
--to 2025-01-16T00:00:00Z
# Check conflicts
gog calendar conflicts --today
# Conflicts across all calendars
gog calendar conflicts --all --today
👥 Team Calendars
# Team events today
gog calendar team team@example.com --today
# Team schedule this week
gog calendar team team@example.com --week
# Free/busy overview
gog calendar team team@example.com --freebusy
# Filter by title
gog calendar team team@example.com --query "standup"
🧠 Special Event Types
# Focus time
gog calendar focus-time \
--from 2025-01-15T13:00:00Z \
--to 2025-01-15T14:00:00Z
# Out of office
gog calendar out-of-office \
--from 2025-01-20 \
--to 2025-01-21 \
--all-day
# Working location
gog calendar working-location \
--type office \
--office-label "HQ" \
--from 2025-01-22 \
--to 2025-01-23
Tool Call Examples (JSON)
When using this skill, format your tool calls as follows:
Get Today's Events:
{
"name": "shell",
"arguments": {
"command": "gog calendar events primary --today"
}
}
Search for an Event
{
"name": "shell",
"arguments": {
"command": "gog calendar search \"meeting\" --today"
}
}
Create a Meeting
{
"name": "shell",
"arguments": {
"command": "gog calendar create primary --summary \"Team Sync\" --from \"2025-01-15T14:00:00Z\" --to \"2025-01-15T15:00:00Z\""
}
}
Accept Invitation
{
"name": "shell",
"arguments": {
"command": "gog calendar respond primary \"event-123\" --status accepted"
}
}
Delete Event
{
"name": "shell",
"arguments": {
"command": "gog calendar delete primary \"event-123\""
}
}
All available command examples
# Calendars
gog calendar calendars
gog calendar acl <calendarId> # List access control rules
gog calendar colors # List available event/calendar colors
gog calendar time --timezone America/New_York
gog calendar users # List workspace users (use email as calendar ID)
# Events (with timezone-aware time flags)
gog calendar events <calendarId> --today # Today's events
gog calendar events <calendarId> --tomorrow # Tomorrow's events
gog calendar events <calendarId> --week # This week (Mon-Sun by default; use --week-start)
gog calendar events <calendarId> --days 3 # Next 3 days
gog calendar events <calendarId> --from today --to friday # Relative dates
gog calendar events <calendarId> --from today --to friday --weekday # Include weekday columns
gog calendar events <calendarId> --from 2025-01-01T00:00:00Z --to 2025-01-08T00:00:00Z
gog calendar events --all # Fetch events from all calendars
gog calendar events --calendars 1,3 # Fetch events from calendar indices (see gog calendar calendars)
gog calendar events --cal Work --cal Personal # Fetch events from calendars by name/ID
gog calendar event <calendarId> <eventId>
gog calendar get <calendarId> <eventId> # Alias for event
gog calendar search "meeting" --today
gog calendar search "meeting" --tomorrow
gog calendar search "meeting" --days 365
gog calendar search "meeting" --from 2025-01-01T00:00:00Z --to 2025-01-31T00:00:00Z --max 50
# Search defaults to 30 days ago through 90 days ahead unless you set --from/--to/--today/--week/--days.
# Tip: set GOG_CALENDAR_WEEKDAY=1 to default --weekday for calendar events output.
# JSON event output includes timezone and localized times (useful for agents).
gog calendar get <calendarId> <eventId> --json
# {
# "event": {
# "id": "...",
# "summary": "...",
# "startDayOfWeek": "Friday",
# "endDayOfWeek": "Friday",
# "timezone": "America/Los_Angeles",
# "eventTimezone": "America/New_York",
# "startLocal": "2026-01-23T20:45:00-08:00",
# "endLocal": "2026-01-23T22:45:00-08:00",
# "start": { "dateTime": "2026-01-23T23:45:00-05:00" },
# "end": { "dateTime": "2026-01-24T01:45:00-05:00" }
# }
# }
# Team calendars (requires Cloud Identity API for Google Workspace)
gog calendar team <group-email> --today # Show team's events for today
gog calendar team <group-email> --week # Show team's events for the week (use --week-start)
gog calendar team <group-email> --freebusy # Show only busy/free blocks (faster)
gog calendar team <group-email> --query "standup" # Filter by event title
# Create and update
gog calendar create <calendarId> \
--summary "Meeting" \
--from 2025-01-15T10:00:00Z \
--to 2025-01-15T11:00:00Z
gog calendar create <calendarId> \
--summary "Team Sync" \
--from 2025-01-15T14:00:00Z \
--to 2025-01-15T15:00:00Z \
--attendees "alice@example.com,bob@example.com" \
--location "Zoom"
gog calendar update <calendarId> <eventId> \
--summary "Updated Meeting" \
--from 2025-01-15T11:00:00Z \
--to 2025-01-15T12:00:00Z
# Send notifications when creating/updating
gog calendar create <calendarId> \
--summary "Team Sync" \
--from 2025-01-15T14:00:00Z \
--to 2025-01-15T15:00:00Z \
--send-updates all
gog calendar update <calendarId> <eventId> \
--send-updates externalOnly
# Default: no attendee notifications unless you pass --send-updates.
gog calendar delete <calendarId> <eventId> \
--send-updates all --force
# Recurrence + reminders
gog calendar create <calendarId> \
--summary "Payment" \
--from 2025-02-11T09:00:00-03:00 \
--to 2025-02-11T09:15:00-03:00 \
--rrule "RRULE:FREQ=MONTHLY;BYMONTHDAY=11" \
--reminder "email:3d" \
--reminder "popup:30m"
# Special event types via --event-type (focus-time/out-of-office/working-location)
gog calendar create primary \
--event-type focus-time \
--from 2025-01-15T13:00:00Z \
--to 2025-01-15T14:00:00Z
gog calendar create primary \
--event-type out-of-office \
--from 2025-01-20 \
--to 2025-01-21 \
--all-day
gog calendar create primary \
--event-type working-location \
--working-location-type office \
--working-office-label "HQ" \
--from 2025-01-22 \
--to 2025-01-23
# Dedicated shortcuts (same event types, more opinionated defaults)
gog calendar focus-time --from 2025-01-15T13:00:00Z --to 2025-01-15T14:00:00Z
gog calendar out-of-office --from 2025-01-20 --to 2025-01-21 --all-day
gog calendar working-location --type office --office-label "HQ" --from 2025-01-22 --to 2025-01-23
# Add attendees without replacing existing attendees/RSVP state
gog calendar update <calendarId> <eventId> \
--add-attendee "alice@example.com,bob@example.com"
gog calendar delete <calendarId> <eventId>
# Invitations
gog calendar respond <calendarId> <eventId> --status accepted
gog calendar respond <calendarId> <eventId> --status declined
gog calendar respond <calendarId> <eventId> --status tentative
gog calendar respond <calendarId> <eventId> --status declined --send-updates externalOnly
# Propose a new time (browser-only flow; API limitation)
gog calendar propose-time <calendarId> <eventId>
gog calendar propose-time <calendarId> <eventId> --open
gog calendar propose-time <calendarId> <eventId> --decline --comment "Can we do 5pm?"
# Availability
gog calendar freebusy --calendars "primary,work@example.com" \
--from 2025-01-15T00:00:00Z \
--to 2025-01-16T00:00:00Z
gog calendar freebusy --cal Work --from 2025-01-15T00:00:00Z --to 2025-01-16T00:00:00Z
gog calendar conflicts --calendars "primary,work@example.com" \
--today # Today's conflicts
gog calendar conflicts --all --today # Check conflicts across all calendars
Notes
- Confirmation: Always confirm the event summary, date/time, and attendees before creating, updating, or deleting an event.
- Calendar IDs: primary refers to the user's main calendar; other calendars can be referenced by name or email.
- Timezone Awareness: The CLI supports timezone-aware timestamps; prefer ISO timestamps (e.g., 2025-01-15T14:00:00Z).
- JSON Output: Use the --json flag when structured event details are required for parsing.