Accessing Reservations
Access your reservations through:- Dashboard - “Ver más” button in the upcoming appointments section
- Quick access links - “Reservation history” link
- Direct URL -
/admin/dashboard/reservation-history
Reservation Data Structure
Each reservation in the system follows this interface:/workspace/source/server/src/modules/reservations/types/reservations.ts:2-19
Fetching All Reservations
Reservations are fetched using theReservationsStore:
/workspace/source/store/ReservationsStore.ts:69-91
Reservations for all professionals are sorted by start time in ascending order, showing your next upcoming appointments first.
Reservation Types
Your reservation list includes different types of calendar entries:Patient Sessions
Regular appointments booked by patients
Manual Blocks
Time slots you’ve manually blocked off
Payment Pending
Bookings awaiting payment confirmation
Identifying Manual Blocks
Manual blocks are identified by:/workspace/source/app/core/admin/components/home/DashboardAdmin.tsx:43
Reservation History Table
The reservation history displays appointments in a comprehensive table format.Table Columns
The table includes these columns:| Column | Description | Reference |
|---|---|---|
| Cliente | Patient name | Line 64 |
| Fecha y horario | Date and time of appointment | Line 66 |
| Modalidad | Session type (Virtual/Presencial) | Line 67 |
| Estado de pago | Payment status | Line 68 |
| Acciones | Actions (view, cancel) | Line 69 |
/workspace/source/app/core/admin/components/reservations/HistoryReservations.tsx:60-71
Table Implementation
Pagination
Reservation list includes pagination for easy navigation:Pagination Configuration
- Items per page: 8 reservations
- Navigation: Previous/Next buttons and page numbers
- Page indicators: Active page highlighting and ellipsis for skipped pages
/workspace/source/app/core/admin/components/reservations/HistoryReservations.tsx:20
Pagination Interface
/workspace/source/app/core/admin/components/reservations/HistoryReservations.tsx:22-28
Page Number Logic
The pagination intelligently displays page numbers:/workspace/source/app/core/admin/components/reservations/HistoryReservations.tsx:38-51
Pagination automatically collapses distant pages with ellipsis (…) for cleaner navigation when you have many appointments.
Filtering Reservations
Filter your reservations by:By Date
- View appointments for specific days, weeks, or months
- Calendar integration allows date-based filtering
- See all appointments in a selected date range
By Patient
- Select a patient to see only their appointments
- Available in the patient management view
- Useful for reviewing patient history
By Status
- PENDING - Awaiting confirmation or payment
- CONFIRMED - Appointment is confirmed
- CANCELLED - Appointment was cancelled
/workspace/source/server/src/modules/reservations/types/reservations.ts:4
By Modality
- Virtual - Online video sessions
- Presencial - In-person sessions at your office
/workspace/source/server/src/modules/reservations/types/reservations.ts:2
Calendar View
View reservations in calendar format for a visual overview:Calendar Features
Multiple Views
Switch between day, week, and month views
Color Coding
Different colors for sessions vs. manual blocks
Click to View
Click any event to see details or delete
Manual Blocks
Create time blocks to mark unavailable slots
Calendar Implementation
The calendar usesreact-big-calendar with dayjs:
/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:174-185
Calendar Schedule Bounds
The calendar respects your working hours:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:37 and :181-182
Event Styling
Calendar events are styled based on type:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:194-196
- Sesión - Regular patient sessions
- bloqueo-manual - Manual time blocks
Creating Manual Blocks
Why Manual Blocks?
Block off time slots when you’re unavailable:- Lunch breaks
- Administrative tasks
- Personal appointments
- Vacation days
- Buffer time between sessions
Creating a Block
Block Validation
The system validates blocks to prevent overlaps:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:57-61 and :131-134
Time Slot Availability
Available start times are calculated based on existing events:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:63-68
Creating Block Request
Blocks are created via the API:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:135-139
Deleting Reservations and Blocks
Deleting Manual Blocks
Remove blocks you no longer need:- Click the block in the calendar
- Confirm deletion in the modal
- Block is removed immediately
Block Deletion Implementation
/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:143-155
Only manual blocks (bloqueo-manual) can be deleted from the calendar. Patient sessions (Sesión) cannot be deleted directly - they must be cancelled through the proper cancellation flow.
Cancelling Reservations
To cancel a patient appointment:/workspace/source/store/ReservationsStore.ts:93-101
Viewing Reservation Details
Click any reservation to view full details:Detail View Includes
- Patient information - Name and contact details
- Session details - Date, time, duration, modality
- Payment status - Whether deposit was paid
- Reservation status - Current state (pending, confirmed, cancelled)
- Actions - Cancel or modify the appointment
/admin/dashboard/reserve/{reservationId}
Calendar Time Slots
Time slots are generated based on your session duration:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:70-81
Time slots include a 10-minute buffer after each session duration. For example, if your session is 45 minutes, slots appear every 55 minutes (45 + 10).
Calendar Legend
The calendar includes a legend to identify event types:- Sesión - Patient appointments (one color)
- Bloqueo manual - Manual blocks (different color)
/workspace/source/app/core/admin/components/calendar/Legend.tsx
Empty States
When no reservations exist:/workspace/source/app/core/admin/components/reservations/HistoryReservations.tsx:88-94
Sorting Reservations
Reservations are automatically sorted:- Professional view - By start time ascending (next appointments first)
- Patient view - By start time descending (most recent first)
/workspace/source/store/ReservationsStore.ts:79-83 and :40-44
Reloading Calendar Data
Refresh your calendar to see latest bookings:/workspace/source/app/core/admin/components/calendar/CalendarAdmin.tsx:95-101
The calendar automatically reloads after:
- Creating a manual block
- Deleting a block or reservation
- Component initialization
Best Practices
Regular Review
Check your reservation list daily to prepare for upcoming sessions
Use Manual Blocks
Block off time for breaks and non-session activities
Monitor Status
Keep track of pending vs confirmed appointments
Update Promptly
Cancel appointments early to allow patients to rebook
Next Steps
Dashboard
Return to your professional dashboard
Patient Management
View patient-specific reservation histories