Skip to main content

Trip Management

The Bookings page is the central hub for viewing all Turo trips. Trips are imported via CSV or Chrome extension sync and displayed with rich filtering, multiple view modes, and detailed earnings breakdowns.

Trip Statuses

StatusMeaning
CompletedTrip has ended and earnings are finalized
In ProgressGuest currently has the vehicle
UpcomingFuture reservation confirmed
CancelledTrip was cancelled before or during the rental
Trips can be filtered by:
  • Status — Completed, In Progress, Upcoming, Cancelled
  • Date range — Filter by trip start or end dates
  • Vehicle — Show trips for a specific vehicle
  • Search — Free-text search across reservation ID, guest name, and vehicle name
The BookingFilters component manages all filter state and passes it to the data hook.

View Modes

The default view. Shows trips in a sortable table with columns for vehicle, guest, dates, duration, earnings, and status. Each row is clickable to open the detail panel. Component: BookingsTable with BookingRow.
A grid of trip cards for a more visual layout. Each card shows key trip info at a glance. Component: BookingCard.
A Gantt-style calendar showing trips as horizontal bars across a date grid, grouped by vehicle. Useful for spotting scheduling gaps and overlaps. Components: CalendarGrid, CalendarVehicleRow, CalendarBookingBar.
Toggle between views using the ViewToggle component in the page header.

Booking Detail Panel

Clicking a trip opens BookingDetailPanel, a slide-over panel showing:
  • Full trip dates and duration
  • Guest information
  • Complete earnings breakdown (via EarningsBreakdown)
  • Fee details (via FeesSection)
  • Trip metrics (via TripMetrics)

Header Statistics

The HeaderStats / BookingStats components display aggregate stats above the trip list: total trips, total earnings, average per trip, and average duration for the current filter selection.

Key Components

ComponentPurpose
BookingsTableMain table view with sortable columns
BookingCardCard view for individual trips
BookingDetailPanelSlide-over with full trip details
BookingFiltersStatus, date, vehicle, and search filters
CalendarGridGantt-style calendar view
EarningsBreakdownLine-by-line earnings for a trip
ViewToggleSwitch between table, card, and calendar views
SelectionActionBarBulk actions for selected trips

Data Source

Trips come from the trips table, populated by CSV import or Chrome extension sync. The useBookings hook in src/hooks/useBookings.ts handles fetching with filter parameters.