# PhoenixLiveCalendar v0.1.0 - Table of Contents

A comprehensive calendar and scheduling component library for Phoenix LiveView

## Pages

- [PhoenixLiveCalendar](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [PhoenixLiveCalendar](PhoenixLiveCalendar.md): A comprehensive calendar and scheduling component library for Phoenix LiveView.

- Views
  - [PhoenixLiveCalendar.Views.Agenda](PhoenixLiveCalendar.Views.Agenda.md): Agenda/list view — displays events as a flat chronological list grouped by date.

  - [PhoenixLiveCalendar.Views.DayView](PhoenixLiveCalendar.Views.DayView.md): Day view — a single-column time grid. Delegates to `WeekGrid` with one date.

  - [PhoenixLiveCalendar.Views.MonthGrid](PhoenixLiveCalendar.Views.MonthGrid.md): Month grid view — the traditional calendar layout with 6 rows of 7 days.
  - [PhoenixLiveCalendar.Views.NDayView](PhoenixLiveCalendar.Views.NDayView.md): N-day view — shows an arbitrary number of day columns.
  - [PhoenixLiveCalendar.Views.ResourceView](PhoenixLiveCalendar.Views.ResourceView.md): Resource columns view — resources displayed as columns in a day/week time grid.
  - [PhoenixLiveCalendar.Views.Timeline](PhoenixLiveCalendar.Views.Timeline.md): Timeline view — horizontal time axis with resources as rows.
  - [PhoenixLiveCalendar.Views.WeekGrid](PhoenixLiveCalendar.Views.WeekGrid.md): Week time grid view — 7 day columns with a vertical time axis.
  - [PhoenixLiveCalendar.Views.YearView](PhoenixLiveCalendar.Views.YearView.md): Year view — displays 12 mini-month calendars in a responsive grid.

- Components
  - [PhoenixLiveCalendar.CalendarComponent](PhoenixLiveCalendar.CalendarComponent.md): The main calendar LiveComponent.
  - [PhoenixLiveCalendar.Components.EventItem](PhoenixLiveCalendar.Components.EventItem.md): Renders a single event within a calendar cell or time grid.
  - [PhoenixLiveCalendar.Components.EventPopover](PhoenixLiveCalendar.Components.EventPopover.md): A popover/tooltip component for displaying event details on click or hover.
  - [PhoenixLiveCalendar.Components.Header](PhoenixLiveCalendar.Components.Header.md): Calendar toolbar component with navigation, title, and view switcher.

  - [PhoenixLiveCalendar.Components.MiniCalendar](PhoenixLiveCalendar.Components.MiniCalendar.md): A compact month calendar used in year view and as a sidebar date picker.

  - [PhoenixLiveCalendar.Components.TimeGutter](PhoenixLiveCalendar.Components.TimeGutter.md): Renders the time labels column alongside a time grid view.

- Data structures
  - [PhoenixLiveCalendar.Availability](PhoenixLiveCalendar.Availability.md): Represents a recurring availability window or a date-specific override.
  - [PhoenixLiveCalendar.BookingConfig](PhoenixLiveCalendar.BookingConfig.md): Defines constraints for bookable time slots.
  - [PhoenixLiveCalendar.DayMarker](PhoenixLiveCalendar.DayMarker.md): Represents a date-level annotation — holidays, special hours, closures, notices.
  - [PhoenixLiveCalendar.Event](PhoenixLiveCalendar.Event.md): Represents a calendar event.
  - [PhoenixLiveCalendar.Eventable](PhoenixLiveCalendar.Eventable.md): Optional protocol for auto-converting domain structs to `PhoenixLiveCalendar.Event`.
  - [PhoenixLiveCalendar.Resource](PhoenixLiveCalendar.Resource.md): Represents a schedulable resource such as a room, person, or piece of equipment.

- Persistence
  - [PhoenixLiveCalendar.Store.Ecto.EventSchema](PhoenixLiveCalendar.Store.Ecto.EventSchema.md): Default Ecto schema for calendar events.
  - [PhoenixLiveCalendar.Store.Ecto.EventStoreEcto](PhoenixLiveCalendar.Store.Ecto.EventStoreEcto.md): Default Ecto implementation of `PhoenixLiveCalendar.Store.EventStore`.
  - [PhoenixLiveCalendar.Store.Ecto.Migrations](PhoenixLiveCalendar.Store.Ecto.Migrations.md): Versioned migrations for PhoenixLiveCalendar's Ecto persistence layer.
  - [PhoenixLiveCalendar.Store.Ecto.RepoHelper](PhoenixLiveCalendar.Store.Ecto.RepoHelper.md): Runtime repo resolution for the optional Ecto layer.
  - [PhoenixLiveCalendar.Store.EventStore](PhoenixLiveCalendar.Store.EventStore.md): Behaviour defining the data access interface for calendar events.

- Utilities
  - [PhoenixLiveCalendar.PubSub](PhoenixLiveCalendar.PubSub.md): Optional PubSub integration for real-time calendar updates.
  - [PhoenixLiveCalendar.Utils.Constraints](PhoenixLiveCalendar.Utils.Constraints.md): Booking constraint validation logic.
  - [PhoenixLiveCalendar.Utils.DateHelpers](PhoenixLiveCalendar.Utils.DateHelpers.md): Date math utilities for calendar grid generation.
  - [PhoenixLiveCalendar.Utils.I18n](PhoenixLiveCalendar.Utils.I18n.md): Internationalization helpers for calendar labels, day names, month names,
and date/time formatting.
  - [PhoenixLiveCalendar.Utils.OverlapLayout](PhoenixLiveCalendar.Utils.OverlapLayout.md): Computes side-by-side positioning for overlapping events in a time grid.
  - [PhoenixLiveCalendar.Utils.Telemetry](PhoenixLiveCalendar.Utils.Telemetry.md): Performance measurement and telemetry for PhoenixLiveCalendar.
  - [PhoenixLiveCalendar.Utils.TimeSlots](PhoenixLiveCalendar.Utils.TimeSlots.md): Generates time slot grids for day/week views and bookable slot lists.

## Mix Tasks

- [mix phoenix_live_calendar.install](Mix.Tasks.PhoenixLiveCalendar.Install.md): Installs PhoenixLiveCalendar into your Phoenix project.

