Booking links let customers self-schedule into agent calendars. The agent sends a link, the customer picks an open slot, a scheduled todo lands on the agent's calendar — no email ping-pong, no missed bookings, no manual calendar entries. This lesson walks through configuring the booking link types your team will offer.
Problem: "What time works for you?" → four emails back and forth → a slot is finally agreed → customer reschedules → four more emails. Half a day lost coordinating, the agent's calendar still doesn't reflect the agreed time until they enter it manually, and nothing connects the booking back to the ticket.
Horizon's answer: A booking link. The agent sends one URL. The customer sees the agent's real availability, picks a slot, gets a confirmation. A scheduled todo lands on the agent's calendar automatically, linked to the ticket.
For this to work, you (the admin) need to define the types of bookings that exist — "30-min discovery call", "2-hour onsite", "15-min check-in" — with their durations, buffers, and constraints. Agents pick from those types when they send a link; they don't define new ones each time.
Open the admin panel and navigate to Components → Bookings. You'll find:
| Page | What it does |
|---|---|
| Booking Link Types | the catalog of bookable templates agents can send to customers |
| Booking Link Email Templates | email templates used in invitations, confirmations, reminders |
| Booking Link Invites | audit trail of sent invites — who got what, when, whether they booked |
| Bookings | the actual booked appointments |
Most setup work is on Booking Link Types and Email Templates. The other two are read-only audit pages.
Navigate to Booking Link Types → Create. The form covers four areas:
Identity
Duration and delivery
Booking window — one of these is required:
You must set one or the other. Trying to save without either fails — "BookingLinkType requires a booking window: set booking_window_days for a rolling window, or both booking_window_start_date and booking_window_end_date for a fixed window."
Slot constraints
Activation
When an agent sends a booking link, the customer gets an email. When they book, they get a confirmation. They may get a reminder before the appointment. Each of those emails needs a template.
Navigate to Booking Link Email Templates to manage them. At minimum, you want:
Templates support the usual placeholders for invitee name, agent name, ticket reference, booking time, etc.
You can use a single set of templates for all booking types, or create per-type variants if (for example) onboarding bookings need different wording than support bookings.
Booking links rely on knowing when the agent is free. That comes from two sources:
Without calendar sync configured (covered in helpdesk integration / calendars cluster), booking links will show slots that conflict with external meetings. Make sure calendar sync is set up before going live with customer-facing booking links.
When a customer books a slot:
The agent doesn't have to do anything for the calendar entry to appear — it's automatic.
The Booking Link Invites page lists every invite an agent has sent: who it went to, which type, when it was sent, whether the recipient viewed it, whether they booked, and the resulting Booking ID if they did.
This is the page to check when an agent says "I sent a booking link three days ago and the customer never booked". You can see whether the invite was even opened.
Tip: Start with two or three booking types covering the bookings you actually do today — "Standard Remote Session (30 min)", "Onsite Visit (2 hours)", "Quick Check-In (15 min)". Resist the urge to model every possible variant on day one. Watch what agents send, and add (or split) types based on what they're actually using. A catalog of fifteen booking types nobody picks correctly is worse than three that everyone uses right.