Repository navigation
[v0.3.0] — 2026-11-01
Breaking changes
-
Agenda.Allocation's:rolefield is:requirement, andAgenda.claim/4andAgenda.record/4take:requirementwhere they took:role: it names the requirement a resource fills, which iCalendar'sROLEdoes not. -
Agenda.Session.open_roles/1isopen_requirements/1.
Added
-
Agenda.free_busy/2gives each resource's claims as{:busy | :tentative, interval}pairs, iCalendar'sBUSYandBUSY-TENTATIVE, wherebusy/2gives the intervals alone. -
Agenda.cancel/2cancels a session, freeing what it held or booked: the session's name forrelease/2, completing hold, confirm and cancel. -
Agenda.Resource.cutype/1andresource_type/1read the conventionalcutype:andresource_type:attributes, iCalendar'sCUTYPEand RFC 9073'sRESOURCE-TYPE; a resource with nocutype:is:unknown. -
Agenda.Place.new/2takes:location_type, RFC 9073'sLOCATION-TYPE; theAgenda.Placemoduledoc maps a place ontoVLOCATIONand says what an export loses. -
An occurrence of
Agenda.Series.expand/3carries arecurrence_id, the start of its repetition (iCalendar'sRECURRENCE-ID), into its arrangements and allocations, beside theseriesname.
Changed
-
Agenda runs on Tempo 2.3 (
ex_tempo ~> 2.3). -
The
Agenda.Precedence,Agenda.Availability,Agenda.Session,Agenda.LedgerandAgenda.Trackmoduledocs record how each maps onto iCalendar, and what an export loses.