Skip to main content
Glama

Create an event

create_event

Adds an event to a CalDAV calendar with auto-generated UID, preventing accidental overwrites. Supports all-day events, timezones, alarms, recurrence, and reminders.

Instructions

Adds an event to a calendar. The UID and the file name are generated here, so an existing entry can never be overwritten by accident. Times without an offset are read in the timezone argument or in CALDAV_TIMEZONE.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNoWhen it ends. For an all-day event this is exclusive, as iCalendar defines it: a single day ends on the following date. Defaults to one hour after the start, or one day for an all-day event.
startYesWhen it starts. A bare date makes it an all-day event.
alarmsNoReplaces the plain DISPLAY reminders. An empty array removes them. Reminders this server cannot write — email alarms, repeating ones, ones with an attachment — are always kept, and the answer says how many.
statusNo
summaryYesThe title.
locationNoWhere it happens. Pass null to remove it, leave it out to keep it.
timezoneNoIANA zone for timestamps that carry no offset, e.g. "Europe/Berlin". Defaults to CALDAV_TIMEZONE. Refused together with a value that already carries an offset.
categoriesNoReplaces every category. Pass null or an empty array to clear.
recurrenceNoA raw RRULE, e.g. "FREQ=WEEKLY;BYDAY=MO;COUNT=10". Given as written rather than as separate fields, because the rule grammar is richer than any short set of parameters, and a half-modelled rule is how a series ends up wrong.
calendar_idYesA calendar id from list_calendars — its path. A full URL or the final path segment work too.
descriptionNoLonger text. Pass null to remove it, leave it out to keep it.
transparentNoTrue to leave the time free rather than marking it busy.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
uidYes
etagNo
createdYes
calendarYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observedv0.1.0-rc.1

TDQS

A4/5.0
Behavior4/5

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

The description discloses non-obvious behaviors beyond the annotations: the UID and file name are generated server-side, making accidental overwrites impossible, and offset-less times fall back to the timezone argument or CALDAV_TIMEZONE. These details add useful context and do not contradict the annotations.

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?

Two sentences, front-loaded with the core action and followed by the two most important behavioral caveats. There is no filler or redundant restating of the title.

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

Completeness4/5

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

This is a complex 12-parameter tool, but the schema covers parameter semantics in detail and an output schema exists. The description supplies the critical create-versus-update safety guarantee and timezone interpretation, which is sufficient for an agent to select and invoke the tool correctly.

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 92%, so the baseline is 3. The description's timezone sentence mostly restates what the timezone property already says; it does not add meaningful parameter-level semantics beyond the schema.

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 action, 'Adds an event to a calendar', and clearly states this is creating a new entry. The mention that the UID and file name are generated here, so an existing entry can never be overwritten by accident, distinguishes it from update_event and move_event.

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

Usage Guidelines3/5

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

Usage is only implied through the verb 'Adds'; there is no explicit guidance such as 'to modify an existing event, use update_event' or 'obtain calendar_id from list_calendars first'. The description hints at why to choose create over update, but it does not name alternatives or exclusions.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ni-c/caldav-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server