The Bookable Resource Booking entity (BRB) is a crucial component of the Work Order process that sets the technician’s schedule and records time spent working on a Work Order. We’ve spent some time recently digging in to the details – and quirks – of this entity recently and thought we’d share some of our findings.

Bookable resources hourly view

Bookable resources hourly view

BRBs, Booking Journals and Booking Timestamps

Before we dig in, it’s important to understand the BRB Booking Statuses and how they drive the creation of Booking Journals and Booking Timestamps. The Booking Status field is on the BRB used to indicate the stage that the work is in. Typical stages might look something like:

Booking status options

Booking status options

When the Booking status is changed, it creates both a Booking Journal and a Booking Timestamp record. The Booking Journal record shows the Journal Type (Working Hours, Travel, etc.) as well as the start/end times and duration that the booking was in a particular status. It also shows whether that time is billable, and the associated cost of the time the technician spent.
Booking journal record

Booking journal record

The Booking Timestamp entity is kind of like an audit log, which keeps a record of the Booking Status and the time it was changed.
Dynamics 365 Field Service Booking Timestamp

Dynamics 365 Field Service Booking Timestamp

The first gotcha here is that the Booking Journal start/end times are recorded exactly when the Booking Status is changed. This puts a lot of pressure on the technicians to update the status in the app in real time, as they’re transitioning to and from traveling, working and taking breaks. The new geofencing capabilities will help to make sure statuses get updated at the correct time by reminding users to change their status to On Site when they enter the geofence of the Service Account, for example. However, users will inevitably forget to update their status, so it’s very important to keep an eye on the durations (see the section below on correcting mistakes).

How are the BRB Start, End and Arrival Times Updated?

The Start Time is the date and time the technician is scheduled to start work. One of the quirks we found is this field does not change when the Booking Status is updated (when they start traveling to a Work Order, for example). The End Time is the date and time the technician is scheduled to finish work. The End Time updates when the BRB status gets set to Completed but will only update if the Actual Arrival Time is after the scheduled End Time. It also will not consider the original duration. The Actual Arrival Time is the most straightforward of the three, which is the date and time that the Booking Status was updated to “In Progress”. Here are a couple examples of how the BRB might not behave as you’d expect: If you had originally scheduled a booking for 4:00 PM to 6:00 PM (duration of 2 hours) but don’t start working until after 6:00 PM, the End Time will update to 1 minute after the Actual Arrival Time instead of 2 hours after.

Example of problem with actual arrival time

Example of problem with actual arrival time

If you were to start working between the original start and end times, the End Time would not update at all.
Second example of problem with actual arrival time

Second example of problem with actual arrival time

What is Duration, Total Billable Duration and Total Duration In Progress?

The BRB records has multiple duration fields that each serve a different purpose. It’s important to understand how these durations work with the Booking Journals and schedule times in order to accurately determine the time spent on a Work Order.

Sample of a booking journal

Sample of a booking journal

Duration: This is the total duration between the Start Time and End Time, and will update automatically based on changes to the Start/End Time. Since the Start Time field does not update based on the actual start time, if the user starts work later than the original scheduled start time, the Duration will include all time from the original scheduled start until the BRB is completed. Total Billable Duration: This is the sum of the duration of all Booking Journals with a Booking Status that is billable. This is generally the most accurate record of time spent on the Work Order, as it is directly linked to the changes the technician makes to the Booking Status. Note that by default, “Travel” time is non-billable. Total Duration In Progress: The sum of the duration of all Booking Journals with a Booking Status of “In Progress”. If “In Progress” is the only billable Booking Status for your organization, this will be the same as “Total Billable Duration”.

How can I resolve errors on a Bookable Resource Booking?

Eventually a user will make a mistake forget to change the status of their BRB, resulting in errors on the Booking Journals and billable duration. The most common mistake we see are really long durations when users forget to change their status to Completed when they’re done. There are a few different ways that you can resolve this, but the most effective way is by adjusting the Booking Journals directly. Here’s how: Open the booking journal that needs to be corrected Update the “Start Time” or “End Time” as needed. This will automatically update the duration on the journal.

Dynamics 365 Field Service Booking Journal Start and End Times

Dynamics 365 Field Service Booking Journal Start and End Times

Save and close. The “Total Billable Duration” will recalculate using the updated Booking Journal duration.
Dynamics 365 Field Service Booking Journals Billable Duration

Dynamics 365 Field Service Booking Journals Billable Duration

What’s a good way to keep an eye on this?

Since the BRB and duration information is crucial for accurate time recording and billing, it’s a good idea to create a saved view (or a dashboard) that looks for exceptions. We recommend setting up at least two views, one for longer than normal BRB durations (Duration > 8 hours, for example), and one for abnormally short BRB durations (duration < 5 minutes, for example). Frequently reviewing these exception reports should help to keep your data accurate. You could even set up a Flow to send a scheduled email with the list – check out our post on how to do that here. We hope you found this helpful. If you have questions or would like to schedule a demo of Field Service, click here to get in touch with one of our solution architects.