Free no-signup group planner: dates, RSVPs, place votes, shared checklist and split costs.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Add exactly ONE independently checkable item to the shared checklist (e.g. "Bring the grill"). For several requested tasks, shopping items or recipe ingredients, call this tool separately for EACH item; never combine the list into one text. Keep quantities and explanatory details with their own item. Read get_checklist afterwards to verify separate item_ids. Acts as the participant. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID.
One independently checkable item, single line, max 500 chars. Not a list of multiple tasks/ingredients.
From create_plan or join_plan.
From create_plan or join_plan.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Add exactly ONE independently checkable item to the shared checklist (e.g. "Bring the grill"). For several requested tasks, shopping items or recipe ingredients, call this tool separately for EACH item; never combine the list into one text. Keep quantities and explanatory details with their own item. Read get_checklist afterwards to verify separate item_ids. Acts as the participant. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| text* | string | One independently checkable item, single line, max 500 chars. Not a list of multiple tasks/ingredients. |
| participant_id* | string | From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"text"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"text": {
"type": "string",
"description": "One independently checkable item, single line, max 500 chars. Not a list of multiple tasks/ingredients."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Record a shared expense, split equally. paid_by defaults to the person you act for; split_among defaults to everyone in the plan. Requires a user-requested amount, currency, payer and equal-split participants; missing or ambiguous details need clarification. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| amount* | number | Total, max 2 decimals (e.g. 42.5). Send a plain number. |
| currency | string | ISO code, e.g. CZK or EUR. Sets the plan's currency if it has no expenses yet; otherwise must match it (see get_plan currency). |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Suggest a place the group can vote on (Where tab). Default source=auto searches the same Google Places autocomplete as the web and returns needs_selection with up to five candidates, without a write. A selected google_place_id loads official details and stores the Google Maps link, coordinates and metadata. Zero results use the supplied link or manual name/address. source=manual explicitly saves a link/manual location without lookup. Google lookup failure does not save a fallback automatically. Supplied Google Maps URLs remain available as a zero-results or explicit manual fallback; they do not bypass the default Google lookup. Duplicates are merged. Acts as the participant. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| link | string | Optional link to any other page about the place (http/https), instead of google_maps_url. |
| name* | string | Requested place name, including accents (max 300 chars). A selected Google result supplies its official name. |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Mark a checklist item done (done: true) or open again (done: false), by item_id from get_checklist. Current stored state is available through get_checklist. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| done* | boolean | |
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| item_id* | string | From get_checklist or add_checklist_item (the exact item text also works). |
Ask the user for missing all-day or exact-time availability, RSVP, place, expense or agreed event details in a native form. Returns selected values only; NEVER changes a plan. Use the corresponding write tool only after the user explicitly confirms the returned details. Hosts without forms should ask in chat or use open_planner.
| Argument | Type | Description |
|---|---|---|
| plan* | string | |
| action* | string |
{
"type": "object",
"required": [
"plan",
"action"
],
"properties": {
"plan": {
"type": "string"
},
"action": {
"enum": [
"availability",
"time_availability",
"rsvp",
"place",
"expense",
"event"
],
"type": "string"
}
},
"additionalProperties": false
}Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Create a new saved lesgooo plan and its first participant. Returns shareable links, private participant credentials and missing_details. Title and name are optional: omissions use temporary Event/Organizer labels, allowing the requested action to complete before missing details are collected in chat. Explicitly supplied fields are not missing. Existing organizer details can later be completed through credential-bound join_plan and the same plan title through update_event, with data preserved. Does not send invitations or notifications. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| title | string | User-supplied short plan name (max 120 chars). Omitted when unknown; temporary Event label until collected after the requested action. |
| your_name | string | User-supplied participant name (max 80 chars). Omitted when unknown; temporary Organizer participant until their name is collected after the requested action. |
Resolve an explicitly supplied lesgooo saved-plan link or exact ID for the desktop mention picker. Empty or general searches return no results; never enumerate plans.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"maxLength": 300
}
},
"additionalProperties": false
}Read the plan's shared checklist: open and done items, with item_id.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
{
"type": "object",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
}
},
"additionalProperties": false
}Read the plan's shared costs (Splitwise tab): expenses, each person's balance, and the suggested payments to settle up. Amounts are in the plan's currency.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
{
"type": "object",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
}
},
"additionalProperties": false
}For a user-requested plan opening, read get_checklist and get_expenses too. Reply in the user's conversational language, 25–60 words total, at most four short bullets plus ONE contextual question about ONE action, not a menu. Summarize dates (actual counts/ties, not an agreed date), places, open tasks and balances; omit empty modules and completed-task lists. Reading requires no identity; never guess personal debts. After a write, briefly report that result and one next-step question instead of repeating the overview. Respect requests for no suggestions. Read the saved plan explicitly requested by the user. If the user's link is a bare /when, /where, /rsvp, /checklist or /splitwise URL, do NOT call this tool: explain it is a local draft and ask for its saved share link, even when a different plan was used earlier. Never replace a supplied link with the previous plan. Returns today's date in time_zone (UTC by default), title, event details, participants and their availability/RSVP, best dates, place votes and currency. Pass since (an earlier server_time) to also read changes.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| since | string | Optional ISO timestamp (server_time from an earlier get_plan). |
| time_zone | string | User's IANA time zone, e.g. Europe/Prague. Use when resolving tomorrow or other relative days; today defaults to UTC if omitted. |
| include_all_dates | boolean |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Join a plan as the user-specified person. Without participant credentials, selection=existing selects an existing person only; selection=new adds a distinct name only; default selection=auto reuses a unique matching name or adds it. Duplicate names require existing_participant_id, which selects the exact matching row without renaming. No account or organizer privilege is verified. With both participant_id and participant_token, the operation instead renames that same participant to name, preserving availability/RSVP/entries. That mode adds no participant and cannot switch to another matching name; collisions and invalid credentials are rejected. Returns participant_id and participant_token. Supports completing an unnamed organizer after their requested action. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| name* | string | The person's name as the group knows them (max 80 chars). |
| plan |
After completing and verifying the requested actions, keep the last requested action's module: availability=when, places/votes=where, RSVP/event details=rsvp, checklist=checklist, expenses/payments=splitwise. If CURRENT received user_planner_selection or actual host evidence confirms that SAME saved plan AND module are already open, DO NOT call open_planner again: saved changes appear through realtime subscriptions in the existing view, and opening again can create a duplicate tab/card. Report the verified result in chat. Historic UI context alone does not prove a view is still open. Call open_planner only when no matching current view is confirmed, the target plan/module differs, or the user explicitly requests another opening. When opening, pass the already selected participant_id and participant_token; never join again or guess identity merely for display. Verification reads, participant selection and completing missing new-plan name/title do not change the last requested action's module. For a user-requested plan opening, read get_checklist and get_expenses too. Reply in the user's conversational language, 25–60 words total, at most four short bullets plus ONE contextual question about ONE action, not a menu. Summarize dates (actual counts/ties, not an agreed date), places, open tasks and balances; omit empty modules and completed-task lists. Reading requires no identity; never guess personal debts. After a write, briefly report that result and one next-step question instead of repeating the overview. Respect requests for no suggestions. Open the interactive lesgooo planner. Optionally choose a saved plan link, module and previously selected participant credentials. Credentials preserve that person in the displayed view without another identity picker. Without a plan, show the same local draft as the web application; never save a shared plan automatically.
| Argument | Type | Description |
|---|---|---|
| plan | string | |
| module | string |
Open local widget preferences. Defaults and recent history stay on this device; does not change a shared plan.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read the plugin settings layout. There are no account settings; the action opens device-local preferences.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Record that the person you act for paid someone back (settling up). amount defaults to what they owe that person according to get_expenses. Only after the money was actually sent. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| amount | number | Optional; defaults to the suggested settle-up amount. |
| participant_id* | string | From create_plan or join_plan. |
| allow_duplicate | boolean |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Delete an expense, payment, checklist item or place that the person you act for added (e.g. to fix a wrong amount: remove, then add again). Entries added by others can't be removed here. Requires an explicit request to delete this specific entry. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| id* | string | expense_id / payment_id (get_expenses), item_id (get_checklist) or place_id (get_plan). For items and places the exact text/name also works. |
| kind* | string | |
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Add, remove or replace one participant's all-day dates and/or exact free-time windows. dates are ALL-DAY answers. For specific hours pass dates=[] and time_slots with absolute ISO start/end including Z/UTC offset, plus the known IANA time_zone. Do not invent a zone or turn partial-day times into all-day answers. add merges windows and replaces all-day markers on touched days with exact hours; remove subtracts intervals (including from all-day dates). With time_slots present, replace replaces ALL availability; without it replace affects only all-day dates and preserves unrelated exact windows. dates add/remove also replace/remove exact windows on those local days. Empty time_slots + replace clears all availability. Read get_plan afterwards. Availability never sets an agreed Event date or RSVP. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| mode | string | add/remove change supplied days/windows; replace is a full replacement when time_slots is supplied. Default replace (legacy all-day behavior). |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Answer whether the person is coming: "yes", "no", or "clear" to remove the answer. For a repeating event the answer is for one occurrence: the next one by default, or pass occurrence_date (see get_plan event.upcoming). Changes only the participant bound to the supplied credentials. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| status* | string | |
| participant_id* |
Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Change the shared event everyone sees on the RSVP page: title, date/time, place or description. Covers group-agreed details or the user's title for their just-created plan. Uses the existing plan and participant credentials; omitted fields are unchanged, and an empty string clears a field. Times are local (no time zone); an omitted start_time means all-day when a start_date is provided. Availability alone does not specify an agreed event date. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| title | string | Plan / event name (max 120 chars). |
No primitive account settings are available. An empty update is a no-op; device preferences are changed in the widget.
| Argument | Type | Description |
|---|---|---|
| set* | object |
{
"type": "object",
"required": [
"set"
],
"properties": {
"set": {
"type": "object",
"properties": {},
"additionalProperties": false
}
},
"additionalProperties": false
}Keep the final reply in the user's conversational language, 2–4 short sentences (25–60 words): report the verified result and ask ONE relevant optional next-step question about ONE action, not a choice menu. Mandatory missing details take priority. Suggestions never perform actions automatically; respect requests for no suggestions. Saved links let friends join without accounts. If CURRENT received UI context or actual host evidence confirms the same saved plan and last-action module are already open, do not call open_planner again; realtime updates the existing view. Historic context is insufficient. Otherwise open the last-action module with the selected credentials, or honor an explicit opening request. Up-vote ("up"), down-vote ("down") or remove your vote ("clear") on a place, by place_id from get_plan. Changes only the participant bound to the supplied credentials. Current stored state is available through get_plan. Service use restrictions: plan creation, participation and edits for users known to be under 13 (or a higher local minimum) are prohibited, including under a nickname. Personal data about known underage children, sensitive medical records, intimate content, card details, government IDs, passwords and verification codes are prohibited planning input. This tool covers ordinary non-sensitive group planning only.
| Argument | Type | Description |
|---|---|---|
| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| vote* | string | |
| place_id* | string | From get_plan places[].place_id or add_place (the exact place name also works). |
App-only Places search/details and link previews. The backend retains feature flags, monthly provider counters and timeouts. Never calls a paid API from the browser.
| Argument | Type | Description |
|---|---|---|
| payload* | object | |
| service* | string |
{
"type": "object",
"required": [
"service",
"payload"
],
"properties": {
"payload": {
"type": "object"
},
"service": {
"enum": [
"fetchPlacesAutocompleteV2",
"fetchPlaceDetailsV2",
"fetchLinkPreviewV2",
"fetchPreviewImage"
],
"type": "string"
}
},
"additionalProperties": false
}App-only identity picker. Bind the name explicitly selected in the shared web UI. Does not change schedule data.
| Argument | Type | Description |
|---|---|---|
| plan* | string | |
| participant_id* | string |
{
"type": "object",
"required": [
"plan",
"participant_id"
],
"properties": {
"plan": {
"type": "string"
},
"participant_id": {
"type": "string"
}
},
"additionalProperties": false
}App-only transport for explicit interactions with shared web components. Reuses the web write gateway, validation and budgets. Requires the selected participant token for saved-plan edits.
| Argument | Type | Description |
|---|---|---|
| plan | string | |
| payload* | object | |
| operation* | string | |
| participant_id | string | |
| participant_token | string | |
| target_participant_id | string | |
| target_participant_token | string |
{
"type": "object",
"required": [
"operation",
"payload"
],
"properties": {
"plan": {
"type": "string"
},
"payload": {
"type": "object"
},
"operation": {
"type": "string"
},
"participant_id": {
"type": "string"
},
"participant_token": {
"type": "string"
},
"target_participant_id": {
"type": "string"
},
"target_participant_token": {
"type": "string"
}
},
"additionalProperties": false
}| description* | string | What it was for, e.g. "Groceries" (max 120 chars). |
| split_among | array | Who shares the cost (participant_id values or exact names). Defaults to everyone. |
| participant_id* | string | From create_plan or join_plan. |
| allow_duplicate | boolean | Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry). |
| participant_token* | string | From create_plan or join_plan. |
| paid_by_participant_id | string | Who paid (participant_id from get_plan, or their exact name). Defaults to you. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"description",
"amount"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"amount": {
"type": "number",
"description": "Total, max 2 decimals (e.g. 42.5). Send a plain number."
},
"currency": {
"type": "string",
"description": "ISO code, e.g. CZK or EUR. Sets the plan's currency if it has no expenses yet; otherwise must match it (see get_plan currency)."
},
"description": {
"type": "string",
"description": "What it was for, e.g. \"Groceries\" (max 120 chars)."
},
"split_among": {
"type": "array",
"items": {
"type": "string"
},
"description": "Who shares the cost (participant_id values or exact names). Defaults to everyone."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"allow_duplicate": {
"type": "boolean",
"description": "Only if the user confirms a second, identical expense within 10 minutes (otherwise it is treated as a retry)."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
},
"paid_by_participant_id": {
"type": "string",
"description": "Who paid (participant_id from get_plan, or their exact name). Defaults to you."
}
},
"additionalProperties": false
}| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| query | string | Optional Google autocomplete query including the known city/address (max 160 chars); otherwise name/address are used. |
| source | string | Default auto uses Google first. Manual explicitly saves the supplied name/address/link without a paid lookup. |
| address | string | Optional address (max 500 chars). |
| participant_id* | string | From create_plan or join_plan. |
| google_maps_url | string | Optional Google Maps link (google.com/maps or maps.app.goo.gl). Links with coordinates (…/@50.08,14.42,…) also show a map preview. |
| google_place_id | string | Exact place ID from returned Google candidates; official details are loaded server-side (max 160 chars). |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"name"
],
"properties": {
"link": {
"type": "string",
"description": "Optional link to any other page about the place (http/https), instead of google_maps_url."
},
"name": {
"type": "string",
"description": "Requested place name, including accents (max 300 chars). A selected Google result supplies its official name."
},
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"query": {
"type": "string",
"description": "Optional Google autocomplete query including the known city/address (max 160 chars); otherwise name/address are used."
},
"source": {
"enum": [
"auto",
"manual"
],
"type": "string",
"description": "Default auto uses Google first. Manual explicitly saves the supplied name/address/link without a paid lookup."
},
"address": {
"type": "string",
"description": "Optional address (max 500 chars)."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"google_maps_url": {
"type": "string",
"description": "Optional Google Maps link (google.com/maps or maps.app.goo.gl). Links with coordinates (…/@50.08,14.42,…) also show a map preview."
},
"google_place_id": {
"type": "string",
"description": "Exact place ID from returned Google candidates; official details are loaded server-side (max 160 chars)."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| participant_id* |
| string |
| From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"item_id",
"done"
],
"properties": {
"done": {
"type": "boolean"
},
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"item_id": {
"type": "string",
"description": "From get_checklist or add_checklist_item (the exact item text also works)."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| request_id |
| string |
| Optional UUID v4 for atomic creation. An identical UUID and identical fields (including omissions) replay the same creation; a changed payload is rejected. |
{
"type": "object",
"required": [],
"properties": {
"title": {
"type": "string",
"description": "User-supplied short plan name (max 120 chars). Omitted when unknown; temporary Event label until collected after the requested action."
},
"your_name": {
"type": "string",
"description": "User-supplied participant name (max 80 chars). Omitted when unknown; temporary Organizer participant until their name is collected after the requested action."
},
"request_id": {
"type": "string",
"description": "Optional UUID v4 for atomic creation. An identical UUID and identical fields (including omissions) replay the same creation; a changed payload is rejected."
}
},
"additionalProperties": false
}| For calendar UI: return all dates within the existing bounded read budget, instead of the concise first 60 per person. |
{
"type": "object",
"required": [
"plan"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"since": {
"type": "string",
"description": "Optional ISO timestamp (server_time from an earlier get_plan)."
},
"time_zone": {
"type": "string",
"description": "User's IANA time zone, e.g. Europe/Prague. Use when resolving tomorrow or other relative days; today defaults to UTC if omitted."
},
"include_all_dates": {
"type": "boolean",
"description": "For calendar UI: return all dates within the existing bounded read budget, instead of the concise first 60 per person."
}
},
"additionalProperties": false
}| string |
| Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| selection | string | Without credentials: auto matches or adds; existing never adds; new never takes another person's matching name. Default auto. |
| participant_id | string | From create_plan or join_plan. |
| participant_token | string | From create_plan or join_plan. |
| existing_participant_id | string | Exact existing participant ID from get_plan or received user UI selection; requires selection=existing and matching name. No rename. |
{
"type": "object",
"required": [
"plan",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The person's name as the group knows them (max 80 chars)."
},
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"selection": {
"enum": [
"auto",
"existing",
"new"
],
"type": "string",
"description": "Without credentials: auto matches or adds; existing never adds; new never takes another person's matching name. Default auto."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
},
"existing_participant_id": {
"type": "string",
"description": "Exact existing participant ID from get_plan or received user UI selection; requires selection=existing and matching name. No rename."
}
},
"additionalProperties": false
}| participant_id | string | Previously selected participant in this plan; requires participant_token. |
| participant_token | string | Token returned by join_plan/create_plan for this participant and plan; requires participant_id. |
{
"type": "object",
"properties": {
"plan": {
"type": "string"
},
"module": {
"enum": [
"when",
"where",
"rsvp",
"checklist",
"splitwise"
],
"type": "string"
},
"participant_id": {
"type": "string",
"description": "Previously selected participant in this plan; requires participant_token."
},
"participant_token": {
"type": "string",
"description": "Token returned by join_plan/create_plan for this participant and plan; requires participant_id."
}
},
"additionalProperties": false
}| Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry). |
| participant_token* | string | From create_plan or join_plan. |
| to_participant_id* | string | Who received the money (participant_id, or their exact name). |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"to_participant_id"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"amount": {
"type": "number",
"description": "Optional; defaults to the suggested settle-up amount."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"allow_duplicate": {
"type": "boolean",
"description": "Only if the user confirms a second, identical payment within 10 minutes (otherwise it is treated as a retry)."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
},
"to_participant_id": {
"type": "string",
"description": "Who received the money (participant_id, or their exact name)."
}
},
"additionalProperties": false
}| participant_id* | string | From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"kind",
"id"
],
"properties": {
"id": {
"type": "string",
"description": "expense_id / payment_id (get_expenses), item_id (get_checklist) or place_id (get_plan). For items and places the exact text/name also works."
},
"kind": {
"enum": [
"expense",
"payment",
"checklist_item",
"place"
],
"type": "string"
},
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| plan* | string | Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID. |
| dates* | array |
| time_zone | string | Known IANA zone such as Europe/Prague; required for time_slots and edits to existing exact windows. Ask if unknown. |
| time_slots | array | Optional exact windows. For hours-only changes pass dates=[] and mode=add/remove; replace changes the entire availability. End is exclusive. |
| participant_id* | string | From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"dates"
],
"properties": {
"mode": {
"enum": [
"replace",
"add",
"remove"
],
"type": "string",
"description": "add/remove change supplied days/windows; replace is a full replacement when time_slots is supplied. Default replace (legacy all-day behavior)."
},
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"dates": {
"type": "array",
"items": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"maxItems": 370
},
"time_zone": {
"type": "string",
"description": "Known IANA zone such as Europe/Prague; required for time_slots and edits to existing exact windows. Ask if unknown."
},
"time_slots": {
"type": "array",
"items": {
"type": "object",
"required": [
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"description": "ISO timestamp with Z or UTC offset, after start, max 7 days."
},
"start": {
"type": "string",
"description": "ISO timestamp with Z or UTC offset."
}
},
"additionalProperties": false
},
"maxItems": 300,
"description": "Optional exact windows. For hours-only changes pass dates=[] and mode=add/remove; replace changes the entire availability. End is exclusive."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| string |
| From create_plan or join_plan. |
| occurrence_date | string | Repeating events only: the date of the occurrence to answer for. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"status"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"status": {
"enum": [
"yes",
"no",
"clear"
],
"type": "string"
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"occurrence_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Repeating events only: the date of the occurrence to answer for."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| end_date | string |
| end_time | string |
| location | string | Place as plain text (max 500 chars). |
| start_date | string |
| start_time | string | HH:MM, local time. |
| description | string | Details for the group (max 4000 chars). |
| participant_id* | string | From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"title": {
"type": "string",
"description": "Plan / event name (max 120 chars)."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"end_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$"
},
"location": {
"type": "string",
"description": "Place as plain text (max 500 chars)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"start_time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "HH:MM, local time."
},
"description": {
"type": "string",
"description": "Details for the group (max 4000 chars)."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}| participant_id* | string | From create_plan or join_plan. |
| participant_token* | string | From create_plan or join_plan. |
{
"type": "object",
"required": [
"plan",
"participant_id",
"participant_token",
"place_id",
"vote"
],
"properties": {
"plan": {
"type": "string",
"description": "Saved plan link (e.g. https://lesgooo.fun/ab12/when) or its 4-character id. Bare module links such as https://lesgooo.fun/when are local drafts: ask for a saved link, never substitute a previous plan ID."
},
"vote": {
"enum": [
"up",
"down",
"clear"
],
"type": "string"
},
"place_id": {
"type": "string",
"description": "From get_plan places[].place_id or add_place (the exact place name also works)."
},
"participant_id": {
"type": "string",
"description": "From create_plan or join_plan."
},
"participant_token": {
"type": "string",
"description": "From create_plan or join_plan."
}
},
"additionalProperties": false
}