Skip to main content
Glama

Create Calendar Event

create_calendar_event

Creates an event in the Mac's Calendar app (Calendar.app). Requires title, start_date, end_date. Optionally invite attendees by email (CalDAV/Exchange calendars only), or make it a repeating event with recurrence (daily/weekly/monthly/yearly). For Microsoft 365 use m365_create_event instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
notesNoEvent notes (optional)
titleYesEvent title
confirmNoMust be true to create the event
calendarNoCalendar name to match (optional, alternative to calendar_id)
end_dateYesISO 8601 date or datetime, same timezone rules as start_date. For an all-day event pass a bare date (end is inclusive: same date as start = a one-day all-day event; a later date spans through that day).
locationNoLocation (optional)
attendeesNoList of email addresses to invite (optional, CalDAV/Exchange only)
recurrenceNoMake it a repeating event: 'daily', 'weekly', 'monthly', or 'yearly' (optional; omit for a one-time event).
start_dateYesISO 8601 date or datetime. With a time (2026-06-27T09:00:00) the event is timed; a time with NO timezone is read in the Mac's LOCAL zone, append Z or an offset (2026-06-27T09:00:00Z, or +02:00) to pin it to UTC/another zone. Pass a bare DATE (YYYY-MM-DD) for BOTH start_date and end_date to create an ALL-DAY event.
calendar_idNoCalendar UUID from list_calendar_names (optional, defaults to default calendar)
recurrence_countNoTotal number of occurrences (optional). Mutually exclusive with recurrence_until; if neither is given the event repeats indefinitely.
recurrence_untilNoISO 8601 date the repetition stops on (optional; takes precedence over recurrence_count).
recurrence_intervalNoRepeat every N periods (optional, default 1 — e.g. recurrence='weekly' + recurrence_interval=2 = every 2 weeks).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNo
endNo
startNo
titleNo
createdNo
recurrenceNoPresent when the event repeats (human-readable summary)
attendees_noteNo
attendees_requestedNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false), so the description doesn't need to restate mutation. It adds useful behavioral context: required fields, attendee constraints, recurrence options, and the M365 alternative. However, it fails to mention the `confirm` parameter's requirement (must be true to actually create the event), which is a notable omission from the description's 'requires' list.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary action, and includes a cross-tool pointer. It is concise, information-dense, and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main use case and constraints, and with an output schema and full parameter documentation, it doesn't need to describe return values. However, it omits the `confirm` guardrail, which could lead to failed calls if the agent doesn't infer it from the schema. Given the tool's 13 parameters, a bit more context about this effective requirement would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all 13 parameters are already well-documented in the schema. The description merely highlights that title, start_date, and end_date are required and mentions attendees/recurrence as optional, adding no new parameter-level semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource: 'Creates an event in the Mac's Calendar app (Calendar.app).' It also distinguishes itself from the sibling m365_create_event by explicitly redirecting Microsoft 365 users, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use the tool (for Mac's Calendar.app) and explicitly says 'For Microsoft 365 use m365_create_event instead,' naming the alternative. It also notes that attendees are only supported on CalDAV/Exchange calendars, providing a scope boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.5/5.0
Disambiguation3/5

Many tools are clearly distinct per app (e.g., chrome_*, safari_*, m365_*), but there is notable overlap between generic file tools like `file_list` and `finder_list`, both listing files; `search_contacts` and `list_contacts` serve similar purposes; `report_friction` and `report_problem` both send feedback to the team. The large number of tools with similar purposes in different domains creates moderate ambiguity for an agent.

Naming Consistency4/5

The naming convention is very consistent overall: most tools follow a `{app}_action` or `verb_noun` pattern (e.g., `chrome_click`, `create_calendar_event`, `list_reminders`). There are minor deviations like `lmcp_install_upgrade` (two verbs) and `complete_omnifocus_task` vs. `complete_reminder` (inconsistent verb placement). Still, the pattern is predictable and readable across the full set.

Tool Count2/5

With 225 tools, the surface is extremely large and heavy. While it covers many distinct domains (browsers, mail, calendar, files, notes, reminders, video editing, web automation, etc.), the sheer number makes it hard to navigate and likely includes many rarely-used tools. This is far beyond the well-scoped range of 3-15 tools and feels excessive even for a 'local everything' MCP server.

Completeness3/5

For many app integrations, the tool set provides solid CRUD coverage (e.g., Calendar has create, read, update, delete; Apple Notes has create, read, update, list, search; OmniFocus has create, list, search, complete). However, some areas are incomplete: for example, there is no tool to create a new Mail folder or delete notes. The 'web' tools lack a clear update/delete for saved sessions. The suite is broad but has notable gaps within individual domains.