Skip to main content
Glama
dwooods
by dwooods

create_calendar_event

Creates a new calendar event in Skylight for scheduling appointments, family activities, or reminders, with start and end times and optional details.

Instructions

Create a new calendar event in Skylight.

Use this when:

  • Scheduling a new event: "Add a dentist appointment on Friday at 2pm"

  • Creating family activities: "Schedule soccer practice every Saturday at 10am"

  • Adding reminders: "Put Mom's birthday on the calendar"

Parameters:

  • summary (required): Event title (e.g., "Dentist Appointment")

  • startsAt (required): Start time in ISO format or natural language

  • endsAt (required): End time in ISO format or natural language

  • allDay: Set to true for all-day events

  • description: Additional notes for the event

  • location: Where the event takes place

  • categoryIds: Family member IDs to associate with the event

Returns: The created event details.

Related: Use get_family_members to get category IDs for assignments.

Input Schema

NameRequiredDescriptionDefault
allDayNoTrue for all-day events
endsAtYesEnd time (ISO format like '2025-01-15T15:00:00')
summaryYesEvent title (e.g., 'Dentist Appointment')
locationNoEvent location
startsAtYesStart time (ISO format like '2025-01-15T14:00:00')
categoryIdsNoFamily member IDs to assign
descriptionNoAdditional notes for the event

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.1

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare a non-destructive, non-idempotent, closed-world mutation, so the safety profile is covered elsewhere. The description adds only "Returns: The created event details" — it does not disclose that repeated identical calls create duplicates (idempotentHint=false), whether conflicts are rejected, or that a sibling exists for conflict checking. The 'every Saturday' example also implies recurrence support that the schema lacks.

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

Conciseness3/5

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

The Use-this-when examples and the Related pointer earn their place, but the Parameters section restates all seven schema descriptions nearly verbatim (summary, endsAt, allDay, description, location), which is dead weight at 100% coverage. Structure is clear and front-loaded, but roughly a third of the text is redundant.

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?

No output schema exists, and the one-line "Returns" note is a reasonable stand-in. However, the description omits conflict behavior and idempotency for a mutation tool, and the recurring-event example ("every Saturday") is not backed by any parameter in the schema, which can send an agent down a dead end.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning: it says startsAt/endsAt accept natural language in addition to ISO, and it clarifies categoryIds are family member IDs with a pointer to get_family_members. Those are not in the schema.

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

Purpose4/5

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

States a specific verb+resource ("Create a new calendar event in Skylight") and the three example scenarios make the intent unambiguous. It is distinguishable from siblings like update_calendar_event and delete_calendar_event by the verb and from create_chore/create_list by the resource, though it never explicitly names those alternatives.

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

Usage Guidelines4/5

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

The "Use this when" block gives three concrete triggering scenarios, and a Related pointer routes the agent to get_family_members before supplying categoryIds. It stops short of exclusions — nothing says to use update_calendar_event for existing events or find_conflicts before booking.

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