Calendar
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Calendar Eventcalendar_event
An event on the user's Vritto calendar, plus the unified feed that includes other sources.
calendar_checkCalendarConflictsFindthrough vritto_findCheck whether a proposed event time conflicts with existing busy events. Call before creating or retiming a busy timed event; pass excludeEventId when rescheduling an existing event.
| Field | Type | Description |
|---|---|---|
| temporal* | object | Timed range with IANA time zone, or all-day date range. |
| excludeEventId | string | Event ID to ignore when rescheduling. |
| calendarIds | list of string | Optional calendar IDs to restrict the search. |
calendar_findCalendarEventsBySourceFindthrough vritto_findFind native calendar events created by another Vritto module entity (e.g. a task or project) via their source binding.
| Field | Type | Description |
|---|---|---|
| source* | object | |
| source.moduleId* | string | Source module ID, e.g. tasks. |
| source.entityId* | string | Source entity ID within that module. |
| limit | integer | Max records to return; defaults to 25. |
calendar_getCalendarEventFindthrough vritto_findFetch one native Vritto calendar event by ID. Use only when the event ID is already known.
| Field | Type | Description |
|---|---|---|
| eventId* | string | Calendar event ID. |
calendar_getCalendarFeedFindthrough vritto_findRead the unified calendar feed for a date-time range (max 93 days): native events, Google overlay events, module projections, sources, colors, and hidden layers. Preferred read for agenda, day, week, and month questions.
| Field | Type | Description |
|---|---|---|
| start* | string | Range start. |
| end* | string | Range end; at most 93 days after start. |
calendar_listGoogleCalendarEventsFindthrough vritto_findList cached Google Calendar overlay events and sources in a date-time range (max 93 days). Prefer getCalendarFeed for combined agenda reads.
| Field | Type | Description |
|---|---|---|
| start* | string | Range start. |
| end* | string | Range end; at most 93 days after start. |
calendar_queryCalendarEventsFindthrough vritto_findList native Vritto calendar events overlapping a date-time range (max 93 days), with recurring events expanded into per-occurrence rows (see guide: seriesId/occurrenceKey). Use getCalendarFeed instead for agenda reads that should include Google and module projections.
| Field | Type | Description |
|---|---|---|
| start* | string | Range start. |
| end* | string | Range end; at most 93 days after start. |
| calendarIds | list of string | Optional calendar IDs to restrict the search. |
| limit | integer | Max records to return; defaults to 250. |
calendar_createCalendarEventCreatethrough vritto_createCreate one Vritto calendar event. Requires title, kind, calendarId ("personal" or "focus"), temporal, availability, and visibility; use a timed temporal with an IANA timeZone for scheduled meetings or an all_day range (exclusive endDate) for day events.
Note: Timed events need start and end with the user's UTC offset; vritto_describe gives their timezone.
| Field | Type | Description |
|---|---|---|
| event* | object | Calendar event payload. |
| event.id | string | Optional event ID; generated when omitted. |
| event.title* | string | Event title. |
| event.kind* | one of event, time_block, availability, milestone | Calendar event kind. |
| event.calendarId* | one of personal, focus | Native Vritto calendar the event belongs to. |
| event.temporal* | object | Timed range with IANA time zone, or all-day date range. |
| event.availability* | one of busy, free | Whether the event blocks time. |
| event.visibility* | one of default, public, private | Calendar visibility. |
| event.description | string | Optional event notes. |
| event.location | object | Optional event location; provide at least one of placeKey, label, or url. |
| event.recurrence | object | Optional recurrence rule; both rrule and excludedStarts are required when present. |
| event.contactIds | list of string | Related person IDs; each must be an existing person. |
| event.reminders | list of object | Notification reminders. |
| event.idempotencyKey | string | Stable key to avoid duplicate creation. |
Example input
{
"event": {
"title": "Coffee with Priya",
"kind": "event",
"calendarId": "personal",
"temporal": {
"mode": "timed",
"start": "2026-10-03T10:00:00-05:00",
"end": "2026-10-03T11:00:00-05:00",
"timeZone": "America/Chicago"
},
"availability": "busy",
"visibility": "default"
}
}calendar_patchCalendarEventUpdatethrough vritto_updatePatch an existing Vritto calendar event, e.g. { eventId, patch: { title: "Updated title" } }. Use checkCalendarConflicts first for timed busy events when changing the time.
| Field | Type | Description |
|---|---|---|
| eventId* | string | Calendar event ID. |
| patch* | object | Calendar event fields to change; omitted fields are kept. |
| patch.title | string | Event title. |
| patch.kind | one of event, time_block, availability, milestone | Calendar event kind. |
| patch.calendarId | one of personal, focus | Native Vritto calendar the event belongs to. |
| patch.temporal | object | Timed range with IANA time zone, or all-day date range. |
| patch.availability | one of busy, free | Whether the event blocks time. |
| patch.visibility | one of default, public, private | Calendar visibility. |
| patch.description | string | Optional event notes. |
| patch.location | object | Optional event location; provide at least one of placeKey, label, or url. |
| patch.recurrence | object | Optional recurrence rule; both rrule and excludedStarts are required when present. |
| patch.contactIds | list of string | Related person IDs; each must be an existing person. |
| patch.reminders | list of object | Notification reminders. |
| patch.idempotencyKey | string | Stable key to avoid duplicate creation. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Example input
{
"eventId": "evt_coffee",
"patch": {
"title": "Coffee with Priya and Sam"
}
}calendar_deleteCalendarEventDeletethrough vritto_deleteDelete one native Vritto calendar event by ID, including its reminders. Use only for explicit deletion requests.
| Field | Type | Description |
|---|---|---|
| eventId* | string | Calendar event ID. |
| expectedRevision | integer | Optional revision guard; the write is rejected if the stored revision differs. |
Kept in the Vritto app
calendar_googleCalendarAuth: Connects, syncs, or disconnects another account.calendar_syncGoogleCalendar: Connects, syncs, or disconnects another account.calendar_updateGoogleCalendarSelection: Connects, syncs, or disconnects another account.calendar_saveGoogleCalendarEvent: Reaches outside Vritto: another service, a device, or the public web.calendar_deleteGoogleCalendarEvent: Reaches outside Vritto: another service, a device, or the public web.calendar_updateGoogleCalendarColor: Changes or reads app-wide settings, which belong in the app.calendar_listCalendarConnections: Connects, syncs, or disconnects another account.calendar_disconnectGoogleCalendar: Connects, syncs, or disconnects another account.calendar_setCalendarLayerVisibility: Changes or reads app-wide settings, which belong in the app.calendar_updateVrittoCalendarColor: Changes or reads app-wide settings, which belong in the app.calendar_updateCalendarEvent: Replaces a whole record and clears omitted fields; the merge operation is on MCP instead.