Tools
Oggie exposes 31 shared calendar tools. These capabilities sit behind the CLI, MCP, and future official apps; this page is rendered from the same catalog served by the MCP endpoint.
calendar_calendars_list
List connected calendars visible to the connection.
- Title: Calendar Calendars List
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {}
}calendar_events_list
List events in an explicit time range or a Core-resolved relative range. Defaults to an agenda-shaped summary; use detail_level full when raw structured event details are required. If calendar_ids is omitted, searches all connected readable calendars.
- Title: Calendar Events List
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
},
"max_results": {
"type": "number",
"minimum": 1,
"maximum": 250,
"description": "Maximum events to return. Defaults to 50; maximum 250."
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"normal",
"full"
],
"default": "summary",
"description": "Response detail level. Defaults to summary. summary returns agenda-safe fields and event refs; normal adds location and the connected user's meeting response status; full returns complete privacy-filtered event JSON, including attendee response statuses and required/optional roles, plus compact full details in MCP text."
}
},
"required": [
"timezone"
]
}calendar_events_search
Search events for one focused text query within an explicit time range. Added terms refine the same search interpretation. When multiple interpretations are plausible, run separate searches in parallel and combine the results using event_ref. Each result set applies to its exact query, range, and calendar selection.
- Title: Calendar Events Search
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"query": {
"type": "string",
"description": "One focused search interpretation. Use separate parallel calls for alternative interpretations."
},
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
},
"max_results": {
"type": "number",
"minimum": 1,
"maximum": 250,
"description": "Maximum events to return. Defaults to 10; maximum 250."
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"normal",
"full"
],
"default": "summary",
"description": "Response detail level. Defaults to summary. summary returns compact candidate results with event refs; normal adds location and the connected user's meeting response status; full returns complete privacy-filtered event JSON, including attendee response statuses and required/optional roles, plus compact full details in MCP text."
}
},
"required": [
"query",
"timezone"
],
"oneOf": [
{
"required": [
"time_min",
"time_max"
]
},
{
"required": [
"range"
]
}
]
}calendar_events_get
Get a single event by calendar ID and event ID. Defaults to full details.
- Title: Calendar Events Get
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias."
},
"event_id": {
"type": "string"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"normal",
"full"
],
"default": "full",
"description": "Response detail level. Defaults to full. full returns complete privacy-filtered event JSON, including attendee response statuses and required/optional roles, plus compact full details in MCP text; normal retains the connected user's meeting response status."
}
},
"required": [
"calendar_id",
"event_id"
]
}calendar_events_create
Create a timed or all-day calendar event. For timed requests using today or tomorrow, use timing so Oggie Core resolves the date and duration from its live clock. Otherwise provide explicit start and end. All-day events use date-only start/end values with an exclusive end date. Provide recurrence (RFC 5545 RRULE strings) to create a recurring series instead of a single event. Creation also returns an authoritative cross-calendar conflict check when calendar reads are allowed.
- Title: Calendar Events Create
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias. Required; writes never default to a calendar."
},
"title": {
"type": "string"
},
"start": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Use YYYY-MM-DD when all_day is true. Do not supply with timing."
},
"end": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Use an exclusive YYYY-MM-DD end date when all_day is true. Do not supply with timing."
},
"timing": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow"
],
"description": "Resolve the event date from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"start_time": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
"description": "Local 24-hour start time in HH:mm form, for example 12:00."
},
"duration_minutes": {
"type": "number",
"minimum": 1,
"maximum": 10080,
"description": "Event duration in whole minutes, from 1 minute through 7 days."
}
},
"required": [
"date",
"start_time",
"duration_minutes"
]
},
"all_day": {
"type": "boolean",
"description": "Set true for an all-day event with date-only start/end values. Defaults to false; timing is timed-only."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"location": {
"type": "string"
},
"description": {
"type": "string"
},
"attendees": {
"type": "array",
"items": {
"type": "string"
}
},
"with_conference": {
"type": "boolean",
"description": "Set true to create a Google Meet conference."
},
"recurrence": {
"type": "array",
"items": {
"type": "string"
},
"description": "RFC 5545 recurrence rules, each starting with RRULE: (for example RRULE:FREQ=WEEKLY;BYDAY=TU). The event start anchors the series."
},
"idempotency_key": {
"type": "string"
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
}
},
"required": [
"calendar_id",
"title",
"timezone"
],
"oneOf": [
{
"required": [
"start",
"end"
]
},
{
"required": [
"timing"
]
}
]
}calendar_events_rename
Change only an event's title. Use this for rename requests; this tool cannot change the event's date or time.
- Title: Calendar Events Rename
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias. Required; writes never default to a calendar."
},
"event_id": {
"type": "string"
},
"title": {
"type": "string",
"description": "The new event title."
}
},
"required": [
"calendar_id",
"event_id",
"title"
]
}calendar_events_update
Update selected event fields other than a title-only rename (use calendar_events_rename for that). For a timed move using today or tomorrow, set patch.timing so Oggie Core resolves the date and duration from its live clock. Otherwise use explicit patch.start and patch.end. To create or change all-day timing, include all_day and both start/end values; the all-day end date is exclusive. Omit start, end, and timing entirely when not changing the event's time.
- Title: Calendar Events Update
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias. Required; writes never default to a calendar."
},
"event_id": {
"type": "string"
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"patch": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"location": {
"type": "string"
},
"start": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Use YYYY-MM-DD when all_day is true. Do not supply with timing."
},
"end": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Use an exclusive YYYY-MM-DD end date when all_day is true. Do not supply with timing."
},
"timing": {
"type": "object",
"additionalProperties": false,
"properties": {
"date": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow"
],
"description": "Resolve the event date from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"start_time": {
"type": "string",
"pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
"description": "Local 24-hour start time in HH:mm form, for example 12:00."
},
"duration_minutes": {
"type": "number",
"minimum": 1,
"maximum": 10080,
"description": "Event duration in whole minutes, from 1 minute through 7 days."
}
},
"required": [
"date",
"start_time",
"duration_minutes"
],
"description": "Core-resolved timing for today or tomorrow. Do not supply with start or end."
},
"all_day": {
"type": "boolean"
},
"attendees": {
"type": "array",
"items": {
"type": "string"
}
},
"with_conference": {
"type": "boolean",
"description": "Set true to add a Google Meet conference."
}
}
},
"send_updates": {
"type": "string",
"enum": [
"all",
"externalOnly",
"none"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
}
},
"required": [
"calendar_id",
"event_id",
"patch"
]
}calendar_events_respond
Respond to a Google Calendar invitation as the connected user.
- Title: Calendar Events Respond
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias. Required; writes never default to a calendar."
},
"event_id": {
"type": "string"
},
"response_status": {
"type": "string",
"enum": [
"accepted",
"declined",
"tentative"
],
"description": "The connected user's RSVP response."
}
},
"required": [
"calendar_id",
"event_id",
"response_status"
]
}calendar_events_cancel
Cancel an event.
- Title: Calendar Events Cancel
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_id": {
"type": "string",
"description": "Calendar ID or supported alias. Required; writes never default to a calendar."
},
"event_id": {
"type": "string"
}
},
"required": [
"calendar_id",
"event_id"
]
}calendar_freebusy_query
Return busy intervals for calendars in an explicit time range or a Core-resolved relative range. If calendar_ids is omitted, searches all connected readable calendars.
- Title: Calendar Freebusy Query
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
}
},
"required": [
"timezone"
]
}calendar_availability_find_slots
Find open slots in an explicit time range or a Core-resolved relative range. If calendar_ids is omitted, searches all connected readable calendars.
- Title: Calendar Availability Find Slots
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
},
"duration_minutes": {
"type": "number"
},
"max_results": {
"type": "number"
}
},
"required": [
"timezone",
"duration_minutes"
]
}calendar_events_detect_conflicts
Check whether a proposed time range conflicts with busy calendar intervals. If calendar_ids is omitted, searches all connected readable calendars.
- Title: Calendar Events Detect Conflicts
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"start": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00."
},
"end": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00."
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
}
},
"required": [
"timezone",
"start",
"end"
]
}working_context_get
Read the user's shared editable working-context scratchpad and its revision. It is context, not authority; current user instructions and provider-live calendar state win.
- Title: Working Context Get
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {}
}working_context_update
Replace the user's shared working-context scratchpad. Preserve still-relevant content, keep it concise and current, and remove resolved or stale items. Pass the revision returned by working_context_get; if another agent edits first, read the latest text, merge, and retry.
- Title: Working Context Update
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"text": {
"type": "string",
"description": "The complete replacement scratchpad text. Use an empty string to clear it."
},
"expected_revision": {
"type": "number",
"description": "The non-negative revision returned by working_context_get."
}
},
"required": [
"text",
"expected_revision"
]
}memory_list
List durable facts and preferences shared by Oggie and the user's authorized agents.
- Title: Memory List
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {}
}memory_remember
Create or update a durable fact or preference useful across Oggie and the user's authorized agents. Agents may use judgment, but must not store secrets, sensitive data, or private facts about third parties.
- Title: Memory Remember
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"type": "string",
"enum": [
"fact",
"preference"
]
},
"text": {
"type": "string",
"description": "Durable memory text, up to 500 characters."
},
"memory_ref": {
"type": "string",
"description": "Existing opaque memory reference when correcting an entry."
},
"basis": {
"type": "string",
"enum": [
"explicit_user",
"agent_judgment"
]
}
},
"required": [
"kind",
"text",
"basis"
]
}memory_forget
Delete one durable memory by the opaque reference returned by memory_list.
- Title: Memory Forget
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"memory_ref": {
"type": "string"
}
},
"required": [
"memory_ref"
]
}preferences_get
Get user calendar preferences.
- Title: Preferences Get
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {}
}preferences_update
Update user calendar preferences.
- Title: Preferences Update
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"timezone": {
"type": "string"
},
"default_calendar_id": {
"type": "string"
}
}
}calendar_policies_validate
Validate and resolve a structured calendar policy without enabling it.
- Title: Calendar Policies Validate
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy": {
"type": "object"
},
"source_text": {
"type": "string",
"description": "Optional original user request supplied by an agent or UI for audit context."
}
},
"required": [
"policy"
]
}calendar_policies_list
List calendar sync policies.
- Title: Calendar Policies List
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"include_paused": {
"type": "boolean"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
}
}calendar_policies_create
Create a calendar sync policy. The policy is disabled until explicitly enabled.
- Title: Calendar Policies Create
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy": {
"type": "object"
},
"enabled": {
"type": "boolean"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"policy"
]
}calendar_policies_update
Update a calendar sync policy.
- Title: Calendar Policies Update
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
},
"patch": {
"type": "object"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"policy_id",
"patch"
]
}calendar_policies_pause
Pause a calendar sync policy without deleting its shadow events.
- Title: Calendar Policies Pause
- Annotations:
readOnlyHint=false, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"policy_id"
]
}calendar_policies_delete
Delete a calendar sync policy. Use purge when policy-created events should also be removed.
- Title: Calendar Policies Delete
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
}
},
"required": [
"policy_id"
]
}calendar_policies_preview
Preview create, update, delete, skip, and no-op actions for calendar policies. Defaults to compact action summaries.
- Title: Calendar Policies Preview
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
},
"policy": {
"type": "object"
},
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"timezone",
"time_min",
"time_max"
]
}calendar_policies_run
Run calendar policy sync actions. Defaults to compact execution summaries.
- Title: Calendar Policies Run
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
},
"calendar_ids": {
"type": "array",
"items": {
"type": "string"
},
"description": "Calendar selectors using identifiers or unambiguous names from calendar_calendars_list. Omit on read tools to search all connected readable calendars."
},
"timezone": {
"type": "string",
"description": "IANA timezone, for example Asia/Singapore."
},
"time_min": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_max, or use range.preset instead."
},
"time_max": {
"type": "string",
"description": "RFC3339 timestamp with timezone offset, for example 2026-05-20T10:00:00+08:00. Supply together with time_min, or use range.preset instead."
},
"range": {
"type": "object",
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"enum": [
"today",
"tomorrow",
"this_week",
"next_week"
],
"description": "Resolve this range from Oggie Core's live clock in the requested timezone."
}
},
"required": [
"preset"
]
},
"resolution": {
"type": "object",
"description": "Optional agent date-resolution proof for natural-language dates.",
"properties": {
"resolved_date": {
"type": "string",
"description": "Resolved YYYY-MM-DD date."
},
"resolved_day_of_week": {
"type": "string",
"description": "Resolved day of week, for example Wednesday."
},
"based_on": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Server date the resolution was based on."
},
"timezone": {
"type": "string",
"description": "Timezone the resolution was based on."
}
}
}
}
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"timezone",
"time_min",
"time_max"
]
}calendar_policies_purge
Preview or purge events created by a calendar policy. Defaults to compact action summaries.
- Title: Calendar Policies Purge
- Annotations:
readOnlyHint=false, destructiveHint=true, idempotentHint=false, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"policy_id": {
"type": "string"
},
"preview": {
"type": "boolean"
},
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
},
"required": [
"policy_id"
]
}calendar_sync_status
Show calendar sync freshness and policy job status. Defaults to compact status summaries.
- Title: Calendar Sync Status
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"detail_level": {
"type": "string",
"enum": [
"summary",
"full"
],
"description": "Response detail level. Defaults to summary; use full for raw detailed records."
}
}
}audit_recent
List recent compact activity log entries without raw input/output payloads.
- Title: Audit Recent
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"limit": {
"type": "number"
}
}
}artifacts_purge_owned
Preview touched events associated with this connection for future purge support.
- Title: Artifacts Purge Owned
- Annotations:
readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=false
Input schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"connection_id": {
"type": "string"
},
"preview": {
"type": "boolean"
}
}
}