1 Hub
Hub — Active State
9:41
Scheduling
3
Today
12
This Week
2
Pending
Calendar
View appointments
Availability
Set working hours
Appointments
Manage bookings
Upcoming Appointments
Sarah Thompson
Kitchen Remodel — In-Home Review
Today, 2:00 PM – 3:00 PM
482 W Market St, Akron, OH
Confirmed
Mike Denson
Deck Repair — Site Visit
Tomorrow, 10:00 AM – 11:00 AM
1127 Portage Trail, Cuyahoga Falls, OH
Pending
Pending Invitations

No pending invitations

Appointment requests from homeowners will appear here

SchedulingHome — contractor scheduling hub

useRouter, useThemedStyles(createStyles)

Hub — Empty State
9:41
Scheduling
0
Today
0
This Week
0
Pending
Calendar
View appointments
Availability
Set working hours
Appointments
Manage bookings
Upcoming Appointments

No upcoming appointments

Your scheduled appointments will appear here

Pending Invitations

No pending invitations

Appointment requests from homeowners will appear here

SchedulingHome — empty / new contractor state

Empty component renders for both sections


Calendar — Month View
9:41
Calendar
Last synced 3 min ago
Sync Now
Month
Week
Day
Agenda
Filters
February 2026
Today
SunMonTueWedThuFriSat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Wednesday, Feb 25
2 appointments
Janet Kowalski
Bathroom Tile — Estimate
10:00 AM – 11:00 AM
Confirmed
David Patterson
Roof Inspection — Site Visit
2:30 PM – 3:30 PM
Pending

ContractorCalendar — MonthView sub-component

useQuery(api.contractor.scheduling.listAppointments), viewMode: 'month'

Calendar — Week View
9:41
Calendar
Last synced 1 min ago
Sync Now
Month
Week
Day
Agenda
Feb 22 – Feb 28
Today
Sun22
Mon23
Tue24
Wed25
Thu26
Fri27
Sat28
8 AM
9 AM
9 AM Plumbing
10 AM
Tile Estimate
Estimate
11 AM
12 PM
1 PM
Consult
2 PM
Kitchen Review
Site Visit
3 PM

WeekView — time-grid with positioned blocks

weekAppointments, getAppointmentPosition(), scrollViewRef

Calendar — Day View
9:41
Calendar
Last synced just now
Sync Now
Month
Week
Day
Agenda
Tuesday, Feb 24
Today • 2 appointments
8 AM
9 AM
Tom Harris
Plumbing Repair — In-Home Review
9:00 AM – 10:00 AM
305 E Tallmadge Ave, Akron, OH
Confirmed
10 AM
11 AM
12 PM
1 PM
2 PM
Sarah Thompson
Kitchen Remodel — Site Visit
2:00 PM – 3:00 PM
482 W Market St, Akron, OH
Pending
3 PM
4 PM
5 PM

DayView — single-day timeline with current time indicator

selectedDayAppointments, navigateDay(), currentTimePosition

Calendar — Agenda View
9:41
Calendar
Last synced 2 min ago
Sync Now
Month
Week
Day
Agenda
Filters
Pending
Today — Tuesday, Feb 24
Sarah Thompson
Kitchen Remodel — Site Visit
2:00 PM – 3:00 PM
482 W Market St, Akron, OH
Pending
Tomorrow — Wednesday, Feb 25
David Patterson
Roof Inspection — Site Visit
2:30 PM – 3:30 PM
2210 Merriman Rd, Akron, OH
Pending
Friday, Feb 27
Linda Garcia
HVAC Maintenance — Consultation
11:00 AM – 12:00 PM
891 Sand Run Rd, Akron, OH
Pending
Monday, Mar 2
James Mitchell
Basement Waterproofing — Estimate
9:00 AM – 10:30 AM
55 Howe Ave, Cuyahoga Falls, OH
Pending

AgendaView — grouped by date, filterable list

groupedAppointments, upcomingAppointments, statusFilter: 'pending'


Weekly Availability
9:41
Availability
Weekly Schedule Set your weekly schedule so homeowners know when you are available for appointments.
Monday
8:00 AM – 5:00 PM
Tuesday
8:00 AM – 5:00 PM
Wednesday
8:00 AM – 5:00 PM
Thursday
8:00 AM – 5:00 PM
Friday
8:00 AM – 4:00 PM
Saturday
9:00 AM – 1:00 PM
Sunday
Not accepting appointments
Quick Templates
Mon–Fri 9–5
Mon–Sat 8–6
Every Day
Weekly Hours Summary
Mon
9h
Tue
9h
Wed
9h
Thu
9h
Fri
8h
Sat
4h
Sun
0h

Total Weekly Hours 48h

AvailabilitySettings — contractor weekly schedule

useMutation(api.contractor.scheduling.setAvailability), schedule state

Booking Settings
9:41
Booking Settings
Public Booking Page
Allow homeowners to book appointments online

3bids.com/book/ohio-plumbing-pro
Appointment Defaults
Default Duration
30 min
45 min
1 hour
1.5 hours
2 hours
Buffer Between Appointments
None
15m
30m
45m
Booking Rules
Minimum Notice
How far in advance must bookings be made
1 hr
2 hr
4 hr
24 hr
Maximum Advance
How far in the future can bookings be made
1 week
2 weeks
1 month
2 months
Behavior
Auto-Accept Bookings
Automatically confirm without manual approval
Email Notifications
Receive email when someone books
SMS Notifications
Receive text message when someone books

BookingPageSettings — public page config

useQuery(api.poster.availability.getBookingSettings), updateSettings mutation


Working Hours Setup
9:41
Availability Config
Configure Availability Set working hours, breaks, and booking rules. Homeowners will only see times you are available.
Working Hours
Monday
8:00 AM
5:00 PM
Tuesday
8:00 AM
5:00 PM
Wednesday
8:00 AM
5:00 PM
Thursday
8:00 AM
5:00 PM
Friday
8:00 AM
4:00 PM
Saturday
9:00 AM
1:00 PM
Sunday
Off
Break Times
Lunch Break
Applied to all working days
12:00 PM
1:00 PM

Add Another Break

AvailabilityConfig — working hours & break times

DaySchedule[], Break[] — setAvailability mutation

Booking Rules & Buffer
9:41
Availability Config
Buffer Between Appointments
Travel & Prep Time
Padding added between consecutive bookings
None
15 min
30 min
45 min
1 hour
Advance Booking Window
Minimum Notice
How far in advance must appointments be booked
1 hr
2 hr
4 hr
24 hr
48 hr

Maximum Advance
How far out can homeowners book
1 week
2 weeks
1 month
2 months
3 months
Allowed Appointment Types
Initial Consultation
First-time meeting with homeowner
Quote / Estimate
On-site measurement and pricing
Service Appointment
Scheduled work visit
Follow-up Visit
Check on completed work
Emergency Service
Urgent same-day requests
Inspection
Pre-project site assessment
Buffer & Notice Tips A 15-minute buffer gives you travel time. 24-hour notice prevents last-minute surprises. Adjust based on your service area.

BookingSettings — buffer, notice, advance booking, types

BookingSettings interface — setBookingSettings mutation


Onboarding Call — Selection
9:41
Onboarding Call
Welcome to 3Bids
Schedule a quick 15-minute call to get verified and start winning jobs
Profile
Docs
Call
Live!
What to Expect
Identity Verification
Quick check of your license and credentials
Platform Walkthrough
How bidding, payments, and scheduling work
Q&A
Ask anything — we are here to help
Pick a Day
Wed 25 Feb
Thu 26 Feb
Fri 27 Feb
Mon 2 Mar
Tue 3 Mar
Pick a Time
9:00 AM
10:00 AM
11:00 AM
12:00 PM
1:00 PM
2:00 PM
3:00 PM
4:00 PM
Your Call
Fri, Feb 27 • 10:00 AM

OnboardingCallBookingScreen — date + time selection

useMutation(api.contractor.scheduling.scheduleOnboardingCall), selectedDate/Time state

Onboarding Call — Scheduled
9:41
Onboarding Call
You are All Set!
Your onboarding call has been scheduled
Profile
Docs
Call
Pending
Call Details
Friday, February 27
10:00 AM – 10:15 AM EST
Google Meet
Link sent to your email
3Bids Onboarding Team
Danny & the crew from Akron
Calendar invite sent Check your email for the meeting link

OnboardingCallBookingScreen — isAlreadyScheduled state

profile?.user?.metadata?.onboardingCallScheduled === true

1 Hub
Hub & Calendar
9:41
Scheduling & Calendar
Today’s Schedule
5
Jobs Today
3
Confirmed
2
Pending
Upcoming
Roof Repair — Johnson
9:00 AM – 12:00 PM
Confirmed
Gutter Install — Garcia
1:00 PM – 3:00 PM
Pending
Siding Estimate — Lee
3:30 PM – 4:30 PM
Confirmed
Month View
Sun
Mon
Tue
Wed
Thu
Fri
Sat
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
This Week
12
Total
9
Confirmed
3
Pending
Availability & Booking
9:41
Availability & Booking
92%
Utilization
45h
Weekly
9h
Daily Avg
Weekly Hours
Monday
8:00 AM – 5:00 PM
Tuesday
8:00 AM – 5:00 PM
Wednesday
8:00 AM – 5:00 PM
Thursday
8:00 AM – 5:00 PM
Friday
8:00 AM – 3:00 PM
Sat – Sun
Unavailable
Your Booking Link
3bids.io/book/miller-roofing
Copy
Booking Settings
Auto-Accept Bookings
New bookings auto-confirmed
Buffer Between Jobs
Travel + prep time
30 min
Max Jobs Per Day
Capacity limit
6
Onboarding Call
Scheduled
Mar 15, 2026 at 2:00 PM
30-minute onboarding call
Availability SyncYour availability syncs automatically with Google Calendar. Changes here update your public booking page.
Onboarding & Settings
9:41
Onboarding & Settings
Onboarding Call
Call Duration
15m
30m
60m
Booking Link
3bids.io/book/miller-roofing
Call Types
OnboardingEstimateFollow-up
Booking PageShare your booking link with homeowners. They pick a time slot and you get an instant notification.
Google Calendar Sync
Connected
Last Sync2 min ago
DirectionTwo-way
CalendarMiller Roofing
Booking Page Preview
1 Hub
Scheduling Center
https://app.3bids.io/contractor/schedule
3BidsScheduling
Hub ⌘1
Calendar ⌘2
Week View ⌘3
Availability ⌘4
Booking Settings ⌘5
Onboarding ⌘6
MK
Mike Kowalski
Contractor
Settings ⌘,

Scheduling Center

5
Today
18
This Week
92%
Utilization
2
Pending
Today’s Jobs
Roof Repair — Johnson
9:00 AM – 12:00 PM • Confirmed
Gutter Install — Garcia
1:00 PM – 3:00 PM • Pending
Siding Estimate — Lee
3:30 PM – 4:30 PM • Confirmed
Weekly Overview

Calendar Live
https://app.3bids.io/contractor/schedule/calendar
3BidsScheduling
Hub ⌘1
Calendar ⌘2
Week View ⌘3
Availability ⌘4
Booking Settings ⌘5
Onboarding ⌘6
MK
Mike Kowalski
Contractor
Settings ⌘,

Calendar — March 2026

SUN
MON
TUE
WED
THU
FRI
SAT
23
24
Roof • 9AM
25
Gutter • 1PM
Siding • 3:30
26
27
Deck • 10AM
28
29
Drag & DropDrag appointments between days to reschedule. Color coding: green = confirmed, amber = pending, terracotta = site visit.

Settings & Availability
https://app.3bids.io/contractor/schedule/settings
3BidsScheduling
Hub ⌘1
Calendar ⌘2
Week View ⌘3
Availability ⌘4
Booking Settings ⌘5
Onboarding ⌘6
MK
Mike Kowalski
Contractor
Settings ⌘,

Settings & Availability

Your Booking Page
Share this link with homeowners to let them book directly
3bids.io/book/miller-roofing
Copy
Weekly Availability
Monday – Thursday
8:00 AM – 5:00 PM
Friday
8:00 AM – 3:00 PM
Saturday – Sunday
Off
Google Calendar
Connected
Two-way sync active. Last synced 2 minutes ago. Calendar: Miller Roofing.
Booking Rules
Auto-Accept
Instant booking confirmation
Buffer Time
Between appointments
30 min
Max Daily Jobs
Capacity limit per day
6
Advance Notice
Minimum booking lead time
24 hours
Booking PageShare your booking link with homeowners. They pick a time slot and you get an instant notification.

Data Architecture

Scheduling & Calendar — appointment management, availability configuration, calendar sync, and booking settings.

Source Files

  • screen schedule/index.tsx
  • screen schedule/calendar.tsx
  • screen schedule/availability.tsx
  • screen schedule/onboarding.tsx

Convex Queries

  • query getScheduleHub
  • query getCalendarEvents
  • query getAvailability
  • query getBookingSettings

Convex Mutations

  • mutation createAppointment
  • mutation updateAvailability
  • mutation syncGoogleCalendar
  • mutation updateBookingSettings

Appointment Lifecycle

Pending
Confirmed
In Progress
Completed
Cancelled
No Show

Key Design Decisions

Multi-View Calendar

Month, week, day, and agenda views with appointment-type color coding. Drag-to-reschedule on tablet and web.

Google Calendar Sync

Two-way sync with Google Calendar. Appointments created in 3Bids appear in Google and vice versa.

Availability Engine

Per-day availability with breaks, buffer times, and booking windows. Drives the public booking page slots.

Public Booking Page

Custom slug booking URL for homeowners. Auto-confirms or queues based on contractor settings.

Back to Top