I’m building a customer portal integrated with ServiceM8 and need to offer appointments for an existing job.
Is there a supported way to retrieve the calculated available times used by Online Booking or SMS Booking Links? We need the next seven days of suitable appointments, respecting ServiceM8’s service/staff settings, diary, working hours and travel calculations. The portal would group those times into customer-facing arrival windows and book the underlying appointment against the existing job after rechecking availability.
I’ve checked the published API documentation but haven’t found an endpoint for these calculated booking offers. Reading existing diary entries alone doesn’t provide the same result.
Is there a supported API or partner endpoint for this? Alternatively, can an existing-job booking link be generated programmatically, without creating a duplicate job or asking staff to manually choose individual times?
Live chat suggested asking here. Any documentation or recommended integration approach would be appreciated. Thanks.
There isn’t currently a supported public API endpoint that returns the calculated availability used by Booking Suggestions, Online Booking, or SMS Booking Links. The documented schedule scopes cover JobActivity and JobAllocation records, while staff leave and a supported availability endpoint aren’t exposed through the public REST API. This means reading diary records and calculating slots externally won’t provide exact parity with ServiceM8’s booking logic.
For an existing job, the documented supported workflow is to open the job, select New Booking, then Booking Link. This creates a single-use link that presents available times and automatically schedules the job after the customer confirms. We don’t currently have a published API method for generating that link programmatically.
If you build your own availability logic, the API can create the resulting scheduled booking as a JobActivity with activity_was_scheduled set, using the manage_schedule scope. However, this would use your own scheduling calculations rather than ServiceM8’s calculated offers.
For confirmation of whether any partner-specific option could suit this integration, email support@servicem8.com with the use case so our Developer/API team can review it.
Our portal currently uses ServiceM8’s MCP endpoint and the get_availability tool to request available windows. We then apply our own booking rules, recheck availability when the tenant confirms, and create the scheduled JobActivity.
Could you please confirm:
Is using MCP get_availability from our own customer booking portal officially supported?
Does it account for staff working hours, recurring and one-off leave, business closures and existing appointments?
Does it include travel time, or any other calculations used by ServiceM8’s native booking suggestions?
What authentication and permissions should we use for this integration?
Our final confirmation check also queries the REST availability endpoint for absences. From your reply, it sounds like we shouldn’t rely on that for staff leave. Is MCP get_availability the supported alternative, or is there another route?
We don’t need to generate ServiceM8’s native booking links—we have our own tenant booking page. We just need a reliable, supported way to obtain availability before writing the appointment back to ServiceM8.
Please could you refer this to the Developer/API team if needed?
The short answer is that we can’t currently confirm official support for calling ServiceM8’s MCP get_availability tool directly from a custom customer portal. The published MCP documentation describes connections through supported AI assistants such as ChatGPT and Claude, and lists checking staff availability as an available action, but it doesn’t document direct portal or server-to-server use of that tool.
The documentation also doesn’t define the tool’s exact availability calculation contract, so we can’t confirm that it accounts for every type of leave, closure and travel calculation, or that its results have parity with ServiceM8’s native Booking Suggestions.
For the documented MCP connection, authentication is through OAuth and the ServiceM8 user authorises the requested access. For standard custom integrations, the documented options are an API key for a private, single-account integration or OAuth 2.0 for an external application connecting customer accounts. However, those REST authentication options don’t make the MCP tool a documented portal API.
You also shouldn’t rely on an undocumented REST availability endpoint for absence checks. Staff Leave isn’t exposed through the public REST API, and availability.json isn’t a documented or officially supported endpoint.
Please email support@servicem8.com with a link to this thread and an outline of your portal’s authentication model, and we’ll refer the proposed MCP usage to our Developer/API team for a definitive review.