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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "memory_ref": {
      "type": "string"
    }
  },
  "required": [
    "memory_ref"
  ]
}

preferences_get

Get user calendar preferences.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {}
}

preferences_update

Update user calendar preferences.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "limit": {
      "type": "number"
    }
  }
}

artifacts_purge_owned

Preview touched events associated with this connection for future purge support.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "connection_id": {
      "type": "string"
    },
    "preview": {
      "type": "boolean"
    }
  }
}