Skip to main content
Glama
OurFamilyWizard MCP

OurFamilyWizard MCP

by chrischall

ofw_list_events

Read-only

List OurFamilyWizard calendar events, custody handoffs, and daily custody grids for a date range; filter by item types or export results as iCalendar text.

Instructions

List OurFamilyWizard calendar items in a date range: events, connected (subscribed outside-calendar) events, custody handoffs (TRANSITION) and the per-day custody grid (guardianData, type SCHEDULE). Pass types to keep only some of them — the custody grid is most of a response's weight, so leave SCHEDULE out unless you need who-has-the-children per day. Times are OFW wall clock in the account's zone, rendered with an offset in timeZone (default: the server's DISPLAY_TZ). format:"ics" returns an iCalendar (.ics) text you can show or save — events, all-day events, and each custody period as a "Parenting time" event — after a short JSON summary of what was included and what was left out. To get a file or download link instead, use ofw_save_calendar_ics.

Input Schema

NameRequiredDescriptionDefault
viewNofull (default): the response `format` asks for. brief: one line per calendar item (the custody grid is never included), inside an untrusted-data envelope ({untrusted_content, note, data: string[]}) — title — start (ISO-8601, a bare date for all-day items) — event|all day|outside calendar|handoff; a title starting with "-- " or "\" gains one leading "\"; an empty range answers "-- none". Overrides format and detailed
typesNoKeep only these: EVENT, CONNECTED_EVENT (from a subscribed outside calendar), TRANSITION (custody handoffs; in .ics they become "Parenting time" periods), SCHEDULE (the per-day custody grid, JSON only). Default: everything
formatNojson (default): the OFW payload. ics: a summary block, then the iCalendar text
endDateYesEnd date YYYY-MM-DD
detailedNoReturn full event details (default false). Ignored for format:"ics", which always reads the detailed calendar
timeZoneNoIANA zone of the user's OFW account, e.g. America/Chicago. OFW reports wall-clock times with no zone; this is the zone they are read and shown in. Default: the server's DISPLAY_TZ
startDateYesStart date YYYY-MM-DD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.26.1
    • addedInput schema / properties / view
      Added value: +{
      +  "description": "full (default): the response `format` asks for. brief: one line per calendar item (the custody grid is never included), inside an untrusted-data envelope ({untrusted_content, note, data: string[]}) — title — start (ISO-8601, a bare date for all-day items) — event|all day|outside calendar|handoff; a title starting with \"-- \" or \"\\\" gains one leading \"\\\"; an empty range answers \"-- none\". Overrides format and detailed",
      +  "enum": [
      +    "full",
      +    "brief"
      +  ],
      +  "type": "string"
      +}
  2. Changed4 schema fields changedv2.23.0
    • changedInput schema / properties / detailed / description
      Previous value: -"Return full event details (default false)"New value: +"Return full event details (default false). Ignored for format:\"ics\", which always reads the detailed calendar"
    • addedInput schema / properties / format
      Added value: +{
      +  "description": "json (default): the OFW payload. ics: a summary block, then the iCalendar text",
      +  "enum": [
      +    "json",
      +    "ics"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / timeZone
      Added value: +{
      +  "description": "IANA zone of the user's OFW account, e.g. America/Chicago. OFW reports wall-clock times with no zone; this is the zone they are read and shown in. Default: the server's DISPLAY_TZ",
      +  "type": "string"
      +}
    • addedInput schema / properties / types
      Added value: +{
      +  "description": "Keep only these: EVENT, CONNECTED_EVENT (from a subscribed outside calendar), TRANSITION (custody handoffs; in .ics they become \"Parenting time\" periods), SCHEDULE (the per-day custody grid, JSON only). Default: everything",
      +  "items": {
      +    "enum": [
      +      "EVENT",
      +      "CONNECTED_EVENT",
      +      "TRANSITION",
      +      "SCHEDULE"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. Changed1 schema field changedv2.17.0
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  4. First observedv2.8.0

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/openWorld annotations, the description discloses response-weight behavior (the custody grid is most of a response's weight), time semantics (OFW wall-clock times rendered with an offset per `timeZone`, defaulting to the server's DISPLAY_TZ), and format-specific behavior (ics returns a short JSON summary of what was included/excluded, then iCalendar text, with each custody period emitted as a 'Parenting time' event). This is the kind of context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the resource and scope, then ordered by decision relevance: what to include, then format, then the sibling alternative. It is dense but nearly every clause carries information; the em-dash-chained single paragraph is slightly harder to scan than a bulleted structure would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description takes on return-value explanation and does so for the ics path (summary block + iCalendar text) and the custody-grid weight. It is a 7-parameter read tool with sensible coverage of the high-value parameters, though the shape of the default JSON payload is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains why `types` matters (SCHEDULE dominates payload size), how `timeZone` is interpreted (OFW reports zoneless wall clock, this is the zone used to read and show it), and what `format:"ics"` actually changes about the output. The `view` and `detailed` parameters are only explained in the schema, not the description, keeping this below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('List OurFamilyWizard calendar items in a date range') and then enumerates exactly which item kinds are covered — events, connected/subscribed events, custody handoffs (TRANSITION), and the per-day custody grid (SCHEDULE). An agent can distinguish this from every calendar sibling (ofw_create_event, ofw_update_event, ofw_save_calendar_ics) without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the selection rule explicitly ('Pass `types` to keep only some of them') and gives a concrete exclusion with rationale ('leave SCHEDULE out unless you need who-has-the-children per day'). It also routes the agent to the right alternative for a different need: 'To get a file or download link instead, use ofw_save_calendar_ics.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.