Currently, GoHighLevel appointments are tied to the contact, not the opportunity. This causes issues when a contact has multiple active opportunities (e.g. for different jobs). Each opportunity can end up showing the same appointment — the most recent one — even if it doesn’t relate to that job.
As shown in the screenshot, both opportunities display the same appointment even though they should represent separate jobs with distinct bookings.
Suggested Improvement:
Introduce a native association between appointments and opportunities, not just contacts. This could potentially be solved using the new "Custom Objects" framework, allowing an appointment to be uniquely linked to a specific opportunity.
This would:
Avoid confusion when contacts have overlapping or ongoing jobs.
Accurately reflect job-specific timelines and next steps.
Enable multiple valid appointments across the same contact without overwriting other opportunities.