Options are many, but I would suggest looking into complete PSA Platforms to maximize the benefits. Maybe something like Mavenlink or Autotask. There are also point solution, for example - https://www.float.com/. Or you can look into a platform such as Dynamics 365 (https://docs.microsoft.com/en-us/dynamics365/field-service/universal-resource-scheduling-for-field-service) that can be extended to do just about anything and can be integrated with Microsoft (Office) 365 services to enable seamless collaboration.
No real need to tie to a Microsoft stack... We use NetSuite and NetSuite CRM, so connectivity there is a big plus. Predictive scheduling is an area we'd really like to explore, along with robust APIs for reporting as well as an accessible front-end for real-time schedule changes.