From 9ec9b709a9988310e198ece8b50b9f38ef255fc1 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:39:58 +0000 Subject: [PATCH 01/11] Updated mintlify pages - Created events/what-is-a-cal-event.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 11 ++++++++ events/what-is-a-cal-event.mdx | 51 ++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 events/what-is-a-cal-event.mdx diff --git a/docs.json b/docs.json index e336f1d..8992c16 100644 --- a/docs.json +++ b/docs.json @@ -181,6 +181,17 @@ } ] }, + { + "group": "Events", + "icon": { + "style": "solid", + "name": "ticket", + "library": "fontawesome" + }, + "pages": [ + "events/what-is-a-cal-event" + ] + }, { "group": "Availabilities", "icon": { diff --git a/events/what-is-a-cal-event.mdx b/events/what-is-a-cal-event.mdx new file mode 100644 index 0000000..abe3407 --- /dev/null +++ b/events/what-is-a-cal-event.mdx @@ -0,0 +1,51 @@ +--- +title: "What is a Cal Event" +sidebarTitle: "What is a Cal Event" +description: "Events are for a single, fixed-date happening that guests register for, such as a workshop, meetup, dinner, or launch party." +--- + +An **Event** is a one-time happening on a fixed date that people register or RSVP for: a workshop, a meetup, a dinner, a launch party. + +This is different from a **Link** (previously called an event type), where a booker picks a slot from your availability. Events and Links sit side by side and do not affect each other. + +You will find events in the left sidebar under **Events**, or at `app.cal.com/events`. Select **+ Create Event** to make one. + +## Events compared with Links + +| | Events | Links | +| --- | --- | --- | +| When it happens | One fixed date and time that you set | Any slot the booker picks from your availability | +| Repeats | No, events are one-time only | Recurring events are supported | +| Who picks the time | You do | The booker does | +| Public URL | `cal.com/` | `cal.com//` | +| Guests | Many guests share one booking | Usually one booker per booking | +| Managed at | `app.cal.com/events` | `app.cal.com/event-types` | + +## Which one am I looking at? + +If you are not sure whether you created an Event or a Link, check the URL in your browser's address bar: + +- `app.cal.com/events/...` means you are working with an Event +- `app.cal.com/event-types/...` means you are working with a Link + +## Event URLs do not include your username + +An event's public URL is top level. It looks like `cal.com/breathwork-session`, with no `//` segment. + +This is expected. Being asked to set a URL without your username does not mean a second account was created, and it is not a signup problem. It is simply how the Events feature works. Links keep the `cal.com//` format. + +## What events have in common with the rest of Cal.com + +- Confirmed guests share one booking, so calendar invites and workflows behave the way they do for bookings. +- Events use the same Workflows and Webhooks editors as bookings. Reminders before and after the event are scheduled once for the whole event, not once per guest. +- Publishing adds the event to your connected calendar, and to the calendars of any co-hosts who accepted their invitation. + + + Some parts of Events, including paid ticketing, AI cover images, and AI description translation, are gated and may not be enabled on every account yet. + + +## Related + +- [Create and publish an event](/events/create-an-event) +- [Registration, approval and capacity](/events/registration-and-capacity) +- [The public event page](/events/public-event-page) From bb495d4c7f8a144904c0779b1ad5f435ce149d45 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:40:29 +0000 Subject: [PATCH 02/11] Updated mintlify pages - Created events/registration-and-capacity.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 3 ++- events/registration-and-capacity.mdx | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 events/registration-and-capacity.mdx diff --git a/docs.json b/docs.json index 8992c16..7035c9a 100644 --- a/docs.json +++ b/docs.json @@ -189,7 +189,8 @@ "library": "fontawesome" }, "pages": [ - "events/what-is-a-cal-event" + "events/what-is-a-cal-event", + "events/registration-and-capacity" ] }, { diff --git a/events/registration-and-capacity.mdx b/events/registration-and-capacity.mdx new file mode 100644 index 0000000..d0b1d52 --- /dev/null +++ b/events/registration-and-capacity.mdx @@ -0,0 +1,5 @@ +--- +title: "Registration, approval and capacity" +sidebarTitle: "Registration and capacity" +description: "Control what guests are asked, whether you approve them, how many can come, and what the public page reveals about who is attending." +--- From da6e20da4debd7d509baf6f8bc437889c1b83a7c Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:40:49 +0000 Subject: [PATCH 03/11] Updated mintlify pages - Updated events/registration-and-capacity.mdx Mintlify-Source: dashboard-editor --- events/registration-and-capacity.mdx | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/events/registration-and-capacity.mdx b/events/registration-and-capacity.mdx index d0b1d52..46ed9f9 100644 --- a/events/registration-and-capacity.mdx +++ b/events/registration-and-capacity.mdx @@ -3,3 +3,51 @@ title: "Registration, approval and capacity" sidebarTitle: "Registration and capacity" description: "Control what guests are asked, whether you approve them, how many can come, and what the public page reveals about who is attending." --- + +## The registration form + +Under **Registration experience → Registration form**, choose what information guests provide when they register. These questions are specific to event registration and are separate from the booking questions used on Links. + +## Require approval + +Under **Policies → Privacy and security**, turn on **Requires confirmation** so registrations wait for you to approve them before they are confirmed. + +Guests waiting for approval see **Pending approval**, and the public registration button reads **Request to join**. + +## Capacity and waitlist + +Under **Attendance → Settings**: + +- **Limit capacity** with an **Available spots** number, up to 100,000. Capacity is unlimited when the limit is off. +- **Waitlist** lets guests join a waitlist once the event is full. + +A few rules are worth knowing before you set these: + +- The waitlist is only available together with a capacity limit. Turning capacity off clears the waitlist. +- The waitlist is not available on paid events. +- Capacity and the waitlist cannot be combined with a paid event. See [Paid events with Cal Pay](/events/paid-events). + +When the event is full, the public page shows **Join waitlist** if the waitlist is on, or **Sold out** if it is not. + +## Who guests can see + +Also under **Policies → Privacy and security**: + +- **Hide host's email** removes it from the event page, the emails, and the calendar events. +- **Public guests** controls whether visitors see who is coming. This setting is owner-only, so a co-host cannot change it. + +**Public guests** has three options: + +| Option | What visitors see | +| --- | --- | +| Don't show guests | Nothing about who is attending | +| Show guest names | A public list of confirmed guests. Guests can hide their own name | +| Show a going count | "N people are going!" with no names | + +The public list shows names and initials only, never emails or photos. A guest who hides their name still counts as going, and the going count excludes anyone who answered **Not going**. + +## Related + +- [Create and publish an event](/events/create-an-event) +- [Invite guests and manage the roster](/events/manage-guests) +- [Paid events with Cal Pay](/events/paid-events) From ea0d659ecf6f0a7a313e2af1d83e2b1ccb6b1f9d Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:42:32 +0000 Subject: [PATCH 04/11] Updated mintlify pages - Created events/manage-guests.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 3 +- events/manage-guests.mdx | 61 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 events/manage-guests.mdx diff --git a/docs.json b/docs.json index 7035c9a..67c30ea 100644 --- a/docs.json +++ b/docs.json @@ -190,7 +190,8 @@ }, "pages": [ "events/what-is-a-cal-event", - "events/registration-and-capacity" + "events/registration-and-capacity", + "events/manage-guests" ] }, { diff --git a/events/manage-guests.mdx b/events/manage-guests.mdx new file mode 100644 index 0000000..b825b79 --- /dev/null +++ b/events/manage-guests.mdx @@ -0,0 +1,61 @@ +--- +title: "Invite guests and manage the roster" +sidebarTitle: "Guests and roster" +description: "Send invitations, approve or decline registrations, work the waitlist, and export your guest list." +--- + +**Attendance → Guests** becomes available once the event is published. It is where you invite people and manage everyone who has registered. + +## Invite guests + +Select **Invite guests**, paste in email addresses, and optionally add a personal note that is included in the invitation email. + +Invitations are separate from registrations. Someone who is invited but never responds does not appear on the roster and does not count toward capacity. + +**Sending limits** + +- Up to 15 emails per send +- Up to 200 invitations per event +- Up to 50 invitation emails per host per day + +Duplicate, already-registered, and invalid addresses are skipped. After sending, you are told how many were invited, skipped, and failed. + + + Each invitation link is personal to the guest it was sent to and should not be shared or forwarded. + + +**Invitation statuses** are Pending, Responded (set automatically when that email RSVPs), and Revoked. You can resend an invitation after a one-hour cooldown, or revoke it. + +## Work the roster + +The roster is split into segments for **Pending**, **Approved**, **Waitlist**, **Declined**, and **All**, with search and summary counts. + +Registration statuses are Pending approval, Waitlisted, Payment pending, Approved, Declined, and Cancelled. + +From here you can: + +- Approve or decline individual registrations, or approve all pending at once. If the event is full, the app reports how many could not be seated. +- Move a guest to the waitlist. +- Promote a waitlisted guest into a seat. This is allowed to go over capacity. +- Reject a waitlist entry. +- Remove an attendee, or **Mark not going**, which takes them off the confirmed list and frees the seat. +- Change a guest's registration status or RSVP response manually. +- View a guest's answers to the registration form. + +When you approve someone and the event is already full, the app offers the waitlist instead, or warns you that approving will overbook by one spot. + +## Export the roster + +You can export the roster to CSV. Invitations are not included, and the export is capped at 4,000 rows. If it was cut off, you are told. + +## A note on "attendance" + +In the roster, attendance means the guest's RSVP response: Going, Maybe, or Not going. + +Cal Events do not have no-show marking or post-event attendance tracking. If you need to record who actually turned up, do it outside Cal.com. + +## Related + +- [Registration, approval and capacity](/events/registration-and-capacity) +- [The public event page](/events/public-event-page) +- [Paid events with Cal Pay](/events/paid-events) From a51ab35bfcf6c64a408e5f7e13e7bb0f97539e9b Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:44:46 +0000 Subject: [PATCH 05/11] Updated mintlify pages - Created events/public-event-page.mdx - Created events/troubleshooting-events.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 4 +- events/public-event-page.mdx | 71 +++++++++++++++++++++++++++++++ events/troubleshooting-events.mdx | 52 ++++++++++++++++++++++ 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 events/public-event-page.mdx create mode 100644 events/troubleshooting-events.mdx diff --git a/docs.json b/docs.json index 67c30ea..e19d77e 100644 --- a/docs.json +++ b/docs.json @@ -191,7 +191,9 @@ "pages": [ "events/what-is-a-cal-event", "events/registration-and-capacity", - "events/manage-guests" + "events/manage-guests", + "events/public-event-page", + "events/troubleshooting-events" ] }, { diff --git a/events/public-event-page.mdx b/events/public-event-page.mdx new file mode 100644 index 0000000..b421df3 --- /dev/null +++ b/events/public-event-page.mdx @@ -0,0 +1,71 @@ +--- +title: "The public event page" +sidebarTitle: "Public event page" +description: "What guests see at your event's URL, how the registration button changes, and where published events are listed." +--- + +Your event's public page lives at `cal.com/`. + +## What the page shows + +- The cover image, title, and description +- The date and time, in the viewer's local time +- The location, or a note that it is revealed after registration +- The hosts +- The guest section, according to your **Public guests** setting +- A registration button + +The page can also show scarcity messages, such as how many spots are left or **Near capacity**. + +## The registration button + +The button changes with the situation: + +| What the button says | When | +| --- | --- | +| **Register** | The standard state | +| **Register in one click** | A signed-in Cal.com user, on an event with no extra registration questions, no approval, and no captcha | +| **Request to join** | Approval is required | +| **Join waitlist** | The event is full and the waitlist is on | +| **Sold out** | The event is full and there is no waitlist | +| **Get your ticket** | A paid event | + +Returning guests see their own state instead: **You're going**, **Pending approval**, or **You're on the waitlist**. As the host, you see **You're hosting, manage event**. + +When the event has ended, has already started, or was cancelled, the page says so and registration is closed. + +## What guests should know + +- Guests do not need a Cal.com account to register. +- Only one registration per email address per event. Trying again shows that they are already registered. +- Registrants get a personal status link to view or manage their registration. + +## Share the event + +The **Share event** dialog gives you the link and a QR code, which is useful for posters and slides. + +## Where published events are listed + +Published events appear in public per-profile event directories: + +- `cal.com//events` +- `cal.com/team//events` +- `cal.com/org///events` + +Each lists that profile's public events. + +To keep a specific event out of that listing, turn on the **Private event** toggle. The event stays reachable by its direct link but does not appear in the directory. + + + This is separate from the public profile visibility toggle used for Links, which does not apply to events. + + +## Embedding + +The event page can be embedded. When you view your own embedded event, you see a **You're hosting this event** note. + +## Related + +- [Registration, approval and capacity](/events/registration-and-capacity) +- [Invite guests and manage the roster](/events/manage-guests) +- [What is a Cal Event](/events/what-is-a-cal-event) diff --git a/events/troubleshooting-events.mdx b/events/troubleshooting-events.mdx new file mode 100644 index 0000000..44f23dd --- /dev/null +++ b/events/troubleshooting-events.mdx @@ -0,0 +1,52 @@ +--- +title: "Troubleshooting events" +sidebarTitle: "Troubleshooting" +description: "Fixes for the cover image upload, and a plain list of what the Events feature does not do yet." +--- + +## The cover image will not upload + +If you see **Unable to import the image, please try again** or **Could not upload image**, work through these in order. + + + + Select or drag in the image, then scroll down and select **Save** (or **Update**) in the editor. The upload only takes effect once the event is saved, and this button is easy to miss. This resolves most reports. + + + Confirm the file is under 10 MB and in a standard format such as PNG or JPG. Try **Browse** instead of drag and drop, or try a different browser. Some people hit this on Microsoft Edge specifically. + + + If the upload still fails with a valid file after saving, this is a known issue our engineering team is working on. Contact support with the exact error message, the file format and size, your browser and operating system, and a screenshot or short screen recording. + + + +## What events do not support yet + +| Not supported | Detail | +| --- | --- | +| Recurring events | Events are one-time by design. There are no multiple dates and no slot picking. Use a [Link](/event-types/create-recurring) if you need something that repeats | +| A management API | Events are managed through the web app only. The Platform API's event-type endpoints do not cover events | +| Stripe or PayPal | Paid events run through Cal Pay only | +| Paid events with approval or a waitlist | Turn both off before charging for an event | +| No-show or attendance tracking | The roster records the guest's RSVP response, not who actually attended | +| Changing the URL after publishing | The slug is fixed once the event goes live. It can only be changed while the event is a draft | + +AI cover images and **Translate using AI** exist in the editor but are gated by plan or organization, and may show an upgrade prompt where they are not enabled. + +If you need something on this list, let our support team know. Feature requests are shared with the product team. + +## When to contact support + +Get in touch if you hit an error that persists after the steps above, for example: + +- An event that will not publish after form errors are fixed and changes are saved +- A payment section that stays greyed out after Cal Pay is set up correctly +- A registration or RSVP that fails +- A map or calendar sync that keeps failing +- A refund that failed and cannot be completed from your side + +## Related + +- [Create and publish an event](/events/create-an-event) +- [Paid events with Cal Pay](/events/paid-events) +- [What is a Cal Event](/events/what-is-a-cal-event) From 5cbf6ada7eca526acc72ed037511aa19ef0a6a1e Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:45:04 +0000 Subject: [PATCH 06/11] Updated mintlify pages - Deleted events/public-event-page.mdx - Deleted events/troubleshooting-events.mdx Mintlify-Source: dashboard-editor --- events/public-event-page.mdx | 71 ------------------------------- events/troubleshooting-events.mdx | 52 ---------------------- 2 files changed, 123 deletions(-) delete mode 100644 events/public-event-page.mdx delete mode 100644 events/troubleshooting-events.mdx diff --git a/events/public-event-page.mdx b/events/public-event-page.mdx deleted file mode 100644 index b421df3..0000000 --- a/events/public-event-page.mdx +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: "The public event page" -sidebarTitle: "Public event page" -description: "What guests see at your event's URL, how the registration button changes, and where published events are listed." ---- - -Your event's public page lives at `cal.com/`. - -## What the page shows - -- The cover image, title, and description -- The date and time, in the viewer's local time -- The location, or a note that it is revealed after registration -- The hosts -- The guest section, according to your **Public guests** setting -- A registration button - -The page can also show scarcity messages, such as how many spots are left or **Near capacity**. - -## The registration button - -The button changes with the situation: - -| What the button says | When | -| --- | --- | -| **Register** | The standard state | -| **Register in one click** | A signed-in Cal.com user, on an event with no extra registration questions, no approval, and no captcha | -| **Request to join** | Approval is required | -| **Join waitlist** | The event is full and the waitlist is on | -| **Sold out** | The event is full and there is no waitlist | -| **Get your ticket** | A paid event | - -Returning guests see their own state instead: **You're going**, **Pending approval**, or **You're on the waitlist**. As the host, you see **You're hosting, manage event**. - -When the event has ended, has already started, or was cancelled, the page says so and registration is closed. - -## What guests should know - -- Guests do not need a Cal.com account to register. -- Only one registration per email address per event. Trying again shows that they are already registered. -- Registrants get a personal status link to view or manage their registration. - -## Share the event - -The **Share event** dialog gives you the link and a QR code, which is useful for posters and slides. - -## Where published events are listed - -Published events appear in public per-profile event directories: - -- `cal.com//events` -- `cal.com/team//events` -- `cal.com/org///events` - -Each lists that profile's public events. - -To keep a specific event out of that listing, turn on the **Private event** toggle. The event stays reachable by its direct link but does not appear in the directory. - - - This is separate from the public profile visibility toggle used for Links, which does not apply to events. - - -## Embedding - -The event page can be embedded. When you view your own embedded event, you see a **You're hosting this event** note. - -## Related - -- [Registration, approval and capacity](/events/registration-and-capacity) -- [Invite guests and manage the roster](/events/manage-guests) -- [What is a Cal Event](/events/what-is-a-cal-event) diff --git a/events/troubleshooting-events.mdx b/events/troubleshooting-events.mdx deleted file mode 100644 index 44f23dd..0000000 --- a/events/troubleshooting-events.mdx +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: "Troubleshooting events" -sidebarTitle: "Troubleshooting" -description: "Fixes for the cover image upload, and a plain list of what the Events feature does not do yet." ---- - -## The cover image will not upload - -If you see **Unable to import the image, please try again** or **Could not upload image**, work through these in order. - - - - Select or drag in the image, then scroll down and select **Save** (or **Update**) in the editor. The upload only takes effect once the event is saved, and this button is easy to miss. This resolves most reports. - - - Confirm the file is under 10 MB and in a standard format such as PNG or JPG. Try **Browse** instead of drag and drop, or try a different browser. Some people hit this on Microsoft Edge specifically. - - - If the upload still fails with a valid file after saving, this is a known issue our engineering team is working on. Contact support with the exact error message, the file format and size, your browser and operating system, and a screenshot or short screen recording. - - - -## What events do not support yet - -| Not supported | Detail | -| --- | --- | -| Recurring events | Events are one-time by design. There are no multiple dates and no slot picking. Use a [Link](/event-types/create-recurring) if you need something that repeats | -| A management API | Events are managed through the web app only. The Platform API's event-type endpoints do not cover events | -| Stripe or PayPal | Paid events run through Cal Pay only | -| Paid events with approval or a waitlist | Turn both off before charging for an event | -| No-show or attendance tracking | The roster records the guest's RSVP response, not who actually attended | -| Changing the URL after publishing | The slug is fixed once the event goes live. It can only be changed while the event is a draft | - -AI cover images and **Translate using AI** exist in the editor but are gated by plan or organization, and may show an upgrade prompt where they are not enabled. - -If you need something on this list, let our support team know. Feature requests are shared with the product team. - -## When to contact support - -Get in touch if you hit an error that persists after the steps above, for example: - -- An event that will not publish after form errors are fixed and changes are saved -- A payment section that stays greyed out after Cal Pay is set up correctly -- A registration or RSVP that fails -- A map or calendar sync that keeps failing -- A refund that failed and cannot be completed from your side - -## Related - -- [Create and publish an event](/events/create-an-event) -- [Paid events with Cal Pay](/events/paid-events) -- [What is a Cal Event](/events/what-is-a-cal-event) From 8fa0dc41904868395ebb43ee501b1247572d025d Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:46:36 +0000 Subject: [PATCH 07/11] Updated mintlify pages - Created events/create-an-event.mdx - Created events/paid-events.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 4 +- events/create-an-event.mdx | 80 ++++++++++++++++++++++++++++++++++++++ events/paid-events.mdx | 55 ++++++++++++++++++++++++++ 3 files changed, 138 insertions(+), 1 deletion(-) create mode 100644 events/create-an-event.mdx create mode 100644 events/paid-events.mdx diff --git a/docs.json b/docs.json index e19d77e..73dc5ef 100644 --- a/docs.json +++ b/docs.json @@ -190,10 +190,12 @@ }, "pages": [ "events/what-is-a-cal-event", + "events/create-an-event", "events/registration-and-capacity", "events/manage-guests", "events/public-event-page", - "events/troubleshooting-events" + "events/troubleshooting-events", + "events/paid-events" ] }, { diff --git a/events/create-an-event.mdx b/events/create-an-event.mdx new file mode 100644 index 0000000..5e34d7b --- /dev/null +++ b/events/create-an-event.mdx @@ -0,0 +1,80 @@ +--- +title: "Create and publish an event" +sidebarTitle: "Create and publish" +description: "Set up an event, fill in the editor, publish it, and understand what happens when you cancel or delete." +--- + +## Create the event + +Go to **Events** in the left sidebar and select **+ Create Event**. The dialog collects only the basics. Everything else is filled in afterwards in the editor. + +1. **Event name.** +2. **Event URL (slug)**, suggested from the name. It must be at least 10 characters, use only lowercase letters, numbers, and dashes, and be unique across Cal.com. It is checked against usernames, reserved routes, and other events. If it is already in use, the app tells you the URL is taken. +3. **Starts**, **Ends**, and **Timezone**. The end must be after the start, and the start must be in the future. For in-person events, use the venue's local time. +4. **Private event**, an optional toggle that keeps the event reachable by its URL but hides it from your public event listing. + + + If you type a link into the event name, it is removed from the saved title, and the URL is never allowed to spell out the removed link. If this forces the URL to change, you are told the new URL and that the old one no longer works. The editor always shows the URL the event is actually saved under. + + +## Fill in the editor + +The editor is grouped into sections. A live preview of the public page sits alongside the form. + +### Setup: Basics + +The event name, the event URL (read-only once published), an **About the event** description with a **Translate using AI** option, the date, time and timezone, the **Private event** toggle, and a cover image. + +The cover image can be dragged in or browsed for. The ideal size is 800x800 and the maximum is 10 MB. You can replace or remove it later. There is also an option to generate a cover image with AI, which is uploaded when the event is saved. + +### Setup: Location + +Choose in-person or virtual. + +- **In-person** is an address. A map preview is generated automatically after the event is saved, and guests get an **Open in maps** action. Changing the address regenerates the map. +- **Virtual** is either Cal Video, another connected conferencing option, or a custom meeting link. + +The exact join link or address is only revealed to a guest after they register. + +### Setup: Hosts + +You are always listed as a host. Team members can be added, and people outside your team can be invited as external co-hosts by email. Co-hosts accept or decline, and you can see their Invited, Declined, or accepted state, revoke access at any time, or watch a co-host leave the event themselves. + +A co-host can edit event details and manage attendees. A co-host **cannot** change the host roster, cancel, delete, or publish the event, or change who appears on the public guest list. Locked controls tell them to contact the main host. + +### The remaining sections + +- **Registration experience** and **Attendance**: see [Registration, approval and capacity](/events/registration-and-capacity). +- **Attendance → Guests**: available only after the event is published. See [Invite guests and manage the roster](/events/manage-guests). +- **Automation → Workflows and Webhooks**: events use the same editors as bookings. + +## Publish the event + +An event moves through four statuses: + +| Status | What it means | +| --- | --- | +| Draft | Created but not published. Not publicly reachable, and no registrations or invitations are possible yet. | +| Published | Live at its public URL, with registration open. | +| Past | The start time has passed, so registration is closed. | +| Cancelled | You cancelled it. The page stays online marked as cancelled and registration is closed. | + +To publish, make sure the form has no errors and all changes are saved. If you cannot publish, check for unsaved changes or form errors first. + +On publish, the event is added to your connected calendar and to those of any accepted co-hosts. If that fails, the event still publishes and you are asked to reconnect your calendar. A calendar problem never blocks publishing. + + + The event URL becomes permanent once published, because links and invites are already circulating. The slug can only be changed while the event is still a draft. + + +## Cancel or delete an event + +**Cancelling** cannot be undone from the app. It closes registration, leaves the page online marked as cancelled, and notifies registered guests. Free confirmed guests receive the standard booking cancellation email. Paid and pending guests receive a dedicated Cal Events cancellation email covering any refund, or a note that nothing was charged. Guests who had already declined or cancelled are not notified again. + +**Deleting** removes the event entirely. + +## Related + +- [What is a Cal Event](/events/what-is-a-cal-event) +- [Registration, approval and capacity](/events/registration-and-capacity) +- [Troubleshooting events](/events/troubleshooting-events) diff --git a/events/paid-events.mdx b/events/paid-events.mdx new file mode 100644 index 0000000..d39e553 --- /dev/null +++ b/events/paid-events.mdx @@ -0,0 +1,55 @@ +--- +title: "Paid events with Cal Pay" +sidebarTitle: "Paid events" +description: "Charge for tickets on an event, hold seats while guests check out, and handle refunds." +--- + + + Paid ticketing is a newer, gated feature and may not be enabled on your account yet. + + +## Events use Cal Pay, not Stripe + +Payments on events run through **Cal Pay only**. Stripe and PayPal are not options for events, so there is no need to install Stripe to charge for one. + +The payment option lives inside the event's **registration experience**. If you are looking for a **Booking experience → Payments and Seats** tab on an event and cannot find it, that is why: events use the registration experience layout instead. That tab belongs to Links. + +## Turn on payment + +Switch on **Paid event**, then set a price and currency. The price must be at least the currency's minimum charge. + + + Paid events cannot be combined with approval or a waitlist. Turn both off before you can charge for an event. On an event that is already paid, those options are unavailable. If you could not enable payment until you disabled approval or the waitlist, that is expected behaviour. + + +**Payment deadline** sets how long a seat is held while a guest checks out. The form accepts anything from 10 minutes up to 7 days. If you do not set one, your account default applies. + +## What the guest experiences + +1. The guest RSVPs and their seat is held as **Payment pending**. +2. They receive a "complete your payment" email showing the pay-by deadline. +3. They check out through Cal Pay. +4. Once paid, they are confirmed and receive a paid confirmation and receipt showing the amount paid. + +If the deadline passes, the seat is released. The guest is emailed to say their spot was released, that nothing was charged, and that they can register again. + +On the public page, the registration button reads **Get your ticket** for paid events. + +## Refunds + +On the roster, paid guests show as **Paid**, **Awaiting payment**, or **Refunded**. You have two actions: + +- **Refund payment** refunds the guest but keeps their registration. +- **Refund and remove guest** refunds them and releases the seat. + +If a refund fails, you are emailed so you can refund the guest manually from your payment provider. + +## Setting up Cal Pay + +Cal Pay setup, payouts, identity verification, fees, and supported payment methods are covered separately. Payouts run through Whop and require identity verification before any money can reach you, so complete that before your first paid event. + +## Related + +- [Registration, approval and capacity](/events/registration-and-capacity) +- [Invite guests and manage the roster](/events/manage-guests) +- [Troubleshooting events](/events/troubleshooting-events) From 77c53c5b70dab07648f75296ad8d4cdbfa153ab6 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:47:01 +0000 Subject: [PATCH 08/11] Updated mintlify pages - Updated events/public-event-page.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 4 +- events/public-event-page.mdx | 71 ++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 events/public-event-page.mdx diff --git a/docs.json b/docs.json index 73dc5ef..fcc29b0 100644 --- a/docs.json +++ b/docs.json @@ -193,9 +193,9 @@ "events/create-an-event", "events/registration-and-capacity", "events/manage-guests", - "events/public-event-page", "events/troubleshooting-events", - "events/paid-events" + "events/paid-events", + "events/public-event-page" ] }, { diff --git a/events/public-event-page.mdx b/events/public-event-page.mdx new file mode 100644 index 0000000..b421df3 --- /dev/null +++ b/events/public-event-page.mdx @@ -0,0 +1,71 @@ +--- +title: "The public event page" +sidebarTitle: "Public event page" +description: "What guests see at your event's URL, how the registration button changes, and where published events are listed." +--- + +Your event's public page lives at `cal.com/`. + +## What the page shows + +- The cover image, title, and description +- The date and time, in the viewer's local time +- The location, or a note that it is revealed after registration +- The hosts +- The guest section, according to your **Public guests** setting +- A registration button + +The page can also show scarcity messages, such as how many spots are left or **Near capacity**. + +## The registration button + +The button changes with the situation: + +| What the button says | When | +| --- | --- | +| **Register** | The standard state | +| **Register in one click** | A signed-in Cal.com user, on an event with no extra registration questions, no approval, and no captcha | +| **Request to join** | Approval is required | +| **Join waitlist** | The event is full and the waitlist is on | +| **Sold out** | The event is full and there is no waitlist | +| **Get your ticket** | A paid event | + +Returning guests see their own state instead: **You're going**, **Pending approval**, or **You're on the waitlist**. As the host, you see **You're hosting, manage event**. + +When the event has ended, has already started, or was cancelled, the page says so and registration is closed. + +## What guests should know + +- Guests do not need a Cal.com account to register. +- Only one registration per email address per event. Trying again shows that they are already registered. +- Registrants get a personal status link to view or manage their registration. + +## Share the event + +The **Share event** dialog gives you the link and a QR code, which is useful for posters and slides. + +## Where published events are listed + +Published events appear in public per-profile event directories: + +- `cal.com//events` +- `cal.com/team//events` +- `cal.com/org///events` + +Each lists that profile's public events. + +To keep a specific event out of that listing, turn on the **Private event** toggle. The event stays reachable by its direct link but does not appear in the directory. + + + This is separate from the public profile visibility toggle used for Links, which does not apply to events. + + +## Embedding + +The event page can be embedded. When you view your own embedded event, you see a **You're hosting this event** note. + +## Related + +- [Registration, approval and capacity](/events/registration-and-capacity) +- [Invite guests and manage the roster](/events/manage-guests) +- [What is a Cal Event](/events/what-is-a-cal-event) From e2841e0c8a62c04fbf357d778d90b5ac4ae88403 Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:47:43 +0000 Subject: [PATCH 09/11] Updated mintlify pages - Updated events/troubleshooting-events.mdx Mintlify-Source: dashboard-editor --- events/troubleshooting-events.mdx | 52 +++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 events/troubleshooting-events.mdx diff --git a/events/troubleshooting-events.mdx b/events/troubleshooting-events.mdx new file mode 100644 index 0000000..0aa842b --- /dev/null +++ b/events/troubleshooting-events.mdx @@ -0,0 +1,52 @@ +--- +title: "troubleshooting-events" +sidebarTitle: "Troubleshooting" +description: "Fixes for the cover image upload, and a plain list of what the Events feature does not do yet." +--- + +## The cover image will not upload + +If you see **Unable to import the image, please try again** or **Could not upload image**, work through these in order. + + + + Select or drag in the image, then scroll down and select **Save** (or **Update**) in the editor. The upload only takes effect once the event is saved, and this button is easy to miss. This resolves most reports. + + + Confirm the file is under 10 MB and in a standard format such as PNG or JPG. Try **Browse** instead of drag and drop, or try a different browser. Some people hit this on Microsoft Edge specifically. + + + If the upload still fails with a valid file after saving, this is a known issue our engineering team is working on. Contact support with the exact error message, the file format and size, your browser and operating system, and a screenshot or short screen recording. + + + +## What events do not support yet + +| Not supported | Detail | +| --- | --- | +| Recurring events | Events are one-time by design. There are no multiple dates and no slot picking. Use a [recurring Link](/event-types/create-recurring) if you need something that repeats | +| A management API | Events are managed through the web app only. The Platform API's event-type endpoints do not cover events | +| Stripe or PayPal | Paid events run through Cal Pay only | +| Paid events with approval or a waitlist | Turn both off before charging for an event | +| No-show or attendance tracking | The roster records the guest's RSVP response, not who actually attended | +| Changing the URL after publishing | The slug is fixed once the event goes live. It can only be changed while the event is a draft | + +AI cover images and **Translate using AI** exist in the editor but are gated by plan or organization, and may show an upgrade prompt where they are not enabled. + +If you need something on this list, let our support team know. Feature requests are shared with the product team. + +## When to contact support + +Get in touch if you hit an error that persists after the steps above, for example: + +- An event that will not publish after form errors are fixed and changes are saved +- A payment section that stays greyed out after Cal Pay is set up correctly +- A registration or RSVP that fails +- A map or calendar sync that keeps failing +- A refund that failed and cannot be completed from your side + +## Related + +- [Create and publish an event](/events/create-an-event) +- [Paid events with Cal Pay](/events/paid-events) +- [What is a Cal Event](/events/what-is-a-cal-event) From d837c37e7598dce9cec03194e93d0354aba55ded Mon Sep 17 00:00:00 2001 From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2026 07:51:23 +0000 Subject: [PATCH 10/11] Updated mintlify pages - Updated events/troubleshooting-events.mdx - Updated docs.json Mintlify-Source: dashboard-editor --- docs.json | 4 ++-- events/troubleshooting-events.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs.json b/docs.json index fcc29b0..b801127 100644 --- a/docs.json +++ b/docs.json @@ -193,9 +193,9 @@ "events/create-an-event", "events/registration-and-capacity", "events/manage-guests", - "events/troubleshooting-events", "events/paid-events", - "events/public-event-page" + "events/public-event-page", + "events/troubleshooting-events" ] }, { diff --git a/events/troubleshooting-events.mdx b/events/troubleshooting-events.mdx index 0aa842b..3e818c6 100644 --- a/events/troubleshooting-events.mdx +++ b/events/troubleshooting-events.mdx @@ -1,5 +1,5 @@ --- -title: "troubleshooting-events" +title: "Troubleshooting events" sidebarTitle: "Troubleshooting" description: "Fixes for the cover image upload, and a plain list of what the Events feature does not do yet." --- From 6e47c2079d73b0a4d0ccc197170f6a27cab50819 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Pua=C4=8D?= <97884287+milospuac@users.noreply.github.com> Date: Mon, 7 Sep 2026 09:54:17 +0200 Subject: [PATCH 11/11] Updated mintlify pages - Updated events/registration-and-capacity.mdx Mintlify-Source: dashboard-editor --- events/registration-and-capacity.mdx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/events/registration-and-capacity.mdx b/events/registration-and-capacity.mdx index 46ed9f9..817c835 100644 --- a/events/registration-and-capacity.mdx +++ b/events/registration-and-capacity.mdx @@ -24,8 +24,7 @@ Under **Attendance → Settings**: A few rules are worth knowing before you set these: - The waitlist is only available together with a capacity limit. Turning capacity off clears the waitlist. -- The waitlist is not available on paid events. -- Capacity and the waitlist cannot be combined with a paid event. See [Paid events with Cal Pay](/events/paid-events). +- The waitlist is not available on paid events. Charging for an event means turning approval and the waitlist off first. See [Paid events with Cal Pay](/events/paid-events). When the event is full, the public page shows **Join waitlist** if the waitlist is on, or **Sold out** if it is not.