---
title: WebMCP Tools
description: Reference for the six WebMCP calendar tools FullCalendar WebMCP registers, including inputs, returns, and browser registration lifecycle.
---

FullCalendar WebMCP registers six tools on the browser’s WebMCP model context (`document.modelContext`).

For authentication boundaries, authorization, capability exposure, trust annotations, and data minimization, see [Security](/integrations/fullcalendar/concepts/security).

For agent workflow patterns, relative-date handling, and tool-selection guidance, see [Agent tool workflows](/integrations/fullcalendar/concepts/agent-tools).

## Tools

### `calendar_get_context`

Returns current time, timezones, and the active viewport. Agents should call this before resolving relative dates (“tomorrow at 2pm”).

**Input:** `{}`

**Returns:**

```json
{
  "now": "2026-09-01T14:30:00.000Z",
  "browserTimeZone": "America/Denver",
  "fullCalendarTimeZone": "local",
  "view": "dayGridMonth",
  "visibleRange": {
    "start": "2026-08-30T06:00:00.000Z",
    "end": "2026-10-04T06:00:00.000Z"
  }
}
```

### `calendar_list_events`

Lists persisted events, optionally filtered by range or title.

**Input:** optional `start`, `end`, `text`

**Returns:** `{ "events": CalendarEvent[] }` (may include host `metadata`)

### `calendar_get_event`

Fetches one event by id.

**Input:** `id` (required)

**Returns:** `{ "event": CalendarEvent | null }`

### `calendar_create_event`

Creates and persists an event.

**Input:** `title`, `start` (ISO 8601 with offset), optional `end`, optional `allDay`

**Returns:** `{ "event": CalendarEvent }`

Write schemas reject `metadata`.

### `calendar_update_event`

Updates fields on an existing event. At least one of `title`, `start`, `end`, `allDay` is required.

**Returns:** `{ "event": CalendarEvent }`

Write schemas reject `metadata`. Host-owned metadata is preserved by your repository across core-field updates.

### `calendar_delete_event`

Permanently deletes an event by id.

**Returns:** `{ "deleted": true, "event": CalendarEvent }` — `event` is a snapshot read immediately before removal (title, times, optional metadata preserved for agent confirmation).

## Lifecycle

On mount, [`useFullCalendarWebMCP`](/integrations/fullcalendar/reference/use-fullcalendar-webmcp) registers the tools (and polls briefly if the WebMCP runtime appears late). On unmount, it unregisters them. React Strict Mode double-mount is handled cleanly.

Optional `capabilities` limit which tools register — see [Security](/integrations/fullcalendar/concepts/security#capabilities).

Verify with the [Testing](/integrations/fullcalendar/guides/testing) checklist.
