> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oximail.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Tâches

> La surface JMAP Tasks : TaskList, Task (JSTask) et les modèles de tâches. La récurrence, les alertes, les dépendances et la passerelle VTODO.

Les tâches suivent le draft JMAP Tasks (`urn:oximail:params:jmap:tasks` en plus de la forme standard), avec des tâches en objets JSTask (famille RFC 8984). Les mêmes éléments sont servis en VTODO par [CalDAV](../operator/legacy-protocols).

## Objets et méthodes

| Objet          | Méthodes                                         | Notes                                                                                                                  |
| -------------- | ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| `TaskList`     | `get`, `set`, `query`, `changes`                 | Les collections, avec droits `shareWith` ; chaque compte a exactement **une liste par défaut** (un invariant en base). |
| `Task`         | `get`, `set`, `query`, `queryChanges`, `changes` | Les éléments JSTask.                                                                                                   |
| `TaskTemplate` | `get`, `set`, `instantiate`                      | Les modèles réutilisables ; `instantiate` en tire de vraies tâches.                                                    |

## Comportements à connaître

* **Une création sans `taskListIds`** classe la tâche dans la liste par défaut du compte, résolue avant la transaction d'écriture, donc rapide même sous charge.
* **La récurrence et l'avancement** suivent JSTask : les tâches récurrentes se développent par la même autorité d'occurrences que les événements d'agenda ; l'achèvement par occurrence est représentable.
* **Les alertes** acceptent des déclencheurs relatifs et absolus ; une alerte absolue n'exige pas d'échéance. Le déclenchement est côté serveur, avec déduplication par occurrence.
* **Un patch `null` efface.** Un patch de mise à jour JMAP qui met une propriété à `null` la supprime (RFC 8620 §5.3), `description` et `priority` comprises.
* **Les dépendances et le suivi du temps** (`dependsOn`, champs de temps) sont modélisés sur l'objet tâche.
* **L'aller-retour VTODO** : les clients CalDAV voient les listes comme des collections ; les `VALARM` des VTODO (y compris `TRIGGER;VALUE=DATE-TIME` absolu) s'importent en alertes et se réémettent au GET ; les ETag sont des empreintes de contenu, donc des modifications concurrentes depuis deux protocoles entrent en conflit bruyamment (`412`) au lieu de s'écraser en silence. Les lignes en double des imports répétés se réparent avec `oximail account dedupe-tasks` ([migration](../operator/migration)).

Les liens tâche-contenu (`tasklinks`) et les modèles sont annoncés comme objets de capacité OxiMail : un client JMAP générique peut les détecter. Les règles de rigueur sont identiques à la [surface courrier](./jmap-mail).
