Skip to content
Documentation

Core concepts

Event types, schedules, bookings, and how they relate.

Four objects account for nearly everything in BunnyCal. Understanding how they relate makes the rest of the documentation shorter.

Event type

A kind of meeting you offer — “Intro call, 30 minutes, over Zoom”. It owns the duration, location, booking questions, buffers, and notice rules. Each event type has its own public URL and can be enabled or disabled without deleting it.

You’ll usually have a handful: a short intro, a longer working session, maybe an internal one you don’t advertise.

Availability schedule

The hours you’re willing to be booked, expressed in your timezone. A schedule is reusable — “Working hours” can back several event types at once, so changing it once updates all of them.

Availability is a ceiling, not a promise. The bookable slots a guest actually sees are:

schedule hours
  − existing calendar events (conflicts)
  − buffers around neighbouring meetings
  − anything inside the minimum-notice window
  = bookable slots

Booking

A confirmed meeting: one event type, one time, one or more guests. Creating a booking writes an event to your write-target calendar, sends confirmations, and generates a conferencing link if the location calls for one.

Bookings can be rescheduled or cancelled by either side, from links in the confirmation email.

Host

The person the meeting is with. For a one-on-one that’s just you. For team event types the host is chosen at booking time — by rotation for round-robin, or everyone for a collective meeting where all hosts must be free.

How they fit together

An event type points at an availability schedule and a set of hosts. When a guest picks a time, the result is a booking.

Timezones

Every schedule is stored in the timezone you created it in, and slots are rendered in the guest’s local timezone at view time. You define “9am” once, in your own zone, and it stays 9am for you regardless of who is looking — including across daylight-saving transitions.