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)
NomTypeObligatoireDescription
namestringOuiThe event name, e.g. "Ibiza weekend"
peoplestring[]NonThe OTHER people going, by first name. Never the user: the app asks for their name.
budgetnumberNonThe total budget for the whole group, if one was given
currencystringNonISO 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)
NomTypeObligatoireDescription
currencystringNon
paymentsobject[]Oui
payments[].paidBystringOuiWho paid
payments[].amountnumberOuiHow much they paid, in currency units (12.50). Read it as the user writes numbers: in Spanish "1.200" is 1200
payments[].sharedBystring[]NonWho shares this payment; leave out when everyone does
everyonestring[]NonEveryone in the split, including people who paid nothing
mestringNonThe name used for the user in payments, if they are in the split
eventNamestringNonWhat 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)
NomTypeObligatoireDescription
eventIduuidOuiThe 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
personstringOuiWho 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
paidBystringNonOnly what this person paid (or helped pay): a name, "me", or a guestId
wordstringNonWords to find in the description or note, as the app's search does: any case, any accents, every word must appear ("cena", "uber airport")
categorystringNonA category by name: the built-in ones in English ("Food", "Transport", "Accommodation") or one the group made. A main category includes its subcategories
fromstringNonFirst day, YYYY-MM-DD: the day it was spent
tostringNonLast day, YYYY-MM-DD, included
includeNotesbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
sincestringNonISO 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
currencystringNonOnly 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
rowsobject[]Oui
rows[].descriptionstringOuiWhat it was, e.g. "Petrol"
rows[].amountnumberOuiThe 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[].paidBystring or object[]OuiWho 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[].personstringOuiA 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[].amountnumberOuiHow much this person paid, in the event currency (12.50)
rows[].sharedBystring[]NonWho 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[].sharesobject[]NonInstead of sharedBy, for portions ("Sam had two drinks, Maya and Leo one"): everyone who shares it, each with their portions
rows[].shares[].personstringOuiA 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[].sharesintegerOuiWhole portions, 1 to 99
rows[].amountsobject[]NonInstead 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[].personstringOuiA 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[].amountnumberOuiWhat this person owes of it, in the event currency
rows[].privatebooleanNontrue to show it only to the people it involves; only when the user asks
rows[].categorystringNonA category name as the event has it, e.g. "Fuel"; leave out when unsure
rows[].datestringNonThe 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[].notestringNonA 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
currencystringNonOnly 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
rowsobject[]Oui
rows[].descriptionstringOuiWhat it was, e.g. "Petrol"
rows[].amountnumberOuiThe 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[].paidBystring or object[]OuiWho 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[].personstringOuiA 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[].amountnumberOuiHow much this person paid, in the event currency (12.50)
rows[].sharedBystring[]NonWho 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[].sharesobject[]NonInstead of sharedBy, for portions ("Sam had two drinks, Maya and Leo one"): everyone who shares it, each with their portions
rows[].shares[].personstringOuiA 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[].sharesintegerOuiWhole portions, 1 to 99
rows[].amountsobject[]NonInstead 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[].personstringOuiA 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[].amountnumberOuiWhat this person owes of it, in the event currency
rows[].privatebooleanNontrue to show it only to the people it involves; only when the user asks
rows[].categorystringNonA category name as the event has it, e.g. "Fuel"; leave out when unsure
rows[].datestringNonThe 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[].notestringNonA longer note, only when the user gives one
againbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
fromstringOuiWho handed the money over: a name, "me", or a guestId
tostringOuiWho received it: a name, "me", or a guestId
amountnumberOuiHow much, in the event currency
currencystringNonOnly 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
notestringNonA 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
againbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
fromstringNonWho put the money in; leave out for the user. Only the collector records it for someone else
amountnumberOuiHow much, in the event currency
currencystringNonOnly 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
notestringNonA short note, only when the user gives one
againbooleanNontrue 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)
NomTypeObligatoireDescription
namestringOuiThe event name, e.g. "Ibiza weekend"
currencystringOuiISO code of the currency the group spends in
displayNamestringNonThe 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
peoplestring[]NonThe OTHER people going, by first name, added as placeholders. Never the user
budgetnumberNonThe total budget for the whole group, if one was given
todosobject[]NonThings to sort out for it ("drinks", "book the boat"), with an estimate if known
todos[].namestringOuiWhat to sort out, e.g. "Drinks" or "Book the boat"
todos[].estimatenumberNonWhat it should cost, in the event currency (12.50)
againbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
namesstring[]OuiThe new people's first names, never the user
againbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
todosobject[]Oui
todos[].namestringOuiWhat to sort out, e.g. "Drinks" or "Book the boat"
todos[].estimatenumberNonWhat it should cost, in the event currency (12.50)
todos[].claimedBystring[]NonWho is on it: names, "me", or guestIds
currencystringNonOnly 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
againbooleanNontrue 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)
NomTypeObligatoireDescription
eventIduuidOuiThe event, as list_my_events returns it (eventId). When the user names none and more than one could fit, ask which
todostringOuiThe to-do, by its name as the user said it, or a todoId from an earlier answer
action"claim" | "release" | "done" | "undone"Ouiclaim: put the person on it; release: take them off; done: tick it; undone: untick it
personstringNonFor 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.