This entry describes the v1 contract. Bookings survive into
Sender API v2 as
content_type: "booking" on a letter correspondence, with the typed fields
carried in attributes. See
Correspondence.
The booking content type is now complete.
Deliver an appointment (a clinic visit, an enrollment slot, a virtual hearing or
interview) as a typed, calendar-ready mailpiece instead of loose text.
What's new
- Virtual coordinates, validated: alongside
starts_at,ends_at, andlocation, a booking now carriesmeeting_url(https only, no userinfo),meeting_code,meeting_passcode, andmeeting_dial_in. A booking must carry at least one reachable coordinate so the recipient can always get to the room, physical or virtual; hybrids (venue and link) are accepted.locationis now optional to make the fully-virtual case first-class. - Join-safe by construction: recipient apps render the tap-to-join
affordance from the typed
meeting_*fields only. Links in the message body are never promoted to a Join button. Appointment "your meeting moved, join here" phishing does not survive a verified-sender mailpiece with a validated join link. - A sealed slip for every booking: when your delivery includes no PDF part,
Keepable renders a deterministic sealed booking slip from the typed fields,
file-hash-verifiable through
/public/verify. Attach your own PDF to keep your attestation. - Add to calendar: recipients get a server-side
.icsprojection (or a native calendar insert on mobile) straight from the typed fields, plus a single reminder the day before.
booking stays a preview type while the remaining clients ship; its
attributes shape may still change. See
Content types for the full field reference.