Skip to main content
Glama

create_event

Destructive

Create a calendar event on the connected calendar. TWO-PHASE, HUMAN-APPROVED: the first call (no request_id) executes nothing — it returns status=approval_required with a preview of exactly what would happen and a request_id.

Instructions

Create a calendar event on the connected calendar. TWO-PHASE, HUMAN-APPROVED: the first call (no request_id) executes nothing — it returns status=approval_required with a preview of exactly what would happen and a request_id. A human approves out of band (GigaMail console, CLI or Telegram, behind Windows Hello / Touch ID); the second call with that request_id executes the payload that was approved (the approved arguments, not the ones passed the second time). Requests expire (default 15 min); identical pending requests are deduplicated; more than 20 requests/hour per tool are refused (status=rate_limited). Every phase is written to the audit log. Approval is required because an event can generate invitations to other people. The preview shows all fields as they will be created. Returns the created event ({id, ...}) on execution. Requires a connected calendar (Microsoft or Google). Find times with find_free_slots first.

Input Schema

NameRequiredDescriptionDefault
endYesEnd, ISO 8601 local time; must be after start.
bodyNoOptional description / notes.
startYesStart, ISO 8601 local time, e.g. 2026-08-12T15:00:00.
all_dayNoAll-day event: start and end are the first and last day (YYYY-MM-DD), both included.
subjectYesEvent title.
locationNoOptional location text.
request_idNoOmit on the first call. On the first call the tool does NOT execute: it returns status=approval_required, a preview and a request_id. A human must approve that request_id out of band (GigaMail console, `gigamail approvals approve`, or Telegram — all behind Windows Hello / Touch ID). Then call again with the same request_id to execute. The agent cannot approve; repeating the call without approval just returns awaiting_approval.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.6.3
    • addedInput schema / properties / all_day
      Added value: +{
      +  "default": false,
      +  "description": "All-day event: start and end are the first and last day (YYYY-MM-DD), both included.",
      +  "title": "All Day",
      +  "type": "boolean"
      +}
  2. Changed6 schema fields changedv0.3.0
    • addedInput schema / properties / body / description
      Added value: +"Optional description / notes."
    • addedInput schema / properties / end / description
      Added value: +"End, ISO 8601 local time; must be after start."
    • addedInput schema / properties / location / description
      Added value: +"Optional location text."
    • addedInput schema / properties / request_id / description
      Added value: +"Omit on the first call. On the first call the tool does NOT execute: it returns status=approval_required, a preview and a request_id. A human must approve that request_id out of band (GigaMail console, `gigamail approvals approve`, or Telegram — all behind Windows Hello / Touch ID). Then call again with the same request_id to execute. The agent cannot approve; repeating the call without approval just returns awaiting_approval."
    • addedInput schema / properties / start / description
      Added value: +"Start, ISO 8601 local time, e.g. 2026-08-12T15:00:00."
    • addedInput schema / properties / subject / description
      Added value: +"Event title."
  3. First observedv0.1.3

TDQS

A4.8/5.0
Behavior5/5

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

The description is exceptionally transparent, detailing complex operational behaviors such as the two-phase nature, return status (approval_required), expiration (15 min), deduplication, rate limits (20/hr), and specific requirements for human approval (CLI/Telegram/Touch ID). This far exceeds the coverage of the provided annotations.

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

Conciseness4/5

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

Although very long, the structure is highly effective. The description uses deliberate pacing to separate the operational phases (Phase 1 vs Phase 2), ensuring that the necessary complexity is front-loaded and logically organized.

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

Completeness5/5

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

Given the high complexity of a two-phase, asynchronous, rate-limited, human-approved workflow, this description is perfectly complete. It identifies dependencies (connected calendar, find_free_slots) and covers all failure and operational modes.

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?

While the schema covers the types, the description is vital for `request_id` to define its operational function. It clearly explains that the parameter must be omitted on the first call and used only for subsequent execution, adding critical meaning beyond the basic schema definition.

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 purpose is immediately clear: to create a calendar event. It effectively distinguishes itself from sibling tools like list_events or delete_event by introducing a unique, complex, and asynchronous two-phase workflow.

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 provides extensive usage guidelines. It explicitly states the dependency on calling find_free_slots first, and critically, details the conditional usage of the request_id (use it for phase 2 only).

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