google-calendar

Create, list, and manage Google Calendar events. Use when asked to schedule meetings, check calendar, create events, or manage appointments.

9 stars

Best use case

google-calendar is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Create, list, and manage Google Calendar events. Use when asked to schedule meetings, check calendar, create events, or manage appointments.

Teams using google-calendar should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/google-calendar/SKILL.md --create-dirs "https://raw.githubusercontent.com/orthogonal-sh/skills/main/skills/google-calendar/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/google-calendar/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How google-calendar Compares

Feature / Agentgoogle-calendarStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Create, list, and manage Google Calendar events. Use when asked to schedule meetings, check calendar, create events, or manage appointments.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Google Calendar

Create, list, find, and manage events in Google Calendar. Connect your Google account to schedule meetings, check availability, and manage your calendar programmatically.

## Requirements

- Install the `orth` CLI
- Connect your Google Calendar at https://orthogonal.com/dashboard/integrations
- OAuth connection must be active (HTTP 428 response means not connected)

## Actions

### Create Event

Schedule a new calendar event with attendees and settings.

```bash
orth run google-calendar /create-event --body '{
  "start_datetime": "2024-03-15T14:00:00",
  "summary": "Team Meeting",
  "description": "Weekly team sync",
  "event_duration_hour": 1
}'
```

**Parameters:**
- `start_datetime` (required) - Event start time in "YYYY-MM-DDTHH:MM:SS" format (NO timezone)
- `summary` - Event title/summary
- `description` - Event description/details
- `location` - Event location or meeting room
- `timezone` - IANA timezone (e.g., "America/New_York")
- `attendees` - Array of attendee email addresses
- `event_duration_hour` - Duration in hours
- `event_duration_minutes` - Duration in minutes (0-59 only)
- `recurrence` - Recurrence rule (RRULE format)
- `visibility` - Event visibility (default, public, private)
- `calendar_id` - Specific calendar to create event in
- `send_updates` - Send email invitations (true/false)
- `transparency` - Show as busy/free (opaque/transparent)
- `exclude_organizer` - Exclude organizer from attendee list (true/false)
- `guests_can_modify` - Allow guests to modify event (true/false)
- `create_meeting_room` - Create Google Meet room (requires paid Workspace)
- `eventType` - Event type classification
- `guestsCanInviteOthers` - Allow guests to invite others (true/false)
- `guestsCanSeeOtherGuests` - Allow guests to see other attendees (true/false)

### List Events

Retrieve events from your calendar within a time range.

```bash
orth run google-calendar /list-events --body '{
  "calendarId": "primary",
  "timeMin": "2024-03-01T00:00:00Z",
  "maxResults": 10
}'
```

**Parameters:**
- `calendarId` (required) - Calendar ID to query ("primary" for main calendar)
- `timeMin` - Start time filter (RFC3339 format)
- `timeMax` - End time filter (RFC3339 format)
- `q` - Text search query
- `orderBy` - Sort order (startTime, updated)
- `maxResults` - Maximum events to return
- `pageToken` - Token for pagination
- `singleEvents` - Expand recurring events (true/false)
- `showDeleted` - Include deleted events (true/false)
- `timeZone` - Timezone for results
- `eventTypes` - Filter by event types
- `updatedMin` - Only events updated after this time
- `maxAttendees` - Maximum attendees to return per event
- `syncToken` - Sync token for incremental sync
- `showHiddenInvitations` - Include hidden invitations (true/false)

### Find Event

Search for specific events by query and filters.

```bash
orth run google-calendar /find-event --body '{
  "query": "team meeting",
  "timeMin": "2024-03-01T00:00:00Z"
}'
```

**Parameters:**
- `query` - Search query text
- `timeMin` - Search start time (RFC3339 format)
- `timeMax` - Search end time (RFC3339 format)
- `calendar_id` - Specific calendar to search
- `order_by` - Sort results (startTime, updated)
- `max_results` - Maximum results to return
- `single_events` - Expand recurring events (true/false)
- `show_deleted` - Include deleted events (true/false)
- `event_types` - Filter by event types
- `page_token` - Token for pagination
- `updated_min` - Only events updated after this time

### Delete Event

Remove an event from your calendar.

```bash
orth run google-calendar /delete-event --body '{
  "event_id": "EVENT_ID_HERE"
}'
```

**Parameters:**
- `event_id` (required) - Google Calendar event ID to delete
- `calendar_id` - Calendar containing the event (defaults to primary)

## Usage Examples

**Schedule a 1-hour meeting:**
```bash
orth run google-calendar /create-event -b '{"start_datetime":"2024-03-15T14:00:00","summary":"Client Call","event_duration_hour":1,"attendees":["client@company.com"]}'
```

**Create recurring weekly meeting:**
```bash
orth run google-calendar /create-event -b '{"start_datetime":"2024-03-15T10:00:00","summary":"Weekly Standup","event_duration_minutes":30,"recurrence":"RRULE:FREQ=WEEKLY;BYDAY=FR"}'
```

**Check today's events:**
```bash
orth run google-calendar /list-events -b '{"calendarId":"primary","timeMin":"2024-03-15T00:00:00Z","timeMax":"2024-03-15T23:59:59Z"}'
```

**Search for meetings:**
```bash
orth run google-calendar /find-event -b '{"query":"team meeting","timeMin":"2024-03-01T00:00:00Z"}'
```

**Cancel an event:**
```bash
orth run google-calendar /delete-event -b '{"event_id":"abc123def456ghi789"}'
```

## Error Handling

- **HTTP 428** - Google Calendar integration not connected. Visit https://orthogonal.com/dashboard/integrations to connect your account
- **400 Bad Request** - Invalid datetime format or missing required parameters
- **403 Forbidden** - Insufficient calendar permissions
- **404 Not Found** - Event or calendar does not exist
- **409 Conflict** - Event conflicts with existing event
- **429 Rate Limited** - Too many requests, wait before retrying

## Tips

- Use "primary" as calendarId for your main calendar
- DateTime format must be "YYYY-MM-DDTHH:MM:SS" without timezone
- Set timezone separately using the timezone parameter
- Duration can be specified in hours and/or minutes
- Recurring events use RRULE syntax (e.g., "RRULE:FREQ=WEEKLY")
- Use timeMin/timeMax in RFC3339 format for filtering
- Google Meet rooms require paid Google Workspace
- Event IDs are returned from create/list operations

Related Skills

google-sheets

9
from orthogonal-sh/skills

Create spreadsheets, read data, and manage Google Sheets. Use when asked to create sheets, add data to spreadsheets, lookup rows, update cells, or manage sheet data.

google-drive

9
from orthogonal-sh/skills

Find, create, and manage files and folders in Google Drive. Use when asked to search Drive, create files, upload documents, organize folders, or access Drive content.

yt-dlp-downloader

9
from orthogonal-sh/skills

Download videos from YouTube, Bilibili, Twitter, and thousands of other sites using yt-dlp. Use when the user provides a video URL and wants to download it, extract audio (MP3), download subtitles, or select video quality. Triggers on phrases like "下载视频", "download video", "yt-dlp", "YouTube", "B站", "抖音", "提取音频", "extract audio".

slack

9
from orthogonal-sh/skills

Send messages and manage Slack channels. Use when asked to send Slack messages, post to channels, list channels, or fetch message history.

yc-batch-evaluator

9
from orthogonal-sh/skills

Evaluate YC batch companies for investment — scrapes the YC directory, researches each company and its founders (work history, LinkedIn, website), assesses founder-company fit, and exports to Google Sheets with priority rankings. Use when asked to evaluate YC companies, research a YC batch, screen startups, or do due diligence on YC companies.

website-screenshot

9
from orthogonal-sh/skills

Take screenshots of websites and web pages

weather

9
from orthogonal-sh/skills

Get current weather and forecasts using free APIs (no API key required). Use when asked about weather, temperature, forecasts, or climate conditions for any location.

weather-forecast

9
from orthogonal-sh/skills

Get weather forecasts - temperature, precipitation, wind, and conditions

vhs-terminal-recordings

9
from orthogonal-sh/skills

Create polished terminal GIF recordings using VHS (Video Hardware Software) by Charmbracelet. Use when asked to create terminal demos, CLI gifs, command-line recordings, or animated terminal screenshots for documentation, READMEs, or marketing.

verify-email

9
from orthogonal-sh/skills

Verify if an email address is valid and deliverable

valyu

9
from orthogonal-sh/skills

Web search, AI answers, content extraction, and async deep research

uptime-monitor

9
from orthogonal-sh/skills

Monitor website uptime - check availability, response times, and status