Carriers book their own time slots. You set the hours and the rules. Doors get assigned when the truck is actually on site. And when the truck actually shows up, the appointment is already waiting at the gate, in the queue and on the door board.
Send a carrier a booking link. They see open slots inside your receiving and shipping hours, pick one, and get a confirmation. No account for them to set up.
Every appointment for the day on one timeline. Set your receiving and shipping hours. Move an appointment when the plan changes, and the carrier hears about it. Which door it goes to is a decision for the dock, on the day.
When the driver checks in, ROME already knows the order, the customer and the due time. That same record goes into the truck queue and onto the door. Nobody types it twice.