Server version 0.1.0 · 20 tools
Quok is a household organiser: one family's shared calendar, task lists and shopping lists. Every tool here operates on the single family this connection is bound to, and on data the whole household shares - the events, lists, tasks and shopping items they keep together in Quok, rather than any one member's private calendar or notes.
server_inforead-onlyServer info
Returns Quok MCP server status, version, and the family/member this connection is bound to. Use to verify connectivity and which environment (staging vs prod) you are hitting.
No parameters.
list_family_eventsread-onlyList family events
List this Quok family's shared calendar events (appointments, bills, chores, birthdays, etc.) within a time window. Recurring events are expanded: one entry per occurrence falling inside the window, each with its own `occurrenceStart` (the series may have started long before `from`), plus `seriesEventId` and `isException`. Use `occurrenceStart`, not `startsAt`, to date an occurrence. Returns only events the connected member can see. Includes both confirmed and `proposed` events (the latter staged by ingestion, pending review) - pass `status` to filter to one. Approve a proposal by calling update_family_event with status `confirmed`.
| Parameter | Type | Required | Description |
|---|---|---|---|
from | string | yes | Inclusive lower bound on start time (ISO 8601) |
to | string | yes | Exclusive upper bound on start time (ISO 8601) |
type | string | no | |
status | string | no |
get_family_eventread-onlyGet family event
Fetch a single event from this Quok family's shared calendar by id, including its full details.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | Event id |
create_family_eventCreate family event
Create an event on this Quok family's shared calendar (a typed event: appointment, bill, chore, birthday, meal, lesson, flight, hotel, etc.). Defaults to `confirmed`; pass status `proposed` to stage it for review.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | yes | |
startsAt | string | yes | Start time as an ABSOLUTE INSTANT in ISO 8601: either UTC (`2026-07-18T05:20:00Z`) or a local time WITH its UTC offset (`2026-07-18T07:20:00+02:00`). Never append `Z` to a local wall-clock time - that shifts the event by the zone offset. For a flight, use the DEPARTURE airport local time with that airport offset. |
endsAt | union | no | End time as an absolute instant; same offset rules as `startsAt` (`null` = open-ended). For a flight, use the ARRIVAL airport local time with that airport offset. |
allDay | boolean | no | |
location | union | no | |
locationLat | union | no | |
locationLon | union | no | |
locationTimezone | union | no | |
locationPlaceRef | union | no | |
locationDetail | union | no | |
locationCountryCode | union | no | |
locationCategory | union | no | |
notes | union | no | |
assigneeIds | array | no | |
visibility | string | no | |
rrule | union | no | |
timezone | union | no | IANA timezone a RECURRING series expands against (e.g. "Europe/Warsaw"); omit/null for one-offs. Does NOT shift `startsAt`/`endsAt` - those must already be correct instants. |
endTimezone | union | no | IANA timezone for the `endsAt` wall clock (e.g. "Australia/Sydney" for a flight arrival). Omit/null to use `timezone`. Does NOT shift `endsAt` - it must already be the correct absolute instant. |
reminderOffsets | array | no | |
status | string | no | |
type | string | yes | Event type - selects the shape of `data`. |
data | object | yes | Type-specific fields, validated against `type` (appointment, chore, birthday, anniversary, meal, bill, lesson, flight, hotel, activity). Pass {} when the type carries no extra data. |
update_family_eventidempotentUpdate family event
Update fields on an existing event in this Quok family's shared calendar. Provide only the fields to change in "patch". Patch `status` to transition the event (e.g. confirm a proposed event, or re-propose a confirmed one).
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | Event id |
patch | object | yes | |
expectedVersion | string | no | Optional optimistic-concurrency version (updatedAt) to guard against races |
delete_family_eventdestructiveidempotentDelete family event
Permanently delete an event from this Quok family's shared calendar.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | Event id |
expectedVersion | string | no |
list_family_listsread-onlyList family lists
List the family's task and shopping lists, optionally filtered by type.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | no |
list_family_itemsread-onlyList family items
List the items on a specific list.
| Parameter | Type | Required | Description |
|---|---|---|---|
listId | string | yes | List id |
get_family_itemread-onlyGet family item
Fetch a single list item (task or shopping item) by id.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | List item id |
list_family_tasksread-onlyList family tasks
List the family's to-do items: items across all todo lists. Mirrors the app's "All tasks" view.
No parameters.
list_family_shoppingread-onlyList family shopping items
List the family's shopping items (items across all shopping and groceries lists).
No parameters.
add_family_taskAdd family task
Add a to-do item. Targets the given listId, or the family's default todo list when omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | yes | |
checked | boolean | no | |
assigneeIds | array | no | |
visibility | string | no | |
dueAt | union | no | |
notes | union | no | |
listId | string | no | Target todo list id; defaults to the family todo list |
add_family_shopping_itemAdd family shopping item
Add a shopping item. Targets the given listId, or the family's default shopping list when omitted.
| Parameter | Type | Required | Description |
|---|---|---|---|
text | string | yes | |
checked | boolean | no | |
assigneeIds | array | no | |
visibility | string | no | |
dueAt | union | no | |
quantity | union | no | |
unit | union | no | |
notes | union | no | |
listId | string | no | Target shopping list id; defaults to the family shopping list |
update_family_list_itemidempotentUpdate family list item
Update fields on a Quok list item (task or shopping item). Provide only the fields to change in "patch"; set `checked` to tick/untick it, or `listId` to move it to another list.
| Parameter | Type | Required | Description |
|---|---|---|---|
listId | string | no | Id of the list the item belongs to; omit to resolve the item by its id alone |
itemId | string | yes | List item id |
patch | object | yes | |
expectedVersion | string | no | Optional optimistic-concurrency version (updatedAt) to guard against races |
complete_family_list_itemidempotentComplete family list item
Tick off a list item (or untick it by passing checked=false).
| Parameter | Type | Required | Description |
|---|---|---|---|
listId | string | no | Id of the list the item belongs to; omit to resolve the item by its id alone |
itemId | string | yes | List item id |
checked | boolean | no | Target checked state; defaults to true (tick off). Pass false to untick. |
expectedVersion | string | no |
delete_family_list_itemdestructiveidempotentDelete family list item
Permanently delete a list item (task or shopping item).
| Parameter | Type | Required | Description |
|---|---|---|---|
listId | string | no | Id of the list the item belongs to; omit to resolve the item by its id alone |
itemId | string | yes | List item id |
expectedVersion | string | no |
create_family_listCreate family list
Create a new Quok family list (a todo, shopping, groceries, or packing list). Returns the new list including its id.
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | yes | |
title | string | yes | |
eventId | union | no |
rename_family_listidempotentRename family list
Rename a Quok family list. Provide only the fields to change in "patch".
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | List id |
patch | object | yes | |
expectedVersion | string | no |
delete_family_listdestructiveidempotentDelete family list
Permanently delete a Quok family list and all its items. A list that is its type's default cannot be deleted - it is where items land when no list is specified.
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | yes | List id |
expectedVersion | string | no |
search_familyread-onlySearch family
Full-text search across this Quok family's entities - calendar events, lists, list items (shopping/tasks), and members - ranked by relevance. Use this to find something by keyword when you don't know its id or exact location (e.g. "dentist", "milk", a person's name). Returns only entities the connected member can see. Pass `types` to restrict to certain kinds.
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | yes | Free-text search query |
types | array | no | Restrict to these entity kinds (event, list, list_item, member); omit to search all |
limit | integer | no | Maximum number of results to return (1–50, default 20) |