Title100/100
Calendar Create Event
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Create an event on one calendar, optionally with guests, a Meet link, reminders, attachments or a recurrence rule. The time is first checked against that calendar's busy times only, and an overlap fails with a conflict error that creates nothing; to plan around other people's calendars use calendar_find_free_time first. Returns status 'ok', event (id, title, start and end in the event's timezone, url, meeting_url, attendees and the other calendar_read_events fields), deduplicated (true when idempotency_key matched an existing event) and warnings, non-empty when the conflict check could not run. An event with guests asks the user to confirm first; they are emailed only as send_updates says.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
summary
Event title shown on the calendar.
Clear enough to supply this argument.
start_datetime
Start time: RFC3339 with offset, e.g. '2026-03-02T15:00:00-05:00', or a naive 'YYYY-MM-DDTHH:MM:SS' read in timezone. A bare 'YYYY-MM-DD' becomes midnight in timezone; all-day events cannot be created.
Clear enough to supply this argument.
end_datetime
End time, in the same formats as start_datetime; must be after it.
Clear enough to supply this argument.
calendar_id
Calendar ID: 'primary' for the user's main calendar, or an ID from calendar_get_calendar_context's calendars (often an email address).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
idempotency_key
Caller-chosen key, 1 to 256 characters, that makes a retry safe: the event gets an ID derived from the key, so a repeat call with the same key returns the event already created (deduplicated true) instead of creating another, even if other arguments differ.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
timezone
IANA time zone, e.g. 'America/New_York', used to read naive start/end values and stored as the event's time zone (a recurrence repeats in it); defaults to the account's calendar time zone.
Clear enough to supply this argument.
description
Event notes shown in the event details.
Clear enough to supply this argument.
location
Free-text location, e.g. an address or a room name.
Clear enough to supply this argument.
color_id
Event color ID from '1' to '11' (Google Calendar's fixed event palette); omit to use the calendar's color.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
visibility
Who can see the event's details: 'default' (the calendar's setting), 'public', 'private' or 'confidential'.
Clear enough to supply this argument.
transparency
'opaque' shows the time as busy; 'transparent' leaves it free in availability checks.
Clear enough to supply this argument.
add_meet_link
True creates a new Google Meet link for the event, returned as the event's meeting_url.
Clear enough to supply this argument.
attendees › items › email
Guest's email address; the invitation goes here.
Clear enough to supply this argument.
attendees › items › displayName
Name shown for the guest on the event.
Clear enough to supply this argument.
attendees › items › optional
True marks the guest as optional rather than required.
Clear enough to supply this argument.
attendees › items › comment
The guest's note accompanying their response.
Clear enough to supply this argument.
attendees › items › additionalGuests
Number of extra people the guest brings, 0 to 100.
Clear enough to supply this argument.
attachments › items › file_url
Link to the file; for a Drive file use the same form as its Drive alternateLink, e.g. 'https://drive.google.com/file/d/<file_id>/view'.
Clear enough to supply this argument.
attachments › items › title
Name shown for the attachment on the event.
Clear enough to supply this argument.
attachments › items › mime_type
MIME type of the file, e.g. 'application/pdf'.
Clear enough to supply this argument.
attachments › items › icon_link
URL of an icon shown next to the attachment.
Clear enough to supply this argument.
attachments › items › file_id
Drive file ID of the file; lets calendar_set_event_attachments remove it by file_id and drive_download_file save it.
Clear enough to supply this argument.
supports_attachments
Tells Google this call handles event attachments (its supportsAttachments flag); leave true, attachments are only saved when it is true.
Clear enough to supply this argument.
send_updates
Who Google emails the invitation: 'all' guests, 'externalOnly' (only guests who do not use Google Calendar) or 'none'. When omitted, Google's default of sending no notification applies.
Clear enough to supply this argument.
reminder_minutes
Popup reminders, in minutes before the start (each 0 to 40320, at most 5), e.g. [10, 60]. An empty list sets no reminders; omit it to use the calendar's default reminders.
Clear enough to supply this argument.
reminders › items › minutes
Minutes before the event's start, 0 to 40320 (4 weeks).
Clear enough to supply this argument.
reminders › items › method
'popup' alerts on the user's devices; 'email' emails the user (the calendar's owner).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
recurrence
RFC 5545 recurrence lines, e.g. ['RRULE:FREQ=WEEKLY;BYDAY=MO,WE;COUNT=10']; EXDATE and RDATE lines are also accepted.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
on_conflict
Both values fail with a 'conflict' error and create nothing when the time overlaps busy time on calendar_id; the error's details.conflicting_events lists the busy periods. 'suggest_next_slot' also returns up to 5 free slots of the same length within 72 hours in details.suggested_slots.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": true
}Output schema20/100
Declare the result fields and their types in the output schema.
View output schema
{
"type": "object",
"required": [],
"properties": {
"event": {
"type": "object"
},
"status": {
"type": "string",
"description": "Machine-readable operation status."
},
"warnings": {
"type": "array",
"items": {}
},
"deduplicated": {
"type": "boolean"
}
},
"additionalProperties": true
}