Skip to content

Agenda version 0.3.0

Latest

Choose a tag to compare

@kipcole9 kipcole9 released this 01 Nov 09:11
· 2 commits to main since this release

[v0.3.0] — 2026-11-01

Breaking changes

  • Agenda.Allocation's :role field is :requirement, and Agenda.claim/4 and Agenda.record/4 take :requirement where they took :role: it names the requirement a resource fills, which iCalendar's ROLE does not.

  • Agenda.Session.open_roles/1 is open_requirements/1.

Added

  • Agenda.free_busy/2 gives each resource's claims as {:busy | :tentative, interval} pairs, iCalendar's BUSY and BUSY-TENTATIVE, where busy/2 gives the intervals alone.

  • Agenda.cancel/2 cancels a session, freeing what it held or booked: the session's name for release/2, completing hold, confirm and cancel.

  • Agenda.Resource.cutype/1 and resource_type/1 read the conventional cutype: and resource_type: attributes, iCalendar's CUTYPE and RFC 9073's RESOURCE-TYPE; a resource with no cutype: is :unknown.

  • Agenda.Place.new/2 takes :location_type, RFC 9073's LOCATION-TYPE; the Agenda.Place moduledoc maps a place onto VLOCATION and says what an export loses.

  • An occurrence of Agenda.Series.expand/3 carries a recurrence_id, the start of its repetition (iCalendar's RECURRENCE-ID), into its arrangements and allocations, beside the series name.

Changed

  • Agenda runs on Tempo 2.3 (ex_tempo ~> 2.3).

  • The Agenda.Precedence, Agenda.Availability, Agenda.Session, Agenda.Ledger and Agenda.Track moduledocs record how each maps onto iCalendar, and what an export loses.