Tools

Oggie exposes 29 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 a time 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 IDs or supported aliases. 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."
    },
    "time_max": {
      "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."
            }
          }
        }
      }
    },
    "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",
    "time_min",
    "time_max"
  ]
}

calendar_events_search

Search events by text in a time range. Defaults to compact results with exact calendar_id/event_id pairs for follow-up actions; use detail_level full for raw event details.

Input schema
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "query": {
      "type": "string"
    },
    "calendar_ids": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Calendar IDs or supported aliases. 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."
    },
    "time_max": {
      "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."
            }
          }
        }
      }
    },
    "max_results": {
      "type": "number",
      "description": "Maximum events to return."
    },
    "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",
    "time_min",
    "time_max"
  ]
}

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. All-day events use date-only start/end values with an exclusive end date.

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."
    },
    "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."
    },
    "all_day": {
      "type": "boolean",
      "description": "Set true for an all-day event with date-only start/end values. Defaults to false."
    },
    "timezone": {
      "type": "string",
      "description": "IANA timezone, for example Asia/Singapore."
    },
    "location": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "attendees": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "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",
    "start",
    "end",
    "timezone"
  ]
}

calendar_events_update

Update selected fields on an event. To create or change all-day timing, include all_day and both start/end values; the all-day end date is exclusive.

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."
        },
        "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."
        },
        "all_day": {
          "type": "boolean"
        },
        "attendees": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "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_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 a time 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 IDs or supported aliases. 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."
    },
    "time_max": {
      "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",
    "time_min",
    "time_max"
  ]
}

calendar_availability_find_slots

Find open slots in a time 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 IDs or supported aliases. 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."
    },
    "time_max": {
      "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."
            }
          }
        }
      }
    },
    "duration_minutes": {
      "type": "number"
    },
    "max_results": {
      "type": "number"
    }
  },
  "required": [
    "timezone",
    "time_min",
    "time_max",
    "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 IDs or supported aliases. 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 IDs or supported aliases. 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."
    },
    "time_max": {
      "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."
            }
          }
        }
      }
    },
    "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 IDs or supported aliases. 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."
    },
    "time_max": {
      "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."
            }
          }
        }
      }
    },
    "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"
    }
  }
}