An event, its invitees and its delivery actions are separate steps. Keep that separation in your integration so editing a roster does not unexpectedly send another message to every guest.
Create the event
Use create event, then save the returned event ID with the booking or session in your own system. Retrieve the event to confirm its current details before attaching a large roster.
Choose a naming convention that helps staff distinguish two sessions with the same activity. An internal booking reference can be useful in your own integration, but the guest-facing message should still make the actual visit understandable.
Add invitees before sending
Use add invitees to populate the roster. Validate your source list first. A shared purchaser email does not necessarily identify every adult who needs to sign, and a duplicate row can create unnecessary follow-up work.
Review a small representative batch before using a larger roster. Include a family booking and an adult signing for themselves if both occur in your operation.
Make delivery explicit
Send invitations only after the roster is ready. Sending and resending require both events:manage and messages:send. Keep those permissions separate from a reporting-only integration.
A resend is a new guest contact. Do not automatically resend because a guest has not arrived yet; signature completion and arrival are different states. Respect the tighter rate limit on sending routes and reconcile uncertain timeouts before repeating the action.
Handle changes after invitations
Use the supported event-update, invitation-cancel and invitation-resend operations for their specific purposes. Close an event when your workflow requires it. A waiver submission associated with a closed event returns a conflict, so communicate changes before the guest reaches the final signing step.
Test roster edits, a cancelled invitee, a closed event and a sending key without the messages scope. Then connect the roster to check-in, without treating an invitation alone as a signed record or an arrival.