Skip to main content
Glama
OurFamilyWizard MCP

OurFamilyWizard MCP

by chrischall

ofw_save_calendar_ics

Save an OurFamilyWizard date range as an importable .ics file with parenting-time events, so you can add it to Google, Apple, or Outlook calendars.

Instructions

Save an OurFamilyWizard date range as an iCalendar (.ics) file the user can import into Google, Apple or Outlook calendar — events, all-day events, and each custody period as a "Parenting time" event (OFW's own export leaves the parenting schedule out). Same filters as ofw_list_events. On a hosted connector the file is uploaded and you get a private download link that expires (default 1 hour); locally it is written inside the attachments directory (OFW_ATTACHMENTS_DIR, default ~/Downloads/ofw-mcp) and you get its path. Never overwrites an existing file. The file is a snapshot: it does not update when OFW changes, and re-importing a later export updates events in place (stable UIDs).

Input Schema

NameRequiredDescriptionDefault
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
saveToNoLocal installs only: path or directory (trailing /) INSIDE the attachments directory; relative paths resolve against it. Default: <attachments dir>/ofw-calendar-<start>_<end>-<time>.ics. Ignored on a hosted connector
endDateYesEnd date YYYY-MM-DD
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
linkMinutesNoHosted connector only: how long the download link works, in minutes (default 60, max 1440)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.23.0

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description adds far more: no overwrite of existing files, hosted branch uploads and returns an expiring private link (default 1 hour), local branch writes under OFW_ATTACHMENTS_DIR with a default path, and the output is a snapshot that does not track OFW changes.

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 verb and resource in the first clause, and every subsequent sentence carries real information (parenting-time inclusion, connector branching, no-overwrite, snapshot semantics). The single dense paragraph is long and the hosted/local details are interleaved, so structure could be tighter.

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

Completeness5/5

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

There is no output schema, and the description compensates by describing both possible return values — a private expiring download link on hosted, a filesystem path locally. Combined with write behavior, defaults, and re-import semantics, an agent has everything needed to call it and interpret the result.

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 ties the filter parameters to ofw_list_events ('Same filters as ofw_list_events') and separates hosted-only (linkMinutes) from local-only (saveTo) parameters, which the schema only states per-field. It still does not explain how types interact with the .ics output beyond the schema's own notes.

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?

States a specific verb and resource ('Save an OurFamilyWizard date range as an iCalendar (.ics) file') and names exactly what goes into it (events, all-day events, custody periods as 'Parenting time'). It also differentiates from a sibling by noting 'Same filters as ofw_list_events' and from OFW's native export, which 'leaves the parenting schedule out'.

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

Usage Guidelines4/5

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

Gives clear context: which filter tool it mirrors (ofw_list_events), what happens on a hosted vs local install, and when to re-import (later exports update in place via stable UIDs). It does not state when to avoid this tool or when the JSON-listing alternative is preferable, so it falls short of a full when/when-not treatment.

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