Skip to main content
Glama
PhilflowIO

dav-mcp

by PhilflowIO

update_event

Update calendar event details such as title, location, status, or custom fields, and reschedule or switch between all-day and timed events using plain dates—no iCal formatting needed.

Instructions

PREFERRED: Update event fields without iCal formatting. Use start_date/end_date/all_day to move an event or convert it between all-day and timed. Use fields for everything else: SUMMARY (title), DESCRIPTION (details), LOCATION (place), STATUS (TENTATIVE/CONFIRMED/CANCELLED), and any other RFC 5545 property including custom X-* properties (e.g., X-ZOOM-LINK, X-MEETING-ROOM).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNoFields to update, keyed by bare UPPERCASE property name (e.g., SUMMARY, LOCATION, STATUS). Any RFC 5545 property or custom X-* property is supported, EXCEPT the dates: use start_date/end_date/all_day for DTSTART, DTEND and DURATION. Property parameters such as "VALUE=DATE" are not accepted here, and values must not contain line breaks.
all_dayNoOptional. All-day is inferred from the date format, so this is only needed to state the intent explicitly; it must agree with the format of start_date/end_date. This is the supported way to convert an event between all-day and timed.
end_dateNoNew end, in the same form as start_date. For an all-day event the end is EXCLUSIVE: a single day on 2026-05-25 is start_date "2026-05-25" and end_date "2026-05-26".
event_urlYesThe URL of the event to update
event_etagYesThe etag of the event (required for conflict detection)
start_dateNoNew start. A datetime ("2026-05-25T10:00:00Z") makes the event timed; a bare date ("2026-05-25") makes it all-day. Must be given together with end_date.
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool updates events (mutation), explains the date format inference (datetime vs bare date), notes that all-day end dates are exclusive, and states that property parameters like 'VALUE=DATE' are not accepted and values must not contain line breaks. This is substantial behavioral disclosure, though it doesn't mention conflict detection behavior beyond the etag requirement.

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 concise and well-structured. It front-loads the key guidance ('PREFERRED: Update event fields without iCal formatting') and then provides a clear breakdown of what to use for dates vs other fields. Every sentence adds value, and the structure makes it easy to scan.

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?

Given the tool's complexity (6 parameters, nested fields object, date format nuances), the description is quite complete. It covers the main use cases, the date handling rules, and the constraints on fields. It doesn't explicitly mention return values, but there's no output schema, so that's not a major gap. It could mention what happens if the etag is stale, but the schema already notes it's for conflict detection.

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 description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the relationship between start_date/end_date/all_day and the fields object, clarifying that dates are handled separately from other properties. It also explains the all-day inference rule and the exclusive end date convention, which goes beyond the schema's basic descriptions.

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 clearly states the tool's purpose: updating event fields without iCal formatting. It specifies the exact fields to use (start_date/end_date/all_day for dates, fields for everything else) and lists common properties (SUMMARY, DESCRIPTION, LOCATION, STATUS) plus custom X-* properties. This distinguishes it from siblings like update_event_raw, which likely handles raw iCal formatting.

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 explicitly says 'PREFERRED' and contrasts with update_event_raw, implying when to use this tool vs the raw alternative. It provides clear guidance on when to use start_date/end_date/all_day vs fields, and even notes that all_day is only needed to state intent explicitly. This is strong usage guidance.

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

Install Server

Other Tools

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/PhilflowIO/dav-mcp'

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