Meeting booking block
Put open times from your calendar straight into an email. The recipient taps a time, confirms, and the meeting lands on your Google Calendar with an invite in their inbox. No scheduling page to open first, and no back-and-forth to agree on a time.
The block offers the times of one of your booking types: the meeting length, working hours, timezone and calendar you set up on the Meetings page. Set one up there first, then pick it in the block's inspector.
How it works
An email can't run code, so it can't ask your calendar for open times when it's opened. Instead, the block's next open times are worked out when the email is sent and written into it. Each recipient sees the times that were free at that moment.
Times in the email are shown in the booking type's timezone, with the zone named on every time ("Mon, Oct 5, 9:00 AM EDT"). An email can't detect the reader's timezone, so naming the zone is the only way to keep a time unambiguous. The pages the recipient reaches from the email (the hosted live view and the booking page) show the times in the recipient's own timezone.
What the recipient sees depends on their email client:
- Clients that support in-email forms (Apple Mail, Gmail, most mobile apps) show the times as choice chips with one Confirm button. Picking a time and pressing Confirm books it straight from the email.
- Clients that don't (Outlook, or anywhere the email's styles are stripped) show each time as a plain link. Tapping one opens a short confirmation page with a Book this time button, so a link scanner that opens every link in an email can't book anything by itself.
- Every client shows a See more times link under the times. It opens the live booking page, which reads your calendar at that moment and offers every open time in the booking type's range, not just the few in the email.
The recipient books as themselves: the attendee is the contact the email was sent to, so there's nothing to type. When an email reaches someone MailInApp doesn't have an email address for (a test send, a landing page, a mailbox or API send), the booking page asks for their name and email instead, behind a bot check. A tap in an email never books anonymously.
Each recipient can book once per block. The booking confirmation email has a link to move or cancel the meeting, which is how they change the time afterwards.
When a time is no longer free
The times in an email were free when it was sent. If one has been taken since, the booking is refused and the recipient is sent to the booking page, with fresh times, to pick another. Before any booking is made, the slot is checked against your calendar again, so a time that filled up after the email went out can't be double-booked.
Sometimes no times can be added when the email is sent: the booking type has nothing open in its range, no booking type is picked yet, or the calendar can't be reached. The block then shows your Text when no times are shown and the See more times link.
In the app and on the live view
The hosted live view and the MailInApp mobile app show the same times as the email, worked out again each time it's opened. A recipient who has already booked from the block sees your Message after booking there instead of the times. Once the project is closed, the times are shown greyed out and can't be picked.
Configurable fields
- Booking type: which of your booking types the block offers. A booking type from another account offers nothing.
- Heading: defaults to "Book a time with us".
- Times shown in the email: 3 to 8, default 5.
- Group times under day headings: shows each day once, with just the times under it. Turn it off to show the full date on every time.
- Confirm button label, "See more times" link label, Text when no times are shown and Message after booking: all the block's text is yours, in the language of your email.
- Background color, padding, border and border radius on the card.
- Heading color and size, and Confirm button color overrides.
A template or project shared with another account keeps the block, but its booking type is cleared, since the other account can't book your calendar. Pick one of their own booking types after importing it.
Bookings are listed on the Meetings page, not on the project's Responses page. A booking also records a book event on the contact's activity, counts toward their engagement score, and, when the email was sent to a contacts list, can start a journey through the Meeting booked trigger.
Examples
Subject
Let's find 30 minutes to talk
A consultant ends a follow-up email with "Book a 30-minute intro call" and their next five open times, so a warm lead can book while the email is still open. A sales team adds the block to the last step of a nurture journey, and a Meeting booked trigger starts a separate pre-call sequence. A coach puts it under a quiz result, so the people most interested in a call can book one in a single tap.
What the static fallback looks like
<div class="kn-fallback">
<div>
<p style="margin:6px 0 4px;font-size:12px;font-weight:600;color:#374151">Monday, January 19</p>
<a href="https://mailinapp.com/v/eyJhbGci.../act?blockId=booking-1&blockType=booking&action=book&slot=1768831200000"
style="display:inline-block;margin:0 6px 6px 0;padding:8px 14px;border:1px solid #d1d5db;
border-radius:6px;background-color:#ffffff;color:#111827;font-size:14px;text-decoration:none">
9:00 AM EST
</a>
<a href="https://mailinapp.com/v/eyJhbGci.../act?blockId=booking-1&blockType=booking&action=book&slot=1768834800000"
style="display:inline-block;margin:0 6px 6px 0;padding:8px 14px;border:1px solid #d1d5db;
border-radius:6px;background-color:#ffffff;color:#111827;font-size:14px;text-decoration:none">
10:00 AM EST
</a>
</div>
</div>
<p style="margin:8px 0 0;font-size:13px">
<a href="https://mailinapp.com/v/eyJhbGci.../book/booking-1" style="color:inherit;text-decoration:underline">See more times</a>
</p>
This is what Outlook and other clients without in-email forms show: one plain link per time into /v/[token]/act, which confirms before booking, plus the See more times link every client gets.
Related
- Meeting booking: booking types, calendars and upcoming meetings
- Block reference overview
- RSVP block
- Add to calendar block
- Journeys
- Live view