> ## Documentation Index
> Fetch the complete documentation index at: https://docs.autonudge.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Meetings

> Book calls on your team's Google calendars, by hand or by the voice agent

Nudge books meetings straight into Google Calendar. The meeting lands on the
host's calendar and the contact's, and the contact's page records it.

## Who sends the invitation

Gmail labels a calendar invitation "from an unknown sender" when it comes from
an address the person has never written to. That covers almost every new lead.
To avoid that label, Nudge can send the invitation itself:

* **Nudge sends it** when **Channels → Email** has a sender with the same
  address as the meeting type's booking account (for example
  `contact@yourcompany.com` in both places). The contact and every host get a
  normal email in the contact's language (or your Default language) with the time, the Meet link or address,
  a link for the contact to change or cancel, and a calendar file to add it
  with one click. Moves and cancellations come the same way.
* **Google sends it** in every other case, as a standard Google Calendar
  invitation, and Google also sends any later changes.

If Nudge's email to the contact can't go out, Google sends its invitation
instead, so nobody is left without one.

Meetings are switched on per workspace. If you don't see **Meetings** in the
sidebar, ask us.

## Setting it up

Everything lives in **Calendar settings** (admins): on the Meetings tab, the
gear next to the view picker. The top bar reads **Meetings › Calendar
settings**; click **Meetings** to go back to the calendar.

**Meeting types** come first on the page. They say what is being booked: name,
length, where it happens, who takes it, and how far ahead a contact can book
(minimum notice and days ahead). Each type has its own page with two tabs: **Setup**, with its settings, its **Share** card and its **Hosts**, and **Meetings**.

* **Length.** Also sets how far apart the offered times are: a 15-minute
  type offers 3:00, 3:15, 3:30; an hour-long one 9:00, 10:00. Your team can
  still book any time from the Meetings tab.

* **Where.** *Phone call*: the host rings the contact at the meeting time.
  *Google Meet*: the invitation carries a Meet link. *In person*: you meet
  somewhere, and nobody gets a link. Write where under **Where to meet**: an
  address, or something like "At the property" when the place is the
  contact's own, as for a viewing. The invitation, the contact's booking page
  and the voice agent all say it. A meeting keeps the place it was booked
  with, so editing the type later moves no meeting already made.

* **Who takes it.** *Contact owner* gives the meeting to the contact's owner
  when they host this type and have a free time in the next three working days;
  otherwise the next host in line. *Rotate* gives it to whichever free host was
  booked longest ago. *All hosts* books everyone together: only times when every
  available host is free are offered, and all of them are invited. Moving the
  meeting checks everyone too. Booked from one host's own link, the meeting is
  filed under that host, with the others attending.

* **Bookable.** Minimum notice is set in hours or days, where a day is 24
  hours. Each host's own days still decide where a booking lands: with one day
  of notice, a Friday afternoon request gets Saturday for a host who works
  Saturdays and Monday for one who doesn't. Your team can always book any free
  time from the Meetings tab; notice applies only when a contact or the voice
  agent books.

* **Host becomes the contact owner.** When on, the host is written as the
  contact's owner once the meeting is booked.

* **Email the contact an invitation.** On by default: the contact gets a
  calendar invitation, and another if the meeting moves or is cancelled, and
  their answer shows on the Meetings tab. Switch it off if you
  confirm another way, for example on WhatsApp. The host is always invited.
  Meetings booked while it was off show **Not invited**.

* **Calendar.** Whether the host has connected their own Google Calendar, on
  their page under **Contact owners** (see **Connecting your calendar**
  below). **Connected**: their Google events block those times. **Not
  connected**: they're booked inside their hours for this type, and their
  Google events don't count. **Reconnect needed**: Google stopped the connection, and
  they reconnect it on their page. A host who doesn't sign in to Nudge gets a
  link to connect it from their page under **Contact owners** (see
  **Connecting your calendar without signing in** below). Hosts who sign in
  connect it on their own page.

* **Hours.** When each host takes this type: their working hours, or hours
  set for this type alone. Click them to change them
  right there: pick the days and the times, and they count for this meeting
  type only. They replace the host's working hours for it and can fall
  outside them, for example Saturday mornings for someone who works
  weekdays. **Use working hours** goes back to the default. A host is only
  booked inside these hours, read in their own timezone, so 10:00 means 10:00
  where each host is. A meeting type has no days and times of its own: if a
  host is free on a Sunday, they can be booked on a Sunday. A warning sign
  next to a host's hours means they're too short for one meeting; click it to
  read why. On an **All hosts** type, that host means the type offers no
  times at all. Your team can still book outside a host's hours on the
  Meetings tab after confirming; the voice agent and booking pages never do.
  The column leaves the timezone out unless this type's hosts are in
  different ones; then it names each host's city. Each host can also set
  their own hours for a type on their page, with **Set my times**.

* **Name.** Click a host's name to open their page under **Contact owners**.

* **Colour.** Each host's meetings have their own colour on the Meetings tab,
  so you can tell people apart at a glance. Nudge picks a different one for
  every host; click the dot in front of a host's name to choose another. A
  colour another host already has can't be picked.

* **Removing a host** asks first. Meetings already booked stay as they are. To
  pause someone for a while, switch off **Available** instead.

* **Booking account.** The Google account this type's meetings are booked on,
  and the address its invitations come from. With one account connected, this
  just shows its address. With more, pick one; picking the default account
  means the type follows the default if you change it later.

The **Meetings** tab lists this type's meetings: **Upcoming**,
soonest first, or **Past**, latest first. Cancelled meetings stay on the list.
Click a row to open the contact.

A holiday, a day off or a standing lunch hour can be blocked right on the
Meetings tab (see **Block time** below). If the host has connected their
Google Calendar, anything already in it counts too: Nudge reads their busy
time live, so it is never offered.

**Booking accounts** sit under the meeting types. These are the Google accounts
Nudge books meetings on, usually a shared address such as
[booking@yourcompany.com](mailto:booking@yourcompany.com). A booking account creates each meeting and sends the
invitation to the host and the contact. It isn't anyone's availability: each
person connects their own calendar on their page. Click **Connect Google
account** and sign in with Google as that account. Nudge stores a sign-in
token, never a password.

You can connect more than one with **Add Google account**, for example one per
brand or market, so each meeting type's invitations come from the right
address. One account is the **Default**, and every meeting type uses it unless
you pick another on the type.

* **Make default** lists the meeting types that will move to the new default
  before anything changes.
* **Disconnect** stops new meetings on that account. Meetings it already booked
  stay on its calendar and can still be moved or cancelled. While another
  account is connected, you can't disconnect the default or an account a meeting
  type has picked: make another account the default, or pick another account on
  those types, first.
* **Access removed** means Google stopped accepting the account, usually because
  someone removed Nudge's access or changed the password. Click **Reconnect**
  and sign in again. Until then its meeting types can't be booked. They never
  switch to another account on their own, because the invitations would come
  from an address you didn't choose.

## The Meetings tab

The calendar shows Day, Week, Month and List views, in your own time zone (the
corner of the grid names it). A member opens on their own meetings, an admin
on everyone's.

The Meetings title and global actions stay in the compact top bar, which
shares its background with the main navigation sidebar. Below it,
Today, date navigation, settings and the view picker sit above the calendar
card. The side panel and toolbar share a pale background; the dates and grid
sit on the calendar card below them.

The side panel on the left works like Google Calendar's:

* **A small month.** Click a day to jump to it. The days on screen are
  highlighted.
* **Meeting types.** Only team meeting types appear here. Tick types to narrow
  the calendar to those bookings; untick them or click **Clear** to see all
  bookings again. Admins add a type with **+**, and the gear beside a type
  opens its settings.
* **Hosts.** Each person appears once, in their colour, so this list is also
  the key to the colours on the calendar. Tick the people you want to see.
  Their personal phone, video and in-person bookings appear alongside their
  team meetings when no meeting type filter is selected. Admins change a
  person's colour from the dot that appears when you point at their name; everyone sees the same colour.

The menu button left of **Today** shows and hides the panel, and Nudge
remembers your choice on that browser. On a phone, and while the panel is
hidden, two filters next to the view menu do the same job.

* **Book** by clicking an empty slot in Day or Week, or drag down to choose a
  longer or shorter meeting than the type's. The popover shows the date and
  the start and end, which you can change.
  * **Type** lists every meeting type, including ones the side panel hides.
    Under **People** is everyone who offers meetings of their own on their
    booking page, by name, with a symbol for each kind they offer (point at
    one to see which). People appear once they've connected their calendar.
  * **Where** says how the meeting happens: a phone call, Google Meet, or in
    person with the address. For a person who offers more than one kind,
    pick it here.
  * **Host** lists everyone who takes that type. It starts on the person the
    type would choose (the contact's owner, or whoever is next in turn), or on
    the host whose column you clicked. Pick someone else to book them instead.
    Next to the name, Nudge says whether they're free, or why not: outside
    their hours, blocked, busy in Google Calendar, or already in a meeting.
    An **All hosts** type lists everyone, since they all attend.
  * You can book a contact as many meetings as you like, of the same type
    too. Only the voice agent and the booking pages stop at one upcoming
    meeting of a type per contact, and offer to change its time instead.
* **Block time** for a holiday, a day off or an appointment of your own: click
  or drag on the grid and switch the popover from **Meeting** to **Block time**.
  Give it a name if you like ("Holiday"), then choose:

  * **Once**, for one day or a run of days (fill in the last day for a week
    away).
  * **Every week** on the days you pick, such as a lunch hour every weekday.
  * **Every day**.

  Set the hours, or switch on **All day**. Nobody can book that time: not your
  team on this tab, not the voice agent, not the contact's booking page.
  Meetings already booked inside it stay booked; the popover tells you how
  many there are so you can move or cancel them yourself. Click a block to
  change or delete it. Whole days you've blocked show in the Month view too.

  You can block your own time. Admins can block time for any host.
* **Move** a meeting by dragging it, or resize it from its bottom edge. Google
  emails the new time.
* **Click a meeting** to see its details, including whether it is a phone call,
  Google Meet or in person, with the join link or address. The pencil lets you
  change its date, start and end, with a line saying whether the host is free
  then, and **Where** it happens: a phone call or Google Meet, or in person
  when there's an address. A personal meeting switches between the kinds that
  person offers. **Save** updates it and everyone invited is told. Switching to
  Google Meet adds a Meet link; switching away removes it. The bin cancels
  it. A Google Meet meeting also has **Join**.
* **Busy** blocks are time a host's own Google calendar shows as taken,
  striped in that host's colour. Every host you've ticked gets them. With
  several hosts in the week view, each block starts with the person's name,
  and time a host has blocked off shows the same way. Nudge only sees that
  someone is busy, never what the event is.
* A meeting's colour is its host's (blue unless you've picked another). How
  solid it is shows the contact's answer to the invitation: solid for
  accepted, a light wash for not answered yet, red for declined. Past
  meetings fade. Point at a meeting to see its answer in words.

A person booking here can book any time the host is free, sooner or further
ahead than the type allows contacts to. Outside the host's hours, in time
they've blocked, over another of their meetings, or when Google shows them
busy, Nudge asks **Book it anyway?** first, and the same goes for moving a
meeting there. With one meeting type picked in the filter, the grid greys out
the time outside each host's hours for that type. With several hosts ticked,
grey means none of them can take a meeting then: it's outside all their
hours, or every one of them is busy, blocked or already in a meeting. Any time
that isn't grey has at least one of them free. The voice agent and the
contact's booking page never book those times.

You can also log a meeting that already happened. It goes on the calendar and
the contact's record, but nobody gets an invitation and no Meeting automation runs.

## The voice agent books

On a voice agent's page, **Books meetings** picks a meeting type (or Off). The
agent can then check the host's free times during the call and book the one the
contact agrees to. Your instructions decide when it offers a meeting, for
example "once they qualify". Like every other change on that page, it goes live
when you publish.

* The agent speaks in the **contact's own time zone**, taken from their phone
  number. If their country has several time zones, it checks which one first.
* It only offers times that are really free, and never asks for the contact's
  name or email: it already knows who it is talking to.
* If a time has just gone, it says so and offers the nearest free ones.
* If the calendar can't be reached, it tells the contact a colleague will be in
  touch, rather than guessing.

### Moving or cancelling on a call

The same agent can move or cancel a meeting the contact already has. It only
ever sees the meeting of the person it is talking to: the contact you called,
or the number calling in. Whatever the caller says, it cannot find or change
anyone else's meeting.

* It names the meeting first ("your consultation on Tuesday at 3 pm with
  Sam") and changes it only after the contact says yes.
* A new time keeps the same host and follows the same rules as the contact's
  booking page: only times that are really free, with the meeting type's notice.
* It can change the contact's next meeting only. If they have more booked, it
  says it can't change the others on the call.
* A contact can make six changes a day, counting those on their booking page.
  After that, or if the calendar won't take the change, the agent says a
  colleague will be in touch and every admin gets a notification.
* Google sends the new time or the cancellation to everyone invited, and the
  contact's activity shows who made the change.

A **test call** in the browser books, moves and cancels nothing. The result
says what it *would* have done, and **Apply to contact** does it for real, as
long as that meeting is still the contact's next one.

## On the contact

While a meeting is coming up, a line under the contact's name says when it is
and who it's with. It shows on the contact's page and in the inbox, and
clicking it opens the meeting in the calendar. Booking, moving and cancelling
each leave a note on the contact, so the notes are the meeting's history.

A **Meeting** automation runs when a meeting is booked, moved or cancelled, and can
check the meeting type and who booked it. It runs once per change: move a
meeting twice and it runs twice. See [Automation](https://docs.autonudge.dev/automation/triggers.md).

Call-outcome automations can use the condition **Meeting booked on this call**
(yes or no). For example: qualified on the call, and no meeting booked, so send
the booking link.

## Saying when in a message

A template can name the meeting. Open **Variables** in the editor (or type
`@`) and pick from the **Meeting** group:

| Variable | Reads |
| - | - |
| `[meeting_date]` | Wednesday 14 October |
| `[meeting_time]` | 3 pm |
| `[meeting_host]`, `[meeting_host_firstname]` | Who the meeting is with |
| `[meeting_type]` | The meeting type's name |
| `[meeting_link]` | The Google Meet link (empty for a phone or in-person meeting) |
| `[booking_link]` | The contact's own booking page (see below) |

The date and time are in the **contact's** time zone, the same one the voice
agent uses, and in the message's language: a Turkish tab says "14 Ekim
Çarşamba" and "15:00". If we couldn't place the contact's zone, or their country
has several, the time names its zone: "3 pm (Central Time)".

Which meeting it means:

* A message sent by a **Meeting** automation is about that meeting. If the meeting
  moves before the message goes out, the message has the new time. If it is
  cancelled first, a "booked" or "moved" message is not sent.
* Any other message uses the contact's **next** meeting.
* An automatic message that names a meeting the contact doesn't have is not
  sent, and the contact's activity says why. A message you send yourself goes
  out with those words left blank, so check the preview.

## The contact's own booking page

Every contact can have a page of their own where they pick a time, change it
or cancel it, without signing in. The address is private to them: whoever has
it can see and change that contact's meeting, and nothing else.

What they see:

* **No meeting yet:** who the call is with, how long it is and how it happens,
  then a month calendar with the days that have free times picked out. Picking a
  day lists its times. They can switch between a 12-hour and a 24-hour clock, and
  change the time zone if theirs is wrong. Picking a time asks them to
  **Confirm** it.
* **A meeting booked:** what, when, who and where, then **Reschedule** and
  **Cancel**. Rescheduling opens the calendar again with the old time crossed
  out.
* **A cancelled meeting:** the cancelled time, crossed out, and **Book again**.

The host's photo is their Google profile picture, once they've signed in to
Nudge with that address. Without one, the page shows their initials.

The times are the ones the voice agent offers: the host's hours for that type
(their working hours unless set for it), minus anything busy on their Google calendar,
within the type's notice and days ahead. A change of time stays with the same host. Every booking, change and
cancellation goes through Google the same way one made on the Meetings tab
does, so the invitation updates, the contact's page records it, and your
Meeting automations run.

To send the page, click **Booking link** next to the emoji button when you
write a WhatsApp message, an email or a template, and choose which meeting
the link is for:

* **Let them choose**: the page as described above. This is what
  `[booking_link]` has always done.
* **Any of Ali's meetings**: everything that host can be booked for, their own
  phone, video and in-person bookings and the team meeting types they're on.
  The contact picks one, then a time.
* **Video call with Ali** (and the host's other kinds): straight to that
  meeting, with that host.
* **A team meeting type**: straight to that type, booked the way that type
  books.

Every person still gets their own page, so there's no form to fill in, and
it works when you send to a whole list too. Which host's meetings the menu
offers: when you write the message yourself, your own if you host meetings,
otherwise the contact's owner's. In a template or an automation it's always
the contact's owner, so one template works for everyone on the team.

If the meeting a link names isn't bookable any more (switched off, removed,
or the host has left), the page says so and offers what the plain link would.
A contact who already has a meeting booked sees that meeting, whichever link
they open. You can also pick the plain link from **Variables**,
or give a WhatsApp template a **Booking page** button (see
[WhatsApp](https://docs.autonudge.dev/channels/whatsapp.md#header-footer-and-buttons)). A Booking page
button always opens the plain link: WhatsApp approves the button's address
once, so to send a link to one meeting in an approved template, put it in
the message text. On an official
WhatsApp number, someone who hasn't written to you in the last 24 hours can
only receive an approved template, so for them use a template that carries
the link. The page is written
in the language you message the contact in: their own, else your Default language. If your workspace has more than one
meeting type, the page books the type of the contact's last meeting, or the one
their owner hosts. If neither settles it, the page asks them to reply to your
message rather than guess.

After six bookings, changes or cancellations in one day, the page stops taking
changes until the next day and asks the contact to reply instead.

## A host's public booking page

Each host also has one public page, a link they can put in an email
signature, a website or a message, the way you'd share a cal.com link. Anyone
can book a time with that host from it, without being sent anything first.

A host finds their own link in the account menu at the bottom of the
sidebar: **My booking page** opens it, and the copy button next to it copies
the address. It's also on the host's page under **Contact owners**, in the
**Booking page** section, with **Copy link**. The address is the host's name,
for example `/meet/sam-taylor`; click it there to change it. Once you've
copied it, the address stays put even if the person's name changes later, so
a link you've already handed out keeps working. Changing the address yourself
is different: every link with the old address stops working, including ones on
your website, so send people the new one. Two people can't have the same
address.

### Embed your booking page on your website

Instead of linking to the booking page, you can show it inside your own
website. Open the host's page under **Contact owners**, and in the **Booking
page** section find **Embed on your website**. Click **Copy code** and paste
the two lines where the calendar should appear on your site. It shows the same
meetings as the booking page: whatever is switched on under **Takes bookings
by**, plus your team meetings. It's there once someone can actually
book with that host.

The calendar takes your website's language: on a German page it opens in
German, on a Turkish page in Turkish. A host's own page and a team meeting page
work the same way, and when they're opened directly they follow the visitor's
browser (English, Turkish or German), then your Default language. It grows to fit, so there's no scroll
bar inside it, and it has no background of its own, so it sits on your page.
When someone books, they see the confirmation right there, with a link to
see or change their booking.

If your website needs to react to a booking (count it in your analytics, or
send the visitor to a thank-you page), it can listen for the
`nudge:booked` event on the calendar's element. The event says what was
booked and when, never who booked it.

Pasted into WhatsApp, an email or a chat, a host's link shows a preview:
their photo (or initials), their name, what they can be booked for and for
how long, with your logo small in the corner. A contact's own booking link
shows only your company's name, never anything about the contact, because
whoever they forward it to sees the same preview.

### A meeting type's own page

A team meeting type, like a demo call several people can take, has its own booking page too. Open the type under **Calendar settings** (the gear on the Meetings tab) and find **Share**: the page's address and the code to put it on your website. The address is the type's own, not its name, so an internal name never shows to the people booking: a new type starts as `/meet/team/meeting`, and you click the address to change it. Changing it stops the old address working, in links you've already shared and in templates, so pick it before you hand it out. The link names no person, so you can add or remove hosts, or switch **Who takes it**, without touching your website. Someone new who books there arrives without an owner unless **Host becomes the contact owner** is on.

### Connecting your calendar

Each person's page under **Contact owners** has a **Calendar** card. Its
**Invites go to** row is the one address their meeting invitations go to.
Invitations are ordinary calendar invitations, so they work with Outlook,
Apple Calendar and Google Calendar alike.

The small label next to the address says where it stands:

* **Connected**: the address is a Google account and its calendar is
  connected. Nudge sees when the person is busy (never what's in the
  calendar, and it never adds or changes anything there), so nobody books
  them over their own appointments, and their own booking page is on.
* **Connect Google Calendar** on your own page, or **Not connected** on
  someone else's: a Google address whose calendar isn't connected. Connecting
  is optional, and only the person can connect their own.
* **Reconnect needed**: Google stopped the connection.
* No label: an address that isn't Google's. It gets invitations only, because
  Nudge can't see that calendar.

A label with an arrow opens what you can do from there, such as
**Disconnect**. Disconnecting stops Nudge reading the calendar; invitations
keep going to the same address. An admin can disconnect anyone's, for
example when someone leaves.

#### Changing the address

Click the address, type the new one and press Enter. A person can change
their own and an admin can change anyone's. Nothing moves until whoever reads
that inbox confirms it:

* **A Google address** (Gmail, or a work address on Google Workspace): click
  **Connect Google Calendar** and sign in to that account. That confirms the
  address and connects its calendar in one go. If you sign in to a different
  Google account, that account becomes the address.
* **Any other address**: Nudge emails it a link. Opening it and pressing
  **Confirm address** makes it the address. The link works once, for 7 days.
  Until then the label says **Waiting for confirmation**; click it to resend
  the link or cancel the change.

Until the new address is confirmed, invitations keep going to the old one,
and meetings booked before the change keep their address. Moving from a
Google address to any other disconnects the Google calendar, since it
belonged to the old address, and the person's booking page pauses until they
connect one again. Typing their own sign-in email back needs no
confirmation. If a work Google account doesn't allow outside apps, **Confirm
by email instead** under **Waiting for confirmation** emails the link to that
address instead.

Without a connected calendar, team meeting types still book the person inside
their hours for each type, but their Google events don't block time. Use **Block
time** on the Meetings tab for days off. If Google stops the connection, for
example after a password change, the card says **Reconnect needed**, their
booking page pauses, and they get a notification. Setting someone inactive
disconnects their calendar.

If your own calendar is also one of your booking accounts, meetings Nudge books
through it for other people don't count as your busy time.

### Connecting your calendar without signing in

Plenty of hosts never sign in to Nudge, so they never see the Connect button on
their page. An admin can send them a link instead. On the person's
**Calendar** card, click **Email Ezgi a connect link** (with their first
name). Nudge asks before it sends and shows where the email goes: the address
under **Invites go to**. The email comes from Nudge, and a reply comes to you.
**Copy link** gives you the same kind of link to send on WhatsApp or anywhere
else.

People who sign in to Nudge don't get these links. They connect their calendar
with the button on their own page.

The link opens a page that says whose calendar it's for and has one button,
**Connect Google Calendar**. They sign in with Google, the same free/busy-only
connection as on their own page, and land on a page saying it's connected.
Nothing else opens with the link: not Nudge, not their contacts.

* A link works once, for 7 days. When their calendar connects, by any link or
  on their own page, every other link they were sent stops working.
* Only send it to the person it's for. Whoever opens it can connect a calendar
  in their name, so the page says "Not Ezgi? Close this page."
* If Nudge can't send email for your workspace yet, only **Copy link** shows.
  One person gets at most three links by email a day.
* The card says when the last link went and until when it works.

### What a host can be booked for

A host doesn't need to be on a team meeting type to take bookings. The
**Booking page** card of their page under **Contact owners** opens once their
Google Calendar is connected. Until then its settings show greyed out, so you
can see what connecting opens:

* **Takes bookings by** has three switches: **Phone call**, **Video call**
  (the invitation carries a Google Meet link) and **In person**. Switching
  In person on opens a field for the address under it; it shows on the
  booking page once the address is filled in. Each one that's on gets its own
  link, such as `/meet/sam-taylor/phone`, shown next to it with a copy button.
* **Lengths** are shared by all three: switch on any of 15, 30, 45, 60 and
  90 minutes (at least one). With more than one on, the booking page asks
  the person how long they want, before the times, with the shortest picked
  to start; the times shown and the meeting follow their pick.
* **Days and times** says when the page offers times, for all three. It
  starts as **Same as working hours**. **Set days and times** narrows it,
  for example to Monday and Tuesday mornings. It never reaches past the
  working hours in the **Calendar** card above.
* **Bookable** sets how far ahead people can book these, and how much notice
  you need: "at least 2 hours ahead, up to 14 days out" to start, the same
  setting a team meeting type has. One window for all three. The far end can
  be in days, weeks or months, up to 3 months.

The **Meeting types** card under it lists the team meeting types the host is
on, each with when it can book them: the host's hours for it. **Default**
means the host uses their working hours for that type. **Set my times** sets
other hours for that type only: the same small editor as the type's **Hosts**
card, and every host can use it on their own page (an admin sees **Set times**
on anyone's). A warning sign means those hours are too short for one meeting;
click it to read why. An admin changes the type itself with **Edit in
Calendar**: its settings open right there, and the person's name at the top
takes you back to their page.
Each one has the host's own link to it, such as `/meet/sam-taylor/demo-call`,
with a copy button: it books that host. The team link on the meeting type's
**Share** card books whoever the type picks.

The host's own page address lists everything: their switched-on kinds first,
then the team meeting types. A booking through one of their own kinds uses
their working hours within the page's days and times, their blocked time and
their Bookable window. A booking through a team type uses that type's
settings and the host's hours for it.

**Copy link** only appears once someone can actually book the host. Until
then, the page address shows as plain text with one line saying what's
missing, the most basic thing first:

* no booking account is connected (Calendar settings, the gear on the Meetings tab);
* nothing to book: no phone, video or in-person switched on, and the host
  isn't on a team meeting type;
* the host's Google Calendar connection stopped working: they reconnect it
  on the Calendar card;
* nothing is free inside the Bookable window, so check the working hours,
  the page's days and times, the host's hours for each team type, and
  blocked time.

The host sees this on their own page, and admins on everyone's. People
visiting the booking page of a host whose calendar can't be read just see
that times can't be shown right now.

**Each person sets their own.** Anyone who owns contacts can change their own
Booking page card (the address, the switches, the lengths, the days and times,
the Bookable window and the in-person address), their own hours for each team
meeting type (**Set my times**), and connect their own calendar. Admins can
change anyone's. Working hours, timezone and WhatsApp number stay with
admins, because they also decide when and how automated messages reach that
person's contacts. To keep meetings off a day or an afternoon, a person
blocks it on the Meetings tab. If a host has nothing switched on yet,
the account menu shows **Set up my booking page**, which opens their page.

What a visitor sees:

* The host, and what they can be booked for: their own phone, video and
  in-person bookings, then the team meeting types they host. With only one,
  the page opens straight on its calendar. Each also has its own address,
  shown when you open it, if you want to share one only.
* The same calendar and times as the contact's own booking page: the host's
  hours for the type (their own kinds: working hours within the page's days
  and times), minus anything busy in their
  Google calendar, within the type's notice and days ahead.
* After picking a time: their first name, last name and email, then
  **Confirm**. A phone number is required when the meeting is a phone call;
  for a video call or an in-person meeting it's optional and used for
  reminders on WhatsApp. The country code starts on the host's country (or
  your workspace's), so most people only type the number. The meeting is always with this host, whoever would normally
  be next in line for the type.
* Once booked, they land on their own booking page, where they can see the
  meeting and reschedule or cancel it. That page's address is theirs to keep.

**Who the booking belongs to.** Nudge looks for the person among your
contacts by email first, then by phone (on a HubSpot workspace, in HubSpot
too). If it finds them, the meeting goes on that contact and nothing about
them is changed: not their name, phone or owner. If nobody matches, Nudge
adds them as a new contact owned by the host (on a HubSpot workspace, it
creates them in HubSpot), and admins get a notification. The invitation goes
to the email they typed on the page, even when the contact you have on file
uses another one. Their record still isn't changed. On an "all hosts" meeting
type, the page shows everyone who will be in the meeting, not only the person
whose page it is.

Bookings from this page count as booked by the **booking page**, so your
Meeting automations treat them the way they treat bookings from a contact's
own booking page.

**Limits that keep spam out.** The page turns away obvious bots, too many
tries from one network or one email address within an hour, and more than
two bookings in a day with the same email. It adds at most 30 new contacts a
day per host; people who are already your contacts can still book after
that. Each refusal tells the visitor what to do.

Someone who is inactive, or an admin who doesn't take contacts, has no page:
their link says the page doesn't exist. A host with nothing switched on and no
team meeting type has a page that says there is nothing to book yet.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.