Skip to content
Back to skills

Google Calendar

ASecurity

View, create, update, and delete calendar events

  • 194 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 6, 2026
ai-agentsgo

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add aws-samples/sample-strands-agent-with-agentcore --skill google-calendar --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Google Calendar?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Google Calendar
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aws-samples-google-calendar/badge)](https://www.skillsdirectory.com/skills/aws-samples-google-calendar)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: google-calendar
description: View, create, update, and delete calendar events
---

# Google Calendar

## Available Tools

- **list_calendars()**: List all user's calendars (primary, shared, subscribed).

- **list_events(calendar_id?, max_results?, time_min?, time_max?, query?, show_deleted?)**: List calendar events.
  - `calendar_id` (string, optional, default: "primary"): Calendar ID
  - `max_results` (integer, optional, default: 10, max: 100): Maximum events
  - `time_min` (string, optional, default: now): Start time in RFC3339 format (e.g., "2024-01-01T00:00:00Z")
  - `time_max` (string, optional): End time in RFC3339 format
  - `query` (string, optional): Free text search
  - `show_deleted` (boolean, optional, default: false): Include deleted events

- **get_event(event_id, calendar_id?)**: Get detailed information about a specific event.
  - `event_id` (string, required): Event ID (from list_events)
  - `calendar_id` (string, optional, default: "primary")

- **create_event(summary, start_time, end_time, calendar_id?, description?, location?, attendees?, timezone?, all_day?, reminder_minutes?)**: Create a new event.
  - `summary` (string, required): Event title
  - `start_time` (string, required): RFC3339 format (e.g., "2024-01-15T09:00:00") or date "YYYY-MM-DD" for all-day
  - `end_time` (string, required): RFC3339 format or date for all-day
  - `calendar_id` (string, optional, default: "primary")
  - `description` (string, optional): Event description/notes
  - `location` (string, optional): Event location
  - `attendees` (string, optional): Comma-separated email addresses
  - `timezone` (string, optional, default: "UTC"): Timezone (e.g., "Asia/Seoul", "America/New_York")
  - `all_day` (boolean, optional, default: false): Create all-day event (use YYYY-MM-DD for times)
  - `reminder_minutes` (string, optional): Comma-separated reminder times in minutes (e.g., "10,30,60")

- **update_event(event_id, calendar_id?, summary?, start_time?, end_time?, description?, location?, attendees?, timezone?)**: Update an existing event. Only specified fields are changed.
  - `event_id` (string, required)
  - `calendar_id` (string, optional, default: "primary")
  - Other parameters are optional — only provide fields to change

- **delete_event(event_id, calendar_id?, send_notifications?)**: Delete an event.
  - `event_id` (string, required)
  - `calendar_id` (string, optional, default: "primary")
  - `send_notifications` (boolean, optional, default: false): Send cancellation to attendees

- **quick_add_event(text, calendar_id?)**: Create event from natural language text.
  - `text` (string, required): Natural language description (e.g., "Meeting with John tomorrow at 3pm", "Team standup every Monday at 9am")
  - `calendar_id` (string, optional, default: "primary")

- **check_availability(time_min, time_max, calendars?, timezone?)**: Check free/busy status.
  - `time_min` (string, required): Start of range in RFC3339 format
  - `time_max` (string, required): End of range in RFC3339 format
  - `calendars` (string, optional): Comma-separated calendar IDs (default: primary)
  - `timezone` (string, optional, default: "UTC")

## Usage Guidelines

- Time format: RFC3339 — `2024-01-15T09:00:00Z` (UTC) or `2024-01-15T09:00:00+09:00` (with timezone).
- All-day events: use date format `YYYY-MM-DD` with `all_day=true`.
- Default calendar is `"primary"`.

## Common Operations

**Schedule a meeting**: Use `create_event` with `attendees` parameter for full control over time, description, and reminders.

**Find available time**: Call `check_availability` with the relevant calendar IDs and time range before creating events to avoid conflicts.

**Quick scheduling**: `quick_add_event` accepts natural language (e.g., "Lunch with Sarah tomorrow at noon"). Convenient but less precise than `create_event`.

**Reschedule**: Use `update_event` with new `start_time` and `end_time`. Only the fields you provide will be changed.

## UI Guidance (from tools-config)

**Google Calendar Tool Usage:**
- list_calendars: Get all user's calendars (primary, shared, subscribed)
- list_events: List upcoming events with date range filters and search
- get_event: Get detailed event information
- create_event: Create new calendar events with attendees and reminders
- update_event: Modify existing events (time, title, description, attendees)
- delete_event: Remove events with optional notification to attendees
- quick_add_event: Create event from natural language (e.g., 'Meeting with John tomorrow at 3pm')
- check_availability: Query free/busy status for scheduling

**Time Format:**
- RFC3339 format: 2024-01-15T09:00:00Z (UTC) or 2024-01-15T09:00:00+09:00 (with timezone)
- All-day events: use date format YYYY-MM-DD

**Common Operations:**
- Schedule meeting: create_event with attendees parameter
- Find available time: check_availability before creating events
- Quick scheduling: quick_add_event for natural language input
- Reschedule: update_event with new start_time and end_time

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.