# Show the booked service and appointment time

**Status:** source repaired and copied to the owned portal renderer4106; six focused regression cases and base-app TypeScript check pass. An isolated fresh customer browser now reads the saved appointment correctly; the screenshot is retained in `assets/reservation-display/maya-reservation-card.png`.

Maya's saved reservation F8KRSUYS is for **Portal design consultation**,21September2026,10:00–10:30AM America/Chicago. The portal previously displayed the generated reference as the service and the record creation date, without the appointment time.

`base-app/src/components/my-account/Reservations.tsx` and `reservation-display.ts` now read the canonical service, startTime, endTime and business timezone for both the list and details panel. Search matches service/type/reference; status matching and badges normalize case. Missing or malformed times display unavailable. They never fall back to record creation or the current date. Invalid/missing timezone explicitly displays UTC with a timezone-unavailable note; an offset-less timestamp is not silently interpreted in the browser's timezone.

[Tests](assets/reservation-display/tests.txt) cover the real appointment values, service/reference search and case normalization, missing/invalid timestamps, explicit timezone fallback, ambiguous timestamp rejection and actual React list rendering. The existing unrelated no-op Cancel/Reschedule controls were not expanded into an unverified booking mutation flow in this bounded display fix.
