> ## Documentation Index
> Fetch the complete documentation index at: https://docs.civic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Calendar

> Access and manage Google Calendar events

## Overview

The Google Calendar server enables AI assistants to interact with [Google Calendar](https://calendar.google.com), providing comprehensive calendar management including event creation, modification, retrieval, and deletion through the Google Calendar API.

## How to Add Google Calendar

<Steps>
  <Step title="Add Server">
    Add the Google Calendar server to your Civic environment through the server directory.
  </Step>

  <Step title="Authorize">
    Simply log in with your Google account and approve the OAuth consent request. No admin approval needed.
  </Step>

  <Step title="Test Connection">
    Try "Show me my calendar events for today" to verify the connection works.
  </Step>
</Steps>

<Note>
  **Simple OAuth Consent:** Google Calendar uses standard Google OAuth consent. No special admin approval or Google Workspace setup is required - works with any Google account.
</Note>

## What You Can Do

<CardGroup cols={2}>
  <Card title="Event Management" icon="calendar">
    Create, modify, and delete calendar events with full details
  </Card>

  <Card title="Calendar Discovery" icon="list">
    List all accessible calendars and their details
  </Card>

  <Card title="Event Search" icon="magnifying-glass">
    Search and retrieve events by time range or keywords
  </Card>

  <Card title="Google Meet Integration" icon="video">
    Add or remove Google Meet video conference links to events
  </Card>
</CardGroup>

## Available Tools (6)

### Calendar Operations

<AccordionGroup>
  <Accordion title="list_calendars">
    Retrieve all calendars accessible to the user including primary calendar, subscribed calendars, and shared calendars.
  </Accordion>
</AccordionGroup>

### Event Retrieval

<AccordionGroup>
  <Accordion title="get_events">
    List events within a specified time range. Supports filtering by calendar ID, time range (RFC3339 format), maximum results, and keyword search.
  </Accordion>

  <Accordion title="get_event">
    Retrieve detailed information for a specific event by ID including attendees, location, description, and conference details.
  </Accordion>
</AccordionGroup>

<Warning>
  **High-risk tools:** `delete_event` permanently removes calendar events. `modify_event` can alter attendee lists, times, and conference details. For automated agents, consider adding guardrails to block these tools or restrict them to specific calendars. See [Guardrails](/civic/concepts/guardrails).
</Warning>

### Event Modification

<AccordionGroup>
  <Accordion title="create_event">
    Create new calendar events with title, start/end times, description, location, attendees, timezone, Google Drive attachments, and optional Google Meet video conference.
  </Accordion>

  <Accordion title="modify_event">
    Update existing event details including title, times, description, location, attendees, timezone, and Google Meet conference link.
  </Accordion>

  <Accordion title="delete_event">
    Remove events from calendars by event ID.
  </Accordion>
</AccordionGroup>

## Use Cases

### View Schedule

"Show me all my calendar events for this week" - List upcoming events in a date range.

### Event Details

"Get the details of my next meeting" - Retrieve specific event information with attendees and location.

### Quick Scheduling

"Create a team meeting tomorrow at 2pm for 1 hour with [alice@example.com](mailto:alice@example.com) and [bob@example.com](mailto:bob@example.com)" - Schedule events with attendees.

### All-Day Events

"Create an all-day event called 'Conference' from October 27 to October 29" - Block calendar days for multi-day events.

### Google Meet Integration

"Create a meeting tomorrow at 3pm with Google Meet link" - Automatically add video conference details.

### Event Updates

"Change my 2pm meeting to 3pm and add [charlie@example.com](mailto:charlie@example.com) as an attendee" - Modify existing events.

### Timezone Handling

"Schedule a call at 10am Pacific Time with the London office" - Create events with specific timezones.

### Drive Attachments

"Create a meeting with the project proposal document attached" - Link Google Drive files to calendar events.

### Event Search

"Find all calendar events with 'project' in the title" - Search events by keyword.

### Calendar Management

"Show me all my subscribed calendars" - List available calendars for organization.

<Note>
  **RFC3339 Format:** Event times use RFC3339 format (e.g., `2024-10-27T10:00:00-07:00` for timed events or `2024-10-27` for all-day events).

  **Calendar IDs:** Use `'primary'` for the user's main calendar or specific calendar IDs from `list_calendars` for shared/subscribed calendars.

  **Google Meet:** Set `add_google_meet: true` when creating/modifying events to automatically generate video conference links.

  **Attendees:** Specify attendee email addresses to send calendar invitations automatically.
</Note>

***

## Guardrails

In addition to the [14 universal guardrails](/civic/concepts/guardrails), this server has **39 server-specific guardrails** across 4 operations.

<Note>
  `delete_event` and `modify_event` are high-risk operations. Use the "Block Delete Event" and "Protected Calendars From Modification" guardrails to prevent automated agents from removing or altering calendar events without human approval.
</Note>

| Guardrail                             | Operation        | Timing   | Description                                                                |
| ------------------------------------- | ---------------- | -------- | -------------------------------------------------------------------------- |
| Allowed Event Locations               | `create_event`   | Request  | Only allows certain locations or blocks sensitive ones                     |
| Blocked Event Attendees               | `create_event`   | Request  | Prevents creating events with specific email domains or addresses          |
| Block Event Attachments               | `create_event`   | Request  | Prevents creating events with Drive file attachments                       |
| Block Google Meet Creation            | `create_event`   | Request  | Prevents creating events with Google Meet video conferences                |
| Create Event Allowed Calendars        | `create_event`   | Request  | Only allows creating events in specific calendar IDs                       |
| Create Event Verified Domains Only    | `create_event`   | Request  | Blocks creating events if any attendee is not from a verified email domain |
| Event Blackout Periods                | `create_event`   | Request  | Blocks creating events during restricted time periods                      |
| Maximum Attendees Per Event           | `create_event`   | Request  | Limits the number of attendees that can be added to an event               |
| Block Delete Event                    | `delete_event`   | Request  | Blocks all delete\_event operations for security                           |
| Protected Calendars From Deletion     | `delete_event`   | Request  | Prevents deletion of events in specific calendar IDs                       |
| Protect Recurring Events              | `delete_event`   | Request  | Blocks deletion of event series                                            |
| Protect VIP Events                    | `delete_event`   | Request  | Prevents deletion of events with certain important attendees               |
| Allowed Calendar IDs                  | `get_events`     | Request  | Only allows querying specific calendar IDs                                 |
| Blocked Calendars for Event Retrieval | `get_events`     | Request  | Prevents reading events from specific calendar IDs                         |
| Event Content Filter                  | `get_events`     | Response | Redacts sensitive information from event description and location          |
| Event Description Filter              | `get_events`     | Response | Redacts event descriptions containing sensitive keywords                   |
| Event Search Keyword Filter           | `get_events`     | Request  | Prevents searching for events with sensitive keywords                      |
| Event Time Range Restriction          | `get_events`     | Request  | Limits how far back or forward events can be searched                      |
| Get Event Verified Attendees Only     | `get_events`     | Response | Blocks get\_events if no allowed email or domain is found in attendee list |
| Hide Event Attendees                  | `get_events`     | Response | Redacts attendee information from event results                            |
| Hide Event Details                    | `get_events`     | Response | Redacts sensitive fields from single event retrieval                       |
| Maximum Events Limit                  | `get_events`     | Request  | Caps the maximum number of events that can be returned                     |
| Sensitive Event Filter                | `get_events`     | Response | Hides events containing sensitive information from results                 |
| List Verified Calendars Only          | `list_calendars` | Response | Redacts calendars not in the allowed names or IDs list                     |
| Block Past Event Modifications        | `modify_event`   | Request  | Prevents changing historical events                                        |
| Keep Google Meet                      | `modify_event`   | Request  | Prevents removing Google Meet from events                                  |
| Modify Event Verified Attendees Only  | `modify_event`   | Request  | Blocks modify\_event if any attendee is not from a verified email domain   |
| Protected Calendars From Modification | `modify_event`   | Request  | Prevents modifying events in specific calendar IDs                         |
| Protect Event Attendees               | `modify_event`   | Request  | Prevents adding or removing certain attendees                              |
| Restricted Time Changes               | `modify_event`   | Request  | Blocks moving events to restricted time periods                            |

<Tip>
  Configure guardrails via the Civic UI or ask the Configurator Agent: "Add guardrails to my Google Calendar server."
</Tip>
