What to do
Trigger Schedule from the confirmed appointment or booking-success step, not from the calendar page view. Keep the same contact identity and original campaign values from the lead visit, then test the server event after a real booking.
Use a completed-booking trigger
A Schedule event should fire after the appointment is created. Firing when the calendar loads, when a date is selected, or when someone starts the booking process inflates results and trains Meta on incomplete actions.
Use the appointment-created trigger, the confirmed booking workflow, or a dedicated confirmation page that only appears after success.
- Appointment created
- Booking confirmed
- Successful calendar submission
- Dedicated thank-you page after the booking
Carry the original lead data into the booking
The booking may happen minutes or days after the first landing-page visit. Store the campaign and browser information early and keep it on the same contact record.
If the calendar creates a second contact or loses the original identifiers, the Schedule event may arrive without the context that connected the Lead event to the ad.
- Use consistent email and phone values.
- Avoid duplicate contacts for the same person.
- Preserve FBCLID, FBC, FBP, UTMs, and source URL when available.
- Use a distinct Schedule event ID for the booking.
Test the full booking path
Book a real test appointment from the published funnel. Confirm that one Schedule event appears after success and not before.
Also check that rescheduling, page refreshes, and reminder workflows do not create extra Schedule events. A booking event should describe the booking once, not every administrative action afterward.
- No Schedule event on calendar view
- One Schedule event on completed booking
- No duplicate from confirmation-page refresh
- No second event from reminder or reschedule workflows
GoHighLevel Meta CAPI check
01Trigger after the appointment is created
02Keep the booking on the original contact
03Preserve campaign and browser information
04Use a new event ID for the Schedule conversion
05Test refresh, reschedule, and reminder behavior
Common questions about this setup
Should Schedule fire when someone opens the calendar?+
No. It should represent a completed booking, not intent to book.
Can I send Lead and Schedule for the same person?+
Yes. They are separate funnel stages and should have separate event IDs. Send each only when that stage occurs.
What if the booking happens days after the original click?+
Store the available attribution and identity data on the contact so the later Schedule event remains connected to the original journey.
Should a reschedule fire another Schedule event?+
Usually no, because it is still the same conversion. Track a separate event only when the business has a clear reason and measurement plan.
Official references
Use these official references when checking the current Meta setup and account screens.