API: Feed calendario
Ogni membro può trasformare una VISTA di attività — una lista o uno dei filtri intelligenti — in un feed iCalendar (RFC 5545) delle sue attività in sospeso con data di scadenza, rese come eventi di giornata intera. I feed contengono solo titoli e date — mai le descrizioni. I feed sono per utente E per vista.
Una vista si indirizza così:
| Vista | Valore di view |
|---|---|
| una lista | list:{listId} |
| tutte le attività | all |
| assegnate a me | assignedToMe |
| non assegnate | unassigned |
| scadute | pastDue |
| in scadenza (prossimi 7 giorni) | dueSoon |
assignedToMe indica sempre il PROPRIETARIO del feed; le finestre di
pastDue/dueSoon vengono valutate al momento della richiesta rispetto
al giorno di calendario UTC.
Generare (o ruotare) un token del feed
Sezione intitolata “Generare (o ruotare) un token del feed”POST /api/workspaces/{workspaceId}/calendar-feed{ "view": "assignedToMe", "name": "Assigned to me" }name è il nome visualizzato della vista nella lingua di chi chiama —
viene congelato per i feed di filtro (i feed di lista rendono sempre il
nome attuale della lista). Restituisce 201:
{ "token": "tdmcal_…", "path": "/api/calendar/tdmcal_…" }Il token (256 bit casuali, prefisso tdmcal_) viene mostrato esattamente
una volta — il server ne conserva solo l’hash. Generarlo di nuovo per la
stessa vista lo RUOTA: il token precedente smette immediatamente di
funzionare.
Stato del feed
Sezione intitolata “Stato del feed”GET /api/workspaces/{workspaceId}/calendar-feed?view={view}Restituisce { "active": true, "createdAt": "…" } — mai il token stesso.
Revocare
Sezione intitolata “Revocare”DELETE /api/workspaces/{workspaceId}/calendar-feed?view={view}Restituisce 204; idempotente.
Il feed pubblico
Sezione intitolata “Il feed pubblico”GET /api/calendar/{token}Senza autenticazione — il token è la credenziale. Serve text/calendar.
L’autorizzazione viene ricontrollata a ogni richiesta: se il membro lascia
lo spazio di lavoro, o la lista o l’account vengono eliminati, il feed
risponde 404, come un token sconosciuto o ruotato.
Download singolo
Sezione intitolata “Download singolo”GET /api/workspaces/{workspaceId}/calendar.ics?view={view}&name={name}Autenticato tramite sessione; restituisce lo stesso documento iCalendar
come allegato (name etichetta le viste di filtro). Un’istantanea — a
differenza del feed, non si aggiorna mai.
