Create Calendar Event(s)
create_eventCreate single or multiple events in Google Calendar. Bulk create with timezone, recurrence, attendees, and attachments.
Instructions
Create single or multiple events in Google Calendar. TIMEZONE: Always pass the timezone parameter or include UTC offsets in start_time/end_time (e.g., '2025-03-03T15:00:00-05:00') to avoid times being interpreted incorrectly. Supports both individual event creation (backward compatible) and bulk event creation for efficient batch operations.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| events | No | Array of event objects for bulk creation (or JSON string that will be parsed). Each event should contain: summary (required), start_time (required), end_time (required), and optional fields like description, location, attendees, timezone, attachments. When provided, uses bulk mode and ignores legacy single-event parameters | |
| summary | No | Event title/summary (legacy mode only - used when 'events' parameter is not provided) | |
| duration | No | Event duration as alternative to end_time. Format: a number + unit — '30s', '5m', '2h', '1.5d', '1w'. Ignored if end_time is also provided. Legacy mode only | |
| end_time | No | Event end time. Required unless 'duration' is provided. IMPORTANT: Always specify timezone to avoid time offset issues. Preferred: datetime with offset (e.g., '2025-01-01T11:00:00-05:00') or UTC ('2025-01-01T11:00:00Z'). Naive datetimes are localized using the timezone param or server default. Date only for all-day events (e.g., '2025-01-02'). Legacy mode only | |
| location | No | Event location. Can be a physical address (e.g., '123 Main St, City, State') or virtual meeting link (e.g., 'https://meet.google.com/abc-defg-hij') (legacy mode only) | |
| timezone | No | STRONGLY RECOMMENDED when using naive datetimes. IANA timezone name (e.g., 'America/New_York', 'America/Chicago'). Naive datetimes in start_time/end_time will be interpreted in this timezone. Without this, the server's DEFAULT_TIMEZONE setting is used. Has no effect when times already contain an offset (Z or ±HH:MM). Legacy mode only | |
| attendees | No | List of attendee email addresses. Each attendee will receive an invitation (legacy mode only) | |
| recurrence | No | List of RRULE, EXRULE, RDATE, or EXDATE strings for recurring events (e.g., ['RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR']). See RFC 5545. Legacy mode only | |
| start_time | No | Event start time. IMPORTANT: Always specify timezone to avoid time offset issues. Preferred: datetime with offset (e.g., '2025-01-01T10:00:00-05:00') or UTC ('2025-01-01T10:00:00Z'). Naive datetimes are localized using the timezone param or server default. Date only for all-day events (e.g., '2025-01-01'). Legacy mode only | |
| attachments | No | List of Google Drive file URLs (e.g., 'https://drive.google.com/file/d/FILE_ID') or direct file IDs to attach to the event. Files must be accessible to the calendar owner (legacy mode only) | |
| calendar_id | No | Calendar ID where events will be created. Use 'primary' for the user's main calendar | primary |
| description | No | Event description/details. Supports plain text or basic HTML formatting (legacy mode only) | |
| user_google_email | No | The user's Google email address for Calendar access. If None, uses the current authenticated user from FastMCP context (auto-injected by middleware). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |