# Phase 10: Events - Discussion Log

> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

**Date:** 2026-05-16
**Phase:** 10-Events
**Areas discussed:** Time Model, Events Tab Shape, Create/Edit Flow, Event Lifecycle, Phase 11 Handoff

---

## Time Model

| Option | Description | Selected |
|--------|-------------|----------|
| Local date/time, no timezone field | User enters date + time and Xtablo displays the same date + time everywhere. | ✓ |
| UTC timestamps with timezone conversion | Store exact instants and convert for display. | |
| Date-only allowed | Support all-day/date-only or timed events. | |

**User's choice:** Local date/time, no timezone field.
**Notes:** Start date/time required. End time is optional, same-day only, and must be after start when provided. If no end time exists, display only the start time. Store separate `event_date`, `start_time`, and nullable `end_time` columns.

---

## Events Tab Shape

| Option | Description | Selected |
|--------|-------------|----------|
| Agenda/list-first tab | Chronological list inside a new Events tab. | |
| Compact upcoming section on Overview | Small upcoming-events block on overview. | |
| Calendar grid | Month/week style calendar surface. | ✓ |

**User's choice:** Calendar grid.
**Notes:** Scope is a simple month grid only. Include previous/next month navigation. Users can create events from both a `New event` button and day-cell clicks with the clicked date prefilled. Day cells show event titles only. Crowded days show first few titles plus `+N more`.

---

## Create/Edit Flow

| Option | Description | Selected |
|--------|-------------|----------|
| Inline panel inside the Events tab | HTMX swaps a form inside the Events tab. | ✓ |
| Separate event form page | Full-page form and validation flow. | |
| Modal-like dialog fragment | Dialog-style fragment with more custom interaction state. | |

**User's choice:** Inline panel inside the Events tab.
**Notes:** Form fields are required title/date/start time plus optional end time/description/location. Clicking an event title opens inline edit. Create, edit, and delete refresh the whole Events tab/calendar.

---

## Event Lifecycle

| Option | Description | Selected |
|--------|-------------|----------|
| Hard delete | Remove the row after confirmation. | ✓ |
| Soft delete with `deleted_at` | Preserve rows and filter deleted events. | |
| Archive/cancel state | Add a richer lifecycle state. | |

**User's choice:** Hard delete.
**Notes:** Past events remain visible when browsing past months. Events inside a day are ordered by start time, then title. No special empty state is needed beyond the calendar and the `New event` action.

---

## Phase 11 Handoff

| Option | Description | Selected |
|--------|-------------|----------|
| User-scoped query surface | Query events across accessible tablos for the authenticated user. | ✓ |
| Tablo-only query surface | Keep Phase 10 strictly tablo-local. | |
| Full planning route now | Start the Phase 11 screen during Phase 10. | |

**User's choice:** User-scoped query surface.
**Notes:** Planning links should target `/tablos/{id}/events?month=YYYY-MM`. User-scoped results should include event fields plus tablo title/color, and support date-range filtering.

---

## the agent's Discretion

- Exact route names, query names, fragment boundaries, calendar CSS, mobile layout, and validation copy are left to planner/executor discretion within the captured decisions.

## Deferred Ideas

- Timezone selection/conversion, multi-day events, all-day/date-only events, event categories/colors, soft delete/archive/cancel lifecycle, week/day views, richer day details, and the full individual planning page.
