Skip to main content
Glama

Create Calendar Event

create_calendar_event
Destructive

Create a new calendar event and return the created event object, including its id, start_at, end_at, and workflow_state.

Instructions

Create a new calendar event and return the created event object, including its id, start_at, end_at, and workflow_state. context_code can target any Canvas context the caller has permission to create events in — a course (course_123), group, user, or account context, not only courses, despite the course-shaped example. Each call creates a new event; calling it again with the same title and times does not update anything, it adds a duplicate, so check list_calendar_events for what already exists and use update_calendar_event with the returned id to change this event afterward. The event is saved and immediately part of that context's calendar — there is no separate draft or publish step. Requires permission to create events in the target context; Canvas rejects the call otherwise.

Input Schema

NameRequiredDescriptionDefault
titleYesEvent title
end_atNoEnd time in ISO 8601 format. Omit for all-day events.
start_atYesStart time in ISO 8601 format, e.g. "2026-05-01T10:00:00Z"
descriptionNoEvent description (HTML allowed)
context_codeYesCanvas context code, e.g. "course_123" for a course event
location_nameNoLocation name

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.18.11
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observedv1.18.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses that the event is saved immediately with no draft or publish step, that duplicates are created on repeat calls, and that creating in the target context requires permission. These are meaningful behavioral details for a mutation tool, and they are consistent with the mutation-oriented annotation profile.

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 front-loaded with the core action and return value, then adds only decision-relevant details about context targeting, duplicate behavior, update alternatives, persistence, and permissions. Despite its length, each sentence carries useful information for correct invocation.

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?

There is no output schema, but the description names the key returned fields (`id`, `start_at`, `end_at`, `workflow_state`). It also covers permissions, duplicate behavior, persistence, and the relationship to sibling tools, leaving no important operational gap for this create operation.

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 schema already explains all six parameters. The description adds meaningful semantic clarification for `context_code`, noting that it can target a course, group, user, or account context rather than only courses, which goes beyond the schema's course-shaped example.

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 states a specific verb and resource ('Create a new calendar event') and explicitly says it returns the created event object with named fields. It also distinguishes creation from updating and from listing existing events, so an agent can select it confidently.

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?

It explicitly says to check `list_calendar_events` first and to use `update_calendar_event` with the returned `id` when changing an existing event. It also warns that repeating the same create call produces a duplicate rather than an update, which gives clear when-to-use and when-not-to-use guidance.

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

Deploy Server

Other Tools