What your assistant can do with lesgooo.fun
Planning tools, grouped by what you’d ask. Your assistant picks the right one — this page explains what happens behind the scenes.
How it fits together
A plan is one link shared with a group. Reading needs the saved link; changes also use credentials for the participant you explicitly selected. If your identity is unclear, the assistant asks whether you are already in the plan or joining as someone new. Participant selection is not account verification: anyone with the link can participate.
Plans and dates
- create_plan — Start a new plan. Creates a plan and returns its shareable links (one for each tab: when, where, rsvp, checklist, splitwise). If you pass your_name, you are added as the first participant and get a participant_token.
Inputs: title; your_name (optional). Example: “Create a plan called ‘Cabin weekend’ for me.” - get_plan — Read a plan. Returns today’s date, the title, event details, everyone in the plan with their free days, exact hours and RSVP, the five best dates (with weekday), all_day_dates, exact time_slots and best_time_windows, the places being voted on (with place_id), who hasn’t answered yet (not_responded) and the currency for shared costs. It also returns server_time; pass it back later as since to get a short list of what changed: who joined, who updated their days or RSVP, new places, checklist items, expenses and payments.
Inputs: plan (link or 4-character id); since (optional). Example: “When does it work for everyone?” / “What changed since yesterday?” - join_plan — Join a plan. Adds the person you help to a plan — or, if someone with the same name is already there, lets you act as them (like picking your name in the app). Returns participant_id and participant_token, which every change below needs.
Inputs: plan; name. Example: “Join this plan as Pavel: https://lesgooo.fun/ab12/when” - set_availability — Set all-day dates or exact free-time windows. For specific hours, use dates=[] with time_slots (ISO start/end with Z or UTC offsets) and a known IANA time_zone. add preserves other windows; remove subtracts the requested period. With time_slots supplied, replace replaces the complete availability, so use it only when requested. Without time_slots, replace affects all-day dates and preserves unrelated exact windows. Local all-day dates and precise windows are reconciled together.
Inputs: plan; participant_id; participant_token; dates; mode (optional); time_slots and time_zone for exact hours. Example: “Mark me free every weekend in October.”
Partial-day availability does not mean free all day. best_dates groups days, while best_time_windows identifies actual simultaneous free time in availability_time_zone. Read with time_zone set to the group's known IANA zone. Availability alone never confirms an Event or an attendance response.
In the shared planner, Days shows all-day answers and Days + Time shows precise free-time blocks. Ask “I’m Alex; add 14 November 2026, 18:00–20:00 in Europe/Prague, keeping my other availability.” For the visual workflow, learn how to find a time that works for everyone. The browser shows hours in the device’s local time; tell the assistant the intended timezone explicitly.
RSVP
- set_rsvp — Answer the RSVP. Answers yes or no for the person (or clear removes the answer). For a repeating event the answer is for one occurrence: the next one, or the date you pass as occurrence_date.
Inputs: plan; participant_id; participant_token; status; occurrence_date (repeating events). Example: “Tell them I’m coming on Friday.”
Places
- add_place — Suggest a place using Google Places by default. A lookup may return candidates without saving anything; the assistant resolves a clear match using the supplied city/address or asks which venue you meant. The selected Google place is saved with its Maps link and official details. An explicitly requested manual place or link can use the manual fallback. A provider error should be reported rather than treated as a successful search.
Inputs: plan; participant_id; participant_token; name; address, google_place_id, source or link as appropriate. Example: “Suggest Café Louvre on Národní in Prague.” - vote_place — Vote on a place. Up-votes, down-votes or clears the person’s vote on a place (place_id from get_plan, or the place’s name).
Inputs: plan; participant_id; participant_token; place_id; vote (up / down / clear). Example: “Vote for the lake, against the pub.”
Checklist
- get_checklist — Read the checklist. Returns the open and done items of the plan’s shared checklist, each with item_id.
Inputs: plan. Example: “What still needs to be done?” - add_checklist_item — Add a to-do. Adds an item to the shared checklist. If the same item is already open, it is not added twice.
Inputs: plan; participant_id; participant_token; text. Example: “Add ‘bring the grill’ to the list.” - check_item — Tick an item off. Marks an item done, or open again (done: false). The item can be given by item_id or by its exact text.
Inputs: plan; participant_id; participant_token; item_id; done. Example: “I bought the ice — tick it off.”
Event details
- update_event — Change the event. Changes what everyone sees on the RSVP page: title, start and end date and time (local time; no start_time = all-day), place (plain text) and description. It affects the whole group, so assistants should only use it after the group agreed.
Inputs: plan; participant_id; participant_token; any of title, start_date, start_time, end_date, end_time, location, description. Example: “We agreed on Saturday 18:00 at Riverside Park — update the event.”
Shared costs
- get_expenses — Read shared costs. Returns the expenses, who is owed or owes money (people who are even are left out), the suggested payments to settle up and whether everything is settled, in the plan’s currency.
Inputs: plan. Example: “Who owes whom after the trip?” - add_expense — Add an expense. Records an expense split equally. By default the person you help paid and it is shared by everyone; paid_by_participant_id and split_among change that (participant_id values or names). Amounts have at most 2 decimals. The same expense again within 10 minutes is treated as a retry and not added twice (unless allow_duplicate is set). Pass currency (e.g. CZK) with the first expense to set the plan’s currency; later expenses must use the same one.
Inputs: plan; participant_id; participant_token; description; amount; currency (optional); paid_by_participant_id (optional); split_among (optional). Example: “I paid 1,200 CZK for groceries, split between all of us.” - record_payment — Record a payment. Records that the person paid someone back. Without an amount it uses what they owe that person according to get_expenses. People can be given by participant_id or by name. The same payment again within 10 minutes is treated as a retry and not recorded twice (unless allow_duplicate is set).
Inputs: plan; participant_id; participant_token; to_participant_id; amount (optional). Example: “I sent Anna my share — mark it paid.”
What assistants cannot do
- Assume another person’s availability, votes or RSVP — they act for the participant you identify.
- Delete a whole plan or remove participants through conversational tools.
- Send invitations, make bookings, transfer money or automatically sync an external calendar.
- Keep watching for changes in the background — ask for a fresh read of the plan.
Fixing mistakes
- remove_entry — Remove something you added. Deletes an expense, payment, checklist item or place that the person you help added — for example to fix a wrong amount (remove it, then add it again). Things other people added can only be removed by them in the app. Remove only entries the user explicitly asked to delete; ask for clarification if the target is unclear.
Inputs: plan; participant_id; participant_token; kind (expense / payment / checklist_item / place); id (expense_id or payment_id from get_expenses, item_id or the item text, place_id or the place name). Example: “I entered the pizza as 300 instead of 30 — fix it.”
Interactive planner and structured input
- open_planner — Open the group planner in a compatible ChatGPT or Codex host. Accepts an optional saved plan and module. Opening it never creates a plan.
- find_plan_mentions — Desktop picker lookup for an explicit saved link or four-character ID. General searches return no results. Recent history stays on the device.
- collect_plan_details — Native forms for availability, RSVP, a place, an expense or agreed event details on compatible MCP 2.0 hosts. Collects values only; confirm the summary before saving. Other hosts ask in chat or open the planner.
- read_plugin_settings — Native plugin settings layout with a device preferences action.
- open_preferences — Open local view and history settings without editing a plan.
- update_plugin_settings — Empty account-settings updates only; there are no account-wide preferences.
Shared planner UI transport (app-only)
widget_write saves explicit clicks in the embedded planner through the same web write gateway and budgets. widget_select_participant binds the name selected in its participant picker. widget_lookup provides bounded backend Places search, link previews and raster image previews. These tools are visible to the app only, not offered to the assistant as conversational actions. The planner shares all five React pages, desktop/mobile styles and drawers with lesgooo.fun.
Frequently asked questions
What is a participant token?
A private credential returned when an assistant creates or joins a plan as a selected participant. It binds later tool writes to that selection. It is not identity verification: lesgooo has no authenticated accounts, so keep the plan link within your group.
How does my assistant see what changed?
get_plan returns server_time. Passing it back later as since returns a short list of saved changes, including people joining, updates to free days or exact hours, RSVP responses, places, checklist items, expenses and repayments.
Are there limits?
Yes. Fair-use limits per client, plan and month protect availability and costs. If an action is blocked, it has not necessarily been saved; read the current plan before retrying.
Prefer to plan yourself?
The app works the same without an assistant — one link, no signup.