Let clients and external parties book time slots based on your real availability — with templates, confirmations, and cancellation links.
Templates define the rules for a type of bookable meeting. Create as many templates as you need for different meeting types, durations, or teams.
Go to Settings > Templates and click "New template". Configure the following:
Length of each bookable slot in minutes.
Time blocked before and/or after each booking to prevent back-to-back meetings.
Define the hours available for booking on each day of the week. For example, Monday 09:00–17:00, Tuesday 10:00–16:00. The times are anchored to the template's timezone — see Timezones in Booking below.
Where confirmed bookings are created. Choose one or more: ERP activity, Outlook event, Google Calendar event, Zoom meeting.
Add extra fields to the booking form — text, dropdown, or checkbox. The booker fills these in when booking.
Automatically block days that are public holidays in the configured country. Holiday data comes from the holidays API.
Booking is opt-in per share link. A share link must exist before you can enable booking on it.
The share link's visibility setting still controls what the booker can see in the calendar view, independent of the booking functionality.
The day limit restricts how far ahead a booker can schedule a meeting. This prevents bookings too far in the future before your availability is known.
This is what the booker experiences when they open a booking-enabled share link.
Select a template
If multiple templates are enabled, the booker chooses which type of meeting they want.
Pick a date
A calendar shows the upcoming days within the day limit. Dots indicate days with available slots. Holidays and fully booked days are blocked.
Pick a time slot
Available time slots for the selected date are shown. Slots that overlap with existing events are hidden. Buffer time is automatically accounted for.
Fill in the form
The booker enters their name, email, and any custom fields defined in the template.
Confirm
The booker reviews the details and confirms. The booking is processed immediately.
Booking involves three distinct timezone roles. Getting them right ensures that a host in Riga and a booker in Tokyo both see correct times, and that the resulting calendar event lands at the right UTC moment regardless of where either party is located.
Every booking template has a timezone that defines what the availability window times mean. If the template says Monday 09:00–17:00 and the template timezone is Europe/Riga, those hours are Riga wall-clock time — a 09:00 slot corresponds to 06:00 UTC in summer (UTC+3) or 07:00 UTC in winter (UTC+2).
The template timezone defaults to the creator's viewer timezone at the time the template is created. It is stored on the template and does not change when the creator later travels or updates their personal timezone setting — this prevents silent shifts in your availability that would otherwise occur if you set up a template in Riga and then switch to Tokyo time.
Where to set it: Settings > Templates > [template] — the timezone picker appears next to the availability windows.
When computing available slots, herbe.calendar fetches busy blocks from all connected calendars — ERP, Outlook, Google, ICS. Each source has a known source timezone (configured under Admin > Connections). Busy blocks are converted to UTC intervals at fetch time, and availability arithmetic is done entirely in UTC.
This means participant timezone differences are handled automatically. A London participant with a meeting at 12:00 BST (11:00 UTC) correctly blocks 14:00 Riga (also 11:00 UTC), without any per-person timezone configuration needed.
The person making the booking sees all available slots in their own timezone, which is auto-detected from their browser. A small timezone selector near the top of the booking page lets them switch to a different timezone if needed — for example, when booking on behalf of someone else.
Changing the booker timezone only changes the display — the underlying available slots (derived from the template timezone and UTC busy blocks) are the same. The slot the booker picks is submitted as an unambiguous UTC timestamp, so the resulting calendar event is always created at the correct moment regardless of what timezone either party is viewing in.
The confirmed booking stores both the host timezone (from the template) and the booker timezone. Confirmation emails show the meeting time in the booker's local timezone.
Europe/Riga — availability Monday 09:00–17:0009:00 Riga =06:00 UTC (summer, UTC+3)Participant busy blockLondon meeting 12:00–13:00 BST = 11:00–12:00 UTC → blocks 14:00–15:00 RigaBooker TZAmerica/New_York (UTC−4 EDT)Booker seesMonday slots from 02:00–10:00 EDT, with 10:00–11:00 EDT blockedBooker picks09:00 EDT → submitted as 2026-04-28T13:00:00ZCalendar eventCreated at 16:00 Riga / 13:00 UTC / 09:00 New York — correct for all parties