Skip To Main Content
All modules

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_findFindthrough vritto_find

Read Calendar: search Vritto events by title (query) in a start/end range (at most 93 days, recurring events expanded per occurrence), one event by id, view 'feed' for everything on the calendar, or a conflict check with temporal. For what's on a day or week, use calendar_getDayAgenda.

Note: Pass start/end with the user's UTC offset (at most 93 days). view 'feed' adds connected calendars and other modules' dates; temporal checks a time for conflicts.

FieldTypeDescription
idstringReturn just this event.
eventIdstringOlder name for id.
viewone of events, feed, google'events' (default) Vritto's own events; 'feed' everything on the calendar: connected calendars, other modules' dates, sources, colors and hidden layers; 'google' the cached Google Calendar events only.
startstringRange start with the user's offset. ALWAYS pass start/end when the question concerns a period; without them the range is the week before and the twelve after now.
endstringRange end; at most 93 days after start.
querystringText to match in an event's title, notes or location.
calendarIdslist of stringOptional calendar IDs to restrict the search.
temporalobjectA proposed time to check for conflicts with busy events, instead of a list.
excludeEventIdstringWith temporal: the event being rescheduled, ignored.
sourceobjectEvents another module's record created (a task or project).
source.moduleId*stringSource module ID, e.g. tasks.
source.entityId*stringSource entity ID within that module.
limitintegerMax events (default 250).
Example input
{
  "start": "2026-10-01T00:00:00-05:00",
  "end": "2026-11-01T00:00:00-05:00"
}
calendar_getDayAgendaFindthrough vritto_find

What's on the user's plate for a day or a few days (max 14): scheduled items, deadlines, all-day items and free time across every calendar and module; the one read for agenda questions. Call a day clear only when its clear flag is true.

FieldTypeDescription
start*stringLocal start of the first day with the user's UTC offset, e.g. 2026-10-05T00:00:00+05:30.
end*stringLocal end, exclusive, e.g. 2026-10-06T00:00:00+05:30 for one day.
calendar_addCreatethrough vritto_create

Add one Vritto calendar event: title, kind, calendarId ("personal" or "focus"), temporal, availability and visibility; a timed temporal with an IANA timeZone for a scheduled meeting, 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.

FieldTypeDescription
recordobjectCalendar event payload.
record.idstringOptional event ID; generated when omitted.
record.title*stringEvent title.
record.kind*one of event, time_block, availability, milestoneCalendar event kind.
record.calendarId*one of personal, focusNative Vritto calendar the event belongs to.
record.temporal*objectTimed range with IANA time zone, or all-day date range.
record.availability*one of busy, freeWhether the event blocks time.
record.visibility*one of default, public, privateCalendar visibility.
record.descriptionstringOptional event notes.
record.locationobjectOptional event location; provide at least one of placeKey, label, or url.
record.recurrenceobjectOptional recurrence rule; both rrule and excludedStarts are required when present.
record.contactIdslist of stringRelated person IDs; each must be an existing person.
record.reminderslist of objectNotification reminders.
record.idempotencyKeystringStable key to avoid duplicate creation.
eventobjectOlder form of record (calendar_createCalendarEvent).
event.titlestring
Example input
{
  "record": {
    "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_changeUpdatethrough vritto_update

Change one Vritto event by record.id: sent fields change, others are kept (temporal is replaced whole). Retime with temporal after a conflict check. type 'layer' shows or hides a calendar layer; type 'calendar' recolors the personal or focus calendar.

Note: Omitted fields are kept; temporal is replaced whole. Write a recurring event's seriesId, never an occurrence id.

FieldTypeDescription
typeone of event, layer, calendar'event' (default); 'layer' a layer's visibility (layer, visible); 'calendar' a Vritto calendar's color (sourceId, color).
recordobjectThe event's id plus the fields to change; omitted fields are kept, temporal is replaced whole.
record.titlestringEvent title.
record.kindone of event, time_block, availability, milestoneCalendar event kind.
record.calendarIdone of personal, focusNative Vritto calendar the event belongs to.
record.temporalobjectTimed range with IANA time zone, or all-day date range.
record.availabilityone of busy, freeWhether the event blocks time.
record.visibilityone of default, public, privateCalendar visibility.
record.descriptionstringOptional event notes.
record.locationobjectOptional event location; provide at least one of placeKey, label, or url.
record.recurrenceobjectOptional recurrence rule; both rrule and excludedStarts are required when present.
record.contactIdslist of stringRelated person IDs; each must be an existing person.
record.reminderslist of objectNotification reminders.
record.idempotencyKeystringStable key to avoid duplicate creation.
record.id*stringCalendar event ID from calendar_find, never invented; a recurring event's seriesId, never an occurrence id containing "__".
expectedRevisionintegerOptional revision guard; the write is rejected if the stored revision differs.
layerstringType 'layer': the layer or source ID from the feed.
visiblebooleanType 'layer': true shows the layer, false hides it.
sourceIdone of personal, focusType 'calendar': the Vritto calendar to recolor.
colorone of #2E73E8, #5B5BD6, #8A4FD8, #C052D1, #E5484D, #E0653C, #C98A1E, #1F9E63, #0E9C8B, #3AAFB9, #6E7480, #8B6F47One of the supported Vritto calendar palette colors.
eventIdstringOlder form (calendar_patchCalendarEvent): the event, with patch.
patchobjectOlder form, with eventId: the fields to change.
patch.titlestring
eventobjectOlder form (calendar_updateCalendarEvent): a whole replacement event with its id.
event.idstringVritto record ID.
Example input
{
  "record": {
    "id": "evt_coffee",
    "title": "Coffee with Priya and Sam"
  }
}
calendar_removeDeletethrough vritto_delete

Delete one Vritto calendar event by id, including its reminders. Only for explicit deletion requests; a Google-synced event is removed with calendar_deleteGoogleCalendarEvent.

FieldTypeDescription
idstringThe event to delete.
eventIdstringOlder name for id.
expectedRevisionintegerOptional 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.