Complete scheduling flow for contractors — hub, calendar views (month/week/day/agenda), availability settings, booking configuration, and onboarding call booking.
No pending invitations
Appointment requests from homeowners will appear here
SchedulingHome — contractor scheduling hub
useRouter, useThemedStyles(createStyles)
No upcoming appointments
Your scheduled appointments will appear here
No pending invitations
Appointment requests from homeowners will appear here
SchedulingHome — empty / new contractor state
Empty component renders for both sections
ContractorCalendar — MonthView sub-component
useQuery(api.contractor.scheduling.listAppointments), viewMode: 'month'
WeekView — time-grid with positioned blocks
weekAppointments, getAppointmentPosition(), scrollViewRef
DayView — single-day timeline with current time indicator
selectedDayAppointments, navigateDay(), currentTimePosition
AgendaView — grouped by date, filterable list
groupedAppointments, upcomingAppointments, statusFilter: 'pending'
AvailabilitySettings — contractor weekly schedule
useMutation(api.contractor.scheduling.setAvailability), schedule state
BookingPageSettings — public page config
useQuery(api.poster.availability.getBookingSettings), updateSettings mutation
AvailabilityConfig — working hours & break times
DaySchedule[], Break[] — setAvailability mutation
BookingSettings — buffer, notice, advance booking, types
BookingSettings interface — setBookingSettings mutation
OnboardingCallBookingScreen — date + time selection
useMutation(api.contractor.scheduling.scheduleOnboardingCall), selectedDate/Time state
OnboardingCallBookingScreen — isAlreadyScheduled state
profile?.user?.metadata?.onboardingCallScheduled === true
Scheduling & Calendar — appointment management, availability configuration, calendar sync, and booking settings.
schedule/index.tsxschedule/calendar.tsxschedule/availability.tsxschedule/onboarding.tsxgetScheduleHubgetCalendarEventsgetAvailabilitygetBookingSettingscreateAppointmentupdateAvailabilitysyncGoogleCalendarupdateBookingSettingsMonth, week, day, and agenda views with appointment-type color coding. Drag-to-reschedule on tablet and web.
Two-way sync with Google Calendar. Appointments created in 3Bids appear in Google and vice versa.
Per-day availability with breaks, buffer times, and booking windows. Drives the public booking page slots.
Custom slug booking URL for homeowners. Auto-confirms or queues based on contractor settings.