# Dashboard calendar shows two bookings under the same team member; Bookings API returns two different team members

**URL:** <https://developer.squareup.com/forums/t/dashboard-calendar-shows-two-bookings-under-the-same-team-member-bookings-api-returns-two-different-team-members/27125>\
**Category:** Questions\
**Tags:** booking-api\
**Created:** [August 7, 2026, 7:39pm UTC](https://developer.squareup.com/forums/t/dashboard-calendar-shows-two-bookings-under-the-same-team-member-bookings-api-returns-two-different-team-members/27125 "2026-08-07T19:39:51Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![saralin.z](https://avatars.discourse-cdn.com/v4/letter/s/d07c76/32.png) [@saralin.z](https://developer.squareup.com/forums/u/saralin.z)\
**Post date:** [August 7, 2026, 7:39pm UTC](https://developer.squareup.com/forums/t/dashboard-calendar-shows-two-bookings-under-the-same-team-member-bookings-api-returns-two-different-team-members/27125/1 "2026-08-07T19:39:51Z")

</div>

Two bookings at the same location on the same date appear in the SAME team  
member column on the Appointments dashboard calendar. RetrieveBooking returns a  
DIFFERENT team\_member\_id for each one. Both team members are ACTIVE and  
distinct.

We rely on appointment\_segments.team\_member\_id to prevent double-booking a  
photographer, so if the calendar is authoritative we are checking conflicts  
against the wrong person.

Happy to provide full raw JSON, booking IDs, merchant ID and application ID  
privately.

ENVIRONMENT

Application ID: sq0idp-EbrDXMV5425dwA3suHafeQ  
Square-Version: 2024-07-17  
(also reproduced on 2025-01-23, 2025-06-18, 2026-01-22, 2026-06-17 —  
identical responses)  
Access token: seller-level, single merchant, production  
Endpoint: GET /v2/bookings/{booking\_id}

Booking IDs are redacted below as BOOKING\_A / BOOKING\_B. Real booking IDs and  
merchant ID available privately on request.

REPRODUCTION

Both bookings start 2026-08-09T19:30:00Z (15:30 EDT).

-– Booking A —

GET /v2/bookings/BOOKING\_A

start\_at : 2026-08-09T19:30:00Z  
status : ACCEPTED  
version : 3  
source : API

appointment\_segments:  
60 min team\_member\_id: TMOhz7F2nX5WYeKO (given\_name “1.Beauty.Soho”)  
30 min team\_member\_id: TMdBFuB3\_dF3pd3G (given\_name “4.Photo.Soho”)  
85 min team\_member\_id: TMdBFuB3\_dF3pd3G (given\_name “4.Photo.Soho”)

-– Booking B —

GET /v2/bookings/BOOKING\_B

start\_at : 2026-08-09T19:30:00Z  
status : ACCEPTED  
version : 5  
source : API

appointment\_segments:  
60 min team\_member\_id: TMCK2WVvIzzyIg8x (given\_name “4.Beauty.Soho”)  
35 min team\_member\_id: TMT9n2LvdZBsfnH9 (given\_name “6.Photo.Soho”)  
80 min team\_member\_id: TMT9n2LvdZBsfnH9 (given\_name “6.Photo.Soho”)

-– The two photographers are genuinely different records —

GET /v2/team-members/TMdBFuB3\_dF3pd3G  
given\_name: “4.Photo.Soho” status: ACTIVE

GET /v2/team-members/TMT9n2LvdZBsfnH9  
given\_name: “6.Photo.Soho” status: ACTIVE

Distinct IDs, distinct names, distinct email addresses, both ACTIVE.

EXPECTED VS ACTUAL

Expected: Booking A renders under “4.Photo.Soho” and Booking B under  
“6.Photo.Soho”, per each booking’s appointment\_segments.team\_member\_id.

Actual: both render under the SAME photographer column (“4.Photo.Soho”) on the  
day view of the Appointments calendar.

---

<div class="post-metadata">

**Author:** ![ashley-square](https://avatars.discourse-cdn.com/v4/letter/a/5f9b8f/32.png) [@ashley-square](https://developer.squareup.com/forums/u/ashley-square)\
**Post date:** [August 11, 2026, 2:37pm UTC](https://developer.squareup.com/forums/t/dashboard-calendar-shows-two-bookings-under-the-same-team-member-bookings-api-returns-two-different-team-members/27125/3 "2026-08-11T14:37:14Z")

</div>

Hi thanks for the detailed, well-structured report; the segment-level breakdown made this easy to identify.

First, the direct answer to your question: the Bookings API is authoritative.`appointment_segments.team_member_id` from `RetrieveBooking` reflects the actual staff assignment, so your double-booking checks are looking at the right person. The Appointments dashboard calendar rendering is what’s incorrect here.

We identified a bug where editing certain bookings (for example, saving a note on a paid/completed appointment) could cause the calendar view to lose or mis-attribute the staff assignment for a booking, even though the underlying booking data, and everything the API returns, remained correct. A fix has been deployed, so newly created or newly edited bookings should no longer be affected.

However, bookings that were affected before the fix won’t automatically re-render correctly, so please do send me the booking IDs and merchant ID privately (I will DM here or you could escalate via your Square contact) and we’ll get the affected records corrected so the calendar matches the API again.

Apologies for the trouble, and again, appreciate the thorough repro.
