Documentation du plugin
CabuTally pour ChatGPT et Claude
Organise des sorties en groupe, partage les additions au centime près et suis qui doit quoi à qui, depuis une conversation avec Claude ou ChatGPT. Deux outils marchent sans compte ; les autres agissent sur tes propres événements CabuTally.
- URL du serveur
https://mcp.cabutally.com/mcp- Transport
- Streamable HTTP
- Connexion
- OAuth 2.1, seulement pour les outils de compte
Démarrer
- Claude: Paramètres → Connecteurs → Ajouter un connecteur personnalisé, puis colle l’URL du serveur. Une fois listé dans l’annuaire des connecteurs de Claude, tu pourras l’ajouter depuis là.
- ChatGPT: Cherche CabuTally dans l’annuaire des plugins de ChatGPT une fois publié.
Tout client MCP qui prend en charge les serveurs distants en Streamable HTTP avec OAuth peut utiliser la même URL.
Ce qu’il sait faire
Sans compte
- « Organise un week-end à Ibiza avec Luis et Marta, environ 900 €. » Tu reçois une carte avec un lien qui ouvre CabuTally avec l’événement prérempli. Rien n’est créé avant que tu touches Créer dans l’app.
- « On a payé 84 au resto, Ana a payé 50 et moi 34, on est quatre. » Tu obtiens qui paie qui, avec le moins de virements possible, au centime près.
Avec ton compte CabuTally
- Ajoute les dépenses au fil de l’eau, ou en collant une conversation de groupe, un ticket ou un relevé. Si tu colles quelque chose ou en ajoutes plus de trois à la fois, tu vérifies chaque ligne avant tout ajout, et une ligne qui semble déjà notée t’est signalée d’abord.
- Demande où vous en êtes : qui te doit, où en est le budget, ce qui a changé depuis hier.
- Note les remboursements et l’argent mis dans la cagnotte, et prépare un rappel aimable à envoyer toi-même.
- Crée un événement avec ses participants et sa liste de tâches, et fais avancer les tâches.
Connexion et autorisations
Le serveur se connecte sans identification. La première fois que tu utilises un outil de compte, l’assistant te demande de te connecter à CabuTally (OAuth 2.1 avec PKCE). Il te faut un compte CabuTally avec une adresse e-mail ; tes amis n’en ont toujours pas besoin.
Il agit en ton nom et ne voit que ce que tu vois dans l’app, y compris les noms et montants des autres membres. Il ajoute des dépenses, des remboursements, des personnes et des tâches, et chaque ajout est marqué comme fait via un assistant.
Il ne supprime jamais rien et ne modifie jamais une dépense ni un remboursement : une erreur se corrige dans l’app, où ton groupe la voit. Sa seule modification de l’existant est de prendre ou de cocher une tâche. Aucun outil n’est destructif, et Claude et ChatGPT demandent avant un outil qui écrit, sauf si tu l’as autorisé à agir sans demander.
Données et confidentialité
Le serveur ne conserve aucune donnée de tes événements. La seule chose qu’il garde est l’autorisation de connexion (les jetons hachés, la session chiffrée). Ses journaux indiquent l’outil et l’issue de chaque appel, jamais ses arguments.
Ce qu’un outil lit part chez le fournisseur de l’assistant, que tu as choisi, selon ses conditions.
La Politique de confidentialité donne les détails.
Refus et limites
Un appel impossible est refusé avec une raison courte et un code, comme (no_debt) ou (possible_duplicate), et n’écrit rien, pour que l’assistant te demande ce que tu voulais dire. Un lot qui s’arrête en route indique les lignes ajoutées.
Les outils de compte ont des limites par utilisateur, assez hautes pour qu’une personne ne les atteigne jamais. Un appel au-delà est refusé avec (rate_limited).
Déconnecter
Dans l’app, ouvre Profil → Assistants → Déconnecter les assistants. Chaque assistant connecté perd l’accès dans l’heure. Tu peux aussi retirer CabuTally dans les réglages de l’assistant.
Référence des outils
Les 17 outils, tels que le serveur les publie. Cette liste est générée depuis le serveur à chaque construction du site (la dernière le 2026-11-02).
Les noms et les descriptions sont en anglais, la langue dans laquelle le serveur les décrit à l’assistant.
Sans compte
plan_event Plan a group event
- Lecture seule
- Sans compte
Use when the user is organising a trip, dinner, party or any group outing with other people and shared costs or a group budget ("organise a weekend in Ibiza with Luis and Marta, €900 between us", "organizar un viaje", "organiser un week-end entre amis"), even alongside an itinerary. Not for an itinerary alone, with no group money to track. Returns a link that opens CabuTally with the event filled in; nothing is created until the user taps Create. No account needed. With the account connected, create_event makes the event directly.
Paramètres (4)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Oui | The event name, e.g. "Ibiza weekend" |
people | string[] | Non | The OTHER people going, by first name. Never the user: the app asks for their name. |
budget | number | Non | The total budget for the whole group, if one was given |
currency | string | Non | ISO code; leave out if unknown |
split_bill Split a bill
- Lecture seule
- Sans compte
Use when the user wants to split a one-off bill that is not in a CabuTally event ("we spent 84 on dinner, Ana paid 50", "cenamos por 84, Ana pagó 50 y yo 34", "on a payé 84, qui doit combien à qui"). Works out who pays whom, exact to the cent, with the fewest payments, in equal shares. Also returns a link to keep it as a shared CabuTally event. For an event the user already has, add_expenses records the cost and get_event shows the balances. Not for recurring costs like rent.
Paramètres (8)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
currency | string | Non | |
payments | object[] | Oui | |
payments[].paidBy | string | Oui | Who paid |
payments[].amount | number | Oui | How much they paid, in currency units (12.50). Read it as the user writes numbers: in Spanish "1.200" is 1200 |
payments[].sharedBy | string[] | Non | Who shares this payment; leave out when everyone does |
everyone | string[] | Non | Everyone in the split, including people who paid nothing |
me | string | Non | The name used for the user in payments, if they are in the split |
eventName | string | Non | What it was, e.g. "Dinner at Casa Pepe" |
Compte : lecture
list_my_events List my events
- Lecture seule
- Compte
Use when the user asks about their own CabuTally events ("my trips", "which events am I in?", "mis eventos", "mes événements"). Lists the 50 most recently active events their account is in, each with its eventId (which every other event tool takes), whether the user is square in it, and a link, plus the name saved on the user's account (create_event needs a name). Needs the user to connect their CabuTally account.
Aucun paramètre.
get_event Get an event
- Lecture seule
- Compte
Use when the user asks where one event stands for them ("where are we?", "who owes me?", "¿cuánto debo?", "¿cómo va el bote?", "qui me doit quoi ?", "où en est la cagnotte ?"): the people (isMe marks the user), what the user owes and is owed (only their own lines: not what two others owe each other), the budget and what was spent, the kitty and its collector, and every to-do. Does not list the expenses (list_expenses does) and gives no share link.
Paramètres (1)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
get_invite_link Get the invite link
- Lecture seule
- Compte
Returns the event’s public join link, only when the user asks for it ("send me the link for the group", "pásame el enlace del evento", "envoie-moi le lien de l’événement"). Anyone who has it can join and write to the event without signing up. create_event already returns it for a new event. It is never a link to one person’s seat.
Paramètres (1)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
draft_reminder Draft a reminder
- Lecture seule
- Compte
Use when the user wants to nudge someone who owes them money ("remind Marta she owes me", "recuérdale a Luis lo que me debe", "rappelle à Luis ce qu’il me doit"). Drafts the app’s friendly reminder for the user to copy and send themselves; it sends nothing and has no link. Only for someone who owes the user, never for what the user owes.
Paramètres (2)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
person | string | Oui | Who owes the user: a name as the user said it, or a guestId |
list_expenses List expenses
- Lecture seule
- Compte
Use when the user asks what the group spent or wants to find expenses in one event: "what did we spend on food?", "what did Marta pay for?", "¿cuánto gastamos en la cena?", "gastos del sábado", "combien on a dépensé au resto ?", "les dépenses de samedi". Lists the expenses newest first, at most 50, with the count and total of everything that matched, how much of it was taken home, and with paidBy what that person paid themselves; filter by who paid, words, a category or dates. Its totals count whole expenses, so for what the group shared or each share, event_recap is the answer. It does not say who owes whom (get_event does) and does not add anything (add_expenses does).
Paramètres (7)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
paidBy | string | Non | Only what this person paid (or helped pay): a name, "me", or a guestId |
word | string | Non | Words to find in the description or note, as the app's search does: any case, any accents, every word must appear ("cena", "uber airport") |
category | string | Non | A category by name: the built-in ones in English ("Food", "Transport", "Accommodation") or one the group made. A main category includes its subcategories |
from | string | Non | First day, YYYY-MM-DD: the day it was spent |
to | string | Non | Last day, YYYY-MM-DD, included |
includeNotes | boolean | Non | true only when the user asks about the notes written on the expenses |
event_recap Event recap
- Lecture seule
- Compte
Use when the user asks how an event went in money: "how much did the trip cost?", "what was my share?", "¿cuánto nos costó el viaje?", "resumen de gastos", "combien nous a coûté le voyage ?", "bilan des dépenses". Gives the shared total (private expenses and taken-home parts left out), the average per person (not anyone's share), the user's own paid and share, totals by category, and estimate against actual for each to-do that has both (get_event lists every to-do). It does not list single expenses (list_expenses does) or say who owes whom (get_event does).
Paramètres (1)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
recent_activity Recent activity
- Lecture seule
- Compte
Use when the user asks what changed in an event: "what's new in the trip?", "who added what since yesterday?", "¿qué ha pasado en el grupo?", "novedades", "quoi de neuf dans le groupe ?". Lists up to 30 entries of the activity feed, newest first, from a time (the last 7 days by default): who added, paid, claimed or changed what. It does not total anything (event_recap and list_expenses do).
Paramètres (2)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
since | string | Non | ISO time to start from; the last 7 days when left out |
preview_expenses Preview expenses
- Lecture seule
- Compte
Use when there are more than three expenses to add, or the user pasted lines other people wrote (a group chat, however short), a receipt or a statement, before calling add_expenses: checks names, currency and totals exactly as add_expenses will, and returns one readable line per expense ("Petrol, 40.00 EUR, paid by Luis, shared by everyone"). Show the user those lines and stop: add_expenses comes only after they confirm, in a later reply. alreadyInEvent marks a row that looks like an expense the event already has: point it out and ask whether to add it. Writes nothing.
Paramètres (19)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
currency | string | Non | Only when the user names a currency ("85€", "20 dólares"): its ISO code. Leave out for a bare amount, which is in the event's currency. A currency other than the event's is refused (currency_mismatch) and nothing is written: ask for the amount in the event's currency, never resend the same number without it |
rows | object[] | Oui | |
rows[].description | string | Oui | What it was, e.g. "Petrol" |
rows[].amount | number | Oui | The total, in the event currency (40 or 12.50). Read it as the user writes numbers: in Spanish "1.200" is 1200 and "12,50" is 12.50 |
rows[].paidBy | string or object[] | Oui | Who paid: one person, or several with how much each paid (their parts must add up to the total exactly). When the user does not say who, it is the user ("me"), as in the app |
rows[].paidBy[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].paidBy[].amount | number | Oui | How much this person paid, in the event currency (12.50) |
rows[].sharedBy | string[] | Non | Who shares it, in equal parts; leave out when everyone in the event does. "I paid Ana's ticket" is just Ana; "everyone but Leo" lists the others (get_event has the people). Use shares or amounts instead for an uneven split |
rows[].shares | object[] | Non | Instead of sharedBy, for portions ("Sam had two drinks, Maya and Leo one"): everyone who shares it, each with their portions |
rows[].shares[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].shares[].shares | integer | Oui | Whole portions, 1 to 99 |
rows[].amounts | object[] | Non | Instead of sharedBy, when each person owes a set amount ("my menu was 18, Ana's 12"): everyone who shares it, each with what they owe; they must add up to the total exactly |
rows[].amounts[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].amounts[].amount | number | Oui | What this person owes of it, in the event currency |
rows[].private | boolean | Non | true to show it only to the people it involves; only when the user asks |
rows[].category | string | Non | A category name as the event has it, e.g. "Fuel"; leave out when unsure |
rows[].date | string | Non | The day it was spent, YYYY-MM-DD, in the user's own calendar. Send it even for today when you know the date: left out, the day is when it was logged, in UTC, a day off late in the evening for many users |
rows[].note | string | Non | A longer note, only when the user gives one |
Compte : écriture
add_expenses Add expenses
- Écrit
- Compte
Use when the user wants to add one or more expenses to a CabuTally event: "add 40 for petrol, Luis paid", "apunta 40 de gasolina, pagó Luis", "dividir gastos de la cena", "note 40 d’essence, Luis a payé", "partage le dîner", a pasted group chat, a receipt or a bank statement. Adds 1 to 20 expenses, each split in equal shares among the people sharing it (everyone by default). When people had different amounts, split one expense unevenly instead: shares for portions ("Ana had two drinks, Beto one": Ana 2, Beto 1), or amounts for what each owes ("my menu was 18, Ana's 12"), listing everyone who shares it. For more than three rows, or any lines other people wrote (a pasted chat, a forwarded message, even one or two lines), call preview_expenses first, show the user the lines and stop: call add_expenses only after they say yes, never in the same reply. Several payers must add up to the total. Refuses with possible_duplicate, writing nothing, when a row looks like an expense already in the event; ask the user, then drop the row or call again with again: true. It cannot set a leftover (a part someone takes home), tags or a linked to-do, and nothing here edits or deletes an expense: the user does that in the app, from the event link. Money handed to a person is record_payment and money into the common pot is record_group_fund_contribution, not an expense; when it is unclear which ("I gave Alex 20 for the trip"), ask before writing.
Paramètres (20)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
currency | string | Non | Only when the user names a currency ("85€", "20 dólares"): its ISO code. Leave out for a bare amount, which is in the event's currency. A currency other than the event's is refused (currency_mismatch) and nothing is written: ask for the amount in the event's currency, never resend the same number without it |
rows | object[] | Oui | |
rows[].description | string | Oui | What it was, e.g. "Petrol" |
rows[].amount | number | Oui | The total, in the event currency (40 or 12.50). Read it as the user writes numbers: in Spanish "1.200" is 1200 and "12,50" is 12.50 |
rows[].paidBy | string or object[] | Oui | Who paid: one person, or several with how much each paid (their parts must add up to the total exactly). When the user does not say who, it is the user ("me"), as in the app |
rows[].paidBy[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].paidBy[].amount | number | Oui | How much this person paid, in the event currency (12.50) |
rows[].sharedBy | string[] | Non | Who shares it, in equal parts; leave out when everyone in the event does. "I paid Ana's ticket" is just Ana; "everyone but Leo" lists the others (get_event has the people). Use shares or amounts instead for an uneven split |
rows[].shares | object[] | Non | Instead of sharedBy, for portions ("Sam had two drinks, Maya and Leo one"): everyone who shares it, each with their portions |
rows[].shares[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].shares[].shares | integer | Oui | Whole portions, 1 to 99 |
rows[].amounts | object[] | Non | Instead of sharedBy, when each person owes a set amount ("my menu was 18, Ana's 12"): everyone who shares it, each with what they owe; they must add up to the total exactly |
rows[].amounts[].person | string | Oui | A name as the user said it, "me" only when the user themselves is speaking of themselves, or a guestId from an earlier answer. In a pasted chat or a forwarded message, "me", "I" and "my" are whoever wrote that line: use their name. A name that matches nobody is refused with the event's people listed, one that matches several with the candidates, and nothing is written |
rows[].amounts[].amount | number | Oui | What this person owes of it, in the event currency |
rows[].private | boolean | Non | true to show it only to the people it involves; only when the user asks |
rows[].category | string | Non | A category name as the event has it, e.g. "Fuel"; leave out when unsure |
rows[].date | string | Non | The day it was spent, YYYY-MM-DD, in the user's own calendar. Send it even for today when you know the date: left out, the day is when it was logged, in UTC, a day off late in the evening for many users |
rows[].note | string | Non | A longer note, only when the user gives one |
again | boolean | Non | true only when the user confirms they want it added although it looks like something already there: a second copy of what was just added, or a possible_duplicate |
record_payment Record a payment
- Écrit
- Compte
Use when money changed hands between two people in a CabuTally event: "Marta paid me back 20", "I gave Luis 15 in cash", "ya le pagué a Luis", "j’ai remboursé Luis". One side is the user, or both are placeholders. It records money already handed over outside CabuTally; it never sends or moves money. Settles the debt line when there is one. When the payer owes the receiver nothing it refuses first (no_debt), since it would record cash handed over that the receiver now owes back. To settle up, get_event first shows who owes whom. When you don't know who owes whom, call it anyway: a no_debt refusal says which way the debt runs and writes nothing. A payment cannot be edited or deleted here: the user does that in the app. Not for a debt still owed ("I owe Ana 20"): that is an expense Ana paid, so ask what it was for. Not for a shared cost (add_expenses) or money into the kitty (record_group_fund_contribution); when it is unclear which ("I gave Alex 20 for the trip"), ask before writing.
Paramètres (7)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
from | string | Oui | Who handed the money over: a name, "me", or a guestId |
to | string | Oui | Who received it: a name, "me", or a guestId |
amount | number | Oui | How much, in the event currency |
currency | string | Non | Only when the user names a currency ("85€", "20 dólares"): its ISO code. Leave out for a bare amount, which is in the event's currency. A currency other than the event's is refused (currency_mismatch) and nothing is written: ask for the amount in the event's currency, never resend the same number without it |
note | string | Non | A short note, only when the user gives one. As in the app, it is kept only when the payment is recorded as cash rather than settling a debt |
again | boolean | Non | true only when the user confirms it: a payment from someone who owes the receiver nothing (no_debt), a second copy of what was just added, or a possible_duplicate |
record_group_fund_contribution Record money put into the group fund (kitty)
- Écrit
- Compte
Use when someone put money into the event's group fund (the kitty or common pot, "hacer un bote"): "I put 20 in the kitty", "he puesto 20 en el bote", or the collector noting someone's share. It goes to the current collector (get_event shows who). Only when the user says it went into the kitty or pot: "Nora put 30 in" alone could be a payment or a shared cost, so ask first. Not for paying a person back (record_payment) or a shared cost (add_expenses); when it is unclear which, ask before writing.
Paramètres (6)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
from | string | Non | Who put the money in; leave out for the user. Only the collector records it for someone else |
amount | number | Oui | How much, in the event currency |
currency | string | Non | Only when the user names a currency ("85€", "20 dólares"): its ISO code. Leave out for a bare amount, which is in the event's currency. A currency other than the event's is refused (currency_mismatch) and nothing is written: ask for the amount in the event's currency, never resend the same number without it |
note | string | Non | A short note, only when the user gives one |
again | boolean | Non | true only when the user confirms they want it added although it looks like something already there: a second copy of what was just added, or a possible_duplicate |
create_event Create an event
- Écrit
- Compte
Use when the user wants a CabuTally event made now in their account for a trip, dinner, party or any group outing ("create the Ibiza trip with Luis and Marta", "crear un evento para la cena", "crée un événement pour le dîner"). Makes the event with the user in it, the other people as placeholders, an optional budget and an optional to-do list with estimates, and returns the link to share with the group and the link to open it. Unlike plan_event, it creates the event. Not for an event that already exists: add_people and add_todos add to one.
Paramètres (9)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Oui | The event name, e.g. "Ibiza weekend" |
currency | string | Oui | ISO code of the currency the group spends in |
displayName | string | Non | The user's own name in this event, as the group will see it. Leave out only when list_my_events shows a savedName; otherwise ask the user first. Never take it from the chat's account, an email or an earlier event |
people | string[] | Non | The OTHER people going, by first name, added as placeholders. Never the user |
budget | number | Non | The total budget for the whole group, if one was given |
todos | object[] | Non | Things to sort out for it ("drinks", "book the boat"), with an estimate if known |
todos[].name | string | Oui | What to sort out, e.g. "Drinks" or "Book the boat" |
todos[].estimate | number | Non | What it should cost, in the event currency (12.50) |
again | boolean | Non | true only when the user confirms they want a second event like the one just created |
add_people Add people to an event
- Écrit
- Compte
Use when the user wants more people in one of their CabuTally events ("add Bea and Tom to the trip", "añade a Bea al viaje", "ajoute Bea au voyage"). Adds each as a placeholder the person can later join as from the shared link. Not for creating an event: create_event takes its people.
Paramètres (3)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
names | string[] | Oui | The new people's first names, never the user |
again | boolean | Non | true only when the user confirms they want someone with the same name as a person already in the event, or a second copy of someone just added |
add_todos Add to-dos to an event
- Écrit
- Compte
Use when the user wants things to sort out added to one of their CabuTally events: turning what the group has to buy, book or bring into its to-do list ("add drinks, ice and the boat to the list", "Luis brings the drinks", "apunta las bebidas", "ajoute les boissons à la liste"). Each to-do can have an estimate and the people on it. Not for marking a to-do done or claiming an existing one: that is update_todo. Not for money already spent: that is add_expenses.
Paramètres (7)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
todos | object[] | Oui | |
todos[].name | string | Oui | What to sort out, e.g. "Drinks" or "Book the boat" |
todos[].estimate | number | Non | What it should cost, in the event currency (12.50) |
todos[].claimedBy | string[] | Non | Who is on it: names, "me", or guestIds |
currency | string | Non | Only when the user names a currency ("85€", "20 dólares"): its ISO code. Leave out for a bare amount, which is in the event's currency. A currency other than the event's is refused (currency_mismatch) and nothing is written: ask for the amount in the event's currency, never resend the same number without it |
again | boolean | Non | true only when the user confirms they want it added although it looks like something already there: a second copy of what was just added, or a possible_duplicate |
update_todo Update a to-do
- Écrit
- Compte
Use when someone takes on, drops or finishes a to-do in one of their CabuTally events ("I'll bring the drinks", "drinks are sorted", "Luis is doing the boat", "yo llevo las bebidas"). claim puts a person on it, release takes them off, done and undone tick it. Not for adding a new to-do: that is add_todos.
Paramètres (4)
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
eventId | uuid | Oui | The event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which |
todo | string | Oui | The to-do, by its name as the user said it, or a todoId from an earlier answer |
action | "claim" | "release" | "done" | "undone" | Oui | claim: put the person on it; release: take them off; done: tick it; undone: untick it |
person | string | Non | For claim and release: who, by name, "me" or guestId. Defaults to the user |
Aide
Écris à atencion@azurblade.com, en français, anglais ou espagnol. Plus sur lapage d’aide.