When you use appointment booking and accept an appointment slot/offer, the suggestion (see Scheduling Concepts - Appointment Booking) is:
The activity must be constrained to the time slot in the appointment offer. The preferred way of doing this is to create an availability record of type ACCEPTED_APPOINTMENT. The constrained time slot must be at least as long as the original appointment offer.
In your case the availability would span the entire day. In addition you can use Activity_Status>fixed:
If true, resource_id must also be provided and cannot be changed by the DSE. The DSE will only consider scheduling the activity into the route of this resource. However, there is no guarantee that the activity will actually be scheduled to the resource – the activity can still be unallocated.
Alternatively you could use a resource preference, which would still prefer the technician, but give the DSE some more flexibility if the resource is no longer available (with “fixed” the activity could no longer be allocated i.e., sick technician would mean missed appointment).