Alex Chartier's ABPro mods
I have been able to add functionality to ABPro with very minimal modifications to core code and none that is affected by software updates. I will list them below.
Set the appointment into different google calendars based on the UDF value chosen (in my case a Location UDF).
Increase the minimum gap requirement between appointments based on the UDF values of appointments on either side. The UDF in my case is a location and if the location changes between 2 appointments I need to ensure sufficient travel time. This change also forces an error if an attempt is made to book an appointment with an insufficient gap on either side.
Change the color of an appointment based on a UDF value. Again, this is for locations so we can see where each appointment is. I have also changed the Title popup of the appointment to the Location UDF value rather than the name or resource.
Manage multiple types of credits per person. ABP maintains the global user credit for a user, but I maintain a second table that splits this number into (in my case) 4 different types of credits. The type is selected as a Service (could have just as easily been a UDF) and when a client attempts to make an appointment for a specific service the credits by type table is checked (in the same way you check the user credits table) and an error is issued if they do not have the correct type. When a credit is consumed or refunded the correct type is consumed or refunded.
If you have another customer who wants to do something similar I could help them out.
(posted with Alex's approval ;-)