Skip to main content
Glama

create-calendar-event

Create a new event in a Dooray calendar with a title, start and end times, attendees, location, alarms, and recurrence options. Use it to schedule meetings, whole day events, or repeating appointments.

Instructions

Create an event (일정 등록) in a Dooray calendar.

Required: calendarId, subject, startedAt, endedAt. Get calendarId from get-calendar-list (default=true is the user's own calendar).

Time Format:

  • Timed event: "2026-10-22T10:00:00+09:00"

  • Whole day event: set wholeDayFlag=true and use date format "2026-10-22+09:00". endedAt is the next day ("2026-10-23+09:00" for a one day event)

Attendees: {id, type} where type is "member" (organizationMemberId) or "email" (email address). Use get-my-member-info, get-project-member-list, get-member-list to find member IDs.

Examples:

  • Meeting: {"calendarId": "123", "subject": "주간 회의", "startedAt": "2026-10-22T10:00:00+09:00", "endedAt": "2026-10-22T11:00:00+09:00", "location": "4-5 회의실", "attendees": [{"id": "456", "type": "member"}]}

  • Whole day: {"calendarId": "123", "subject": "휴가", "startedAt": "2026-10-22+09:00", "endedAt": "2026-10-23+09:00", "wholeDayFlag": true}

  • Weekly: add "recurrenceRule": {"frequency": "weekly", "byday": "MO", "timezoneName": "Asia/Seoul"}

Returns: {id} of the created event.

Input Schema

NameRequiredDescriptionDefault
ccNoCC (참조)
bodyNoEvent description
busyNotrue: busy (바쁨), false: free (한가함)
alarmsNoAlarms
endedAtYesEnd time (ISO 8601). Whole day: next day, e.g. 2026-10-23+09:00
subjectYesEvent title
locationNoLocation
attendeesNoAttendees (참석자). Use get-my-member-info, get-member-list to find member IDs
startedAtYesStart time (ISO 8601, e.g. 2026-10-22T10:00:00+09:00). Whole day: 2026-10-22+09:00
calendarIdYesCalendar ID to create the event in
visibilityNopublic (공개) or private (비공개)
wholeDayFlagNotrue for a whole day event
recurrenceRuleNoRecurrence rule for a recurring event

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=true, so the safety profile is covered; the description adds genuinely non-obvious behavior: the whole-day endedAt must be the *next* calendar day, the date-plus-offset format for all-day times versus full ISO-8601 for timed events, and that the call returns {id}. It lacks any note on permissions/scopes or rate limits, which is the main remaining gap for a mutation tool.

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?

Headers and labeled examples make it skimmable, and it front-loads the required fields plus the calendarId source before diving into formats. There is some duplication — the whole-day date format appears in the Time Format block, again in the examples, and again in the schema descriptions — but the redundancy is defensible for an error-prone field.

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?

For a 13-parameter nested tool with no output schema, the description covers the highest-risk areas an agent would otherwise get wrong: time encoding, all-day end-date semantics, attendee ID sourcing, and the {id} return. It stops short of explaining the optional blocks (cc, alarms with RFC 2445 triggers, visibility, busy), relying entirely on the schema for those.

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 baseline is 3, but the description earns above that by explaining the interaction between wholeDayFlag and the two timestamp formats, the {id,type} attendee shape with 'member' vs 'email' resolution paths, and by supplying a concrete recurrenceRule payload. Optional fields like cc, alarms, visibility, busy and body carry no added narrative beyond their schema descriptions.

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 and resource ("Create an event in a Dooray calendar") with the localized term 일정 등록, so there's no ambiguity about the operation. The create/update/delete distinction from siblings like update-calendar-event and delete-calendar-event is implied by the verb but never made explicit, which keeps it just below a 5.

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?

Explicitly names the prerequisite flow — get calendarId from get-calendar-list (with the default=true shortcut) and resolve attendee IDs via get-my-member-info, get-project-member-list, get-member-list. It gives clear context for how to use the tool but never states when to prefer update-calendar-event over creating a new event, so no true exclusions are offered.

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