API : Flux de calendrier
Chaque membre peut transformer une VUE de tâches — une liste, ou l’un des filtres intelligents — en flux iCalendar (RFC 5545) de ses tâches en attente avec date d’échéance, rendues comme événements « journée entière ». Les flux ne contiennent que les titres et les dates — jamais les descriptions. Les flux sont par utilisateur ET par vue.
Une vue est adressée ainsi :
| Vue | Valeur view |
|---|---|
| une liste | list:{listId} |
| toutes les tâches | all |
| assignées à moi | assignedToMe |
| non assignées | unassigned |
| en retard | pastDue |
| échéance proche (7 prochains jours) | dueSoon |
assignedToMe désigne toujours le PROPRIÉTAIRE du flux ; les fenêtres de
pastDue/dueSoon sont évaluées au moment de la récupération, par rapport
au jour calendaire UTC.
Créer (ou régénérer) un jeton de flux
Section intitulée « Créer (ou régénérer) un jeton de flux »POST /api/workspaces/{workspaceId}/calendar-feed{ "view": "assignedToMe", "name": "Assigned to me" }name est le nom d’affichage de la vue dans la langue de l’appelant — figé
au moment de la création pour les flux de filtres (les flux de listes
affichent toujours le nom actuel de la liste). Renvoie 201 :
{ "token": "tdmcal_…", "path": "/api/calendar/tdmcal_…" }Le jeton (256 bits aléatoires, préfixe tdmcal_) n’est affiché qu’une seule
fois — le serveur ne stocke que son hachage. Créer à nouveau pour la même
vue RÉGÉNÈRE : le jeton précédent cesse de fonctionner immédiatement.
Statut du flux
Section intitulée « Statut du flux »GET /api/workspaces/{workspaceId}/calendar-feed?view={view}Renvoie { "active": true, "createdAt": "…" } — jamais le jeton lui-même.
Révoquer
Section intitulée « Révoquer »DELETE /api/workspaces/{workspaceId}/calendar-feed?view={view}Renvoie 204 ; idempotent.
Le flux public
Section intitulée « Le flux public »GET /api/calendar/{token}Non authentifié — le jeton est l’identifiant. Sert du text/calendar.
L’autorisation est revérifiée à chaque récupération : si le membre quitte
l’espace de travail, ou si la liste ou le compte est supprimé, le flux
répond 404, exactement comme pour un jeton inconnu ou régénéré.
Téléchargement ponctuel
Section intitulée « Téléchargement ponctuel »GET /api/workspaces/{workspaceId}/calendar.ics?view={view}&name={name}Authentifié par session ; renvoie le même document iCalendar en pièce
jointe (name étiquette les vues de filtres). Un instantané — contrairement
au flux, il ne se met jamais à jour.
