Get public appointment details
Retrieves public appointment information that can be accessed with or without authentication
curl --request GET \
--url https://api.example.com/v4/appointment/public/{appointmentId}import requests
url = "https://api.example.com/v4/appointment/public/{appointmentId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v4/appointment/public/{appointmentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v4/appointment/public/{appointmentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v4/appointment/public/{appointmentId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v4/appointment/public/{appointmentId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/appointment/public/{appointmentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"meetingInfo": {
"name": "<string>",
"description": "<string>",
"enableRedirect": true,
"redirect": "<string>",
"passEventDetailsToRedirect": true,
"duration": 123,
"channel": "local",
"customChannelName": "<string>",
"customChannelLink": "<string>",
"connectChannelName": "<string>",
"groupBooking": true,
"showAvailableSlots": true,
"enrichInvitee": true,
"autoCreateSpace": true,
"spaceAutoInvite": true,
"confirmationButton": {
"useConfirmationButton": true,
"text": "<string>",
"color": "<string>",
"link": "<string>"
},
"bufferBefore": 123,
"bufferAfter": 123,
"bufferMustStayWithinWorkingHours": true,
"rollingSlots": true,
"nameLocalised": {
"en": "<string>",
"de": "<string>",
"fr": "<string>",
"es": "<string>",
"no": "<string>",
"it": "<string>",
"nl": "<string>",
"da": "<string>",
"pl": "<string>",
"se": "<string>",
"tr": "<string>"
},
"descriptionLocalised": {
"en": "<string>",
"de": "<string>",
"fr": "<string>",
"es": "<string>",
"no": "<string>",
"it": "<string>",
"nl": "<string>",
"da": "<string>",
"pl": "<string>",
"se": "<string>",
"tr": "<string>"
},
"spacePresetId": {},
"color": {}
},
"online": true,
"start": "<string>",
"end": "<string>",
"isCancelled": true,
"channel": "local",
"hosts": {
"id": "<string>",
"firstname": "<string>",
"lastname": "<string>",
"emailVerified": true,
"picture": "<string>"
},
"company": {
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"tier": "basic",
"primaryColor": "<string>",
"useBrandStyling": true,
"hideMeetergoBranding": true,
"enforceBusinessCardTheme": true,
"showDataPolicyLink": true,
"hideDataPolicyCheckbox": true,
"enableWithdrawalFunction": true,
"dataPolicyLink": "<string>",
"imprintLink": "<string>",
"deleted": true,
"useFormalBookingLanguage": true,
"enableCustomLegalText": true,
"enableCookieBanner": true,
"customLegalText": "<string>",
"customBookingCSS": "<string>",
"featureAccess": {
"polls": true,
"advancedMeetingTypeSettings": true,
"workflows": true,
"maxWorkflows": 123,
"meetingTypeCommunications": true,
"multiHostBooking": true,
"groupBooking": true,
"enrichInvitee": true,
"autoCreateSpace": true,
"zapier": true,
"personalizedBranding": true,
"visualBranding": true,
"crmIntegration": true,
"cmpIntegration": true,
"routingForms": true,
"basicForms": true,
"selectionPages": true,
"dataFields": true,
"roundRobin": true,
"accountOwnerMatching": true,
"handoff": true,
"reschedule": true,
"notifications": true,
"workspaces": true,
"api": true,
"showcaseHubs": true,
"meetergoConnect": true,
"connectMaxParticipants": 123,
"connectMaxCallMinutes": 123,
"connectRecording": true,
"connectBreakouts": true,
"connectWebinars": true,
"webhooks": true,
"wallets": true,
"dealSpace": true,
"funnel": true,
"unlimitedMeetingTypes": true,
"salesforceIntegration": true,
"salesforceStudioMapping": true,
"salesforceRouting": true,
"maximumCalendars": 123,
"disableIntercom": true,
"supportChat": true,
"evalancheIntegration": true,
"analytics": true,
"bookingFunnel": true,
"funnelProgressAndInfobox": true,
"contactsBeta": true,
"paypalIntegration": true,
"stripeIntegration": true,
"mollieIntegration": true,
"meetingTypeTemplates": true,
"nextBeta": true,
"video": true,
"emailLayout": true,
"reviews": true,
"brevoIntegration": true,
"getResponseIntegration": true,
"customDomain": true,
"maxCustomDomains": 123,
"maxViewers": 123,
"apiPlatform": true,
"slackIntegration": true,
"calgent": true,
"miraPipelineAutopilot": true,
"fileUploads": true,
"knowledgePageLimit": 123,
"storageQuotaMB": 123,
"recordingRetentionDays": 123,
"multiBooking": true,
"bundles": true,
"maxCrmDeals": 123,
"maxShowcaseHubs": 123,
"maxDealSpaces": 123,
"waitlist": true,
"notetaker": true,
"notetakerRecording": true,
"maxNotetakerRecapsPerMonth": 123,
"maxLinkedInLookupsPerMonth": 123,
"quickMail": true,
"enrichDealSpaceCompany": true,
"whatsappAddon": true,
"conversionWidgetNativeScheduling": true,
"instagramDms": true,
"bookingCoupons": true,
"crmEmailSync": true,
"websiteChat": true,
"emailChannel": true,
"teamChat": true,
"aiPhoneAssistant": true,
"aiPhoneAssistantAdvanced": true,
"bookingLocations": true,
"bookingBlocks": true,
"invoicing": true,
"purchaseDocuments": true,
"hostedEvents": true,
"hostedEventTicketing": true,
"paymentLinks": true,
"feedbackLoop": true,
"newsletter": true,
"maxFormSubmissionsPerMonth": 123,
"maxSignatureRequestsPerMonth": 123,
"advancedSignatures": true,
"maxAdvancedSignatureRequestsPerMonth": 123,
"maxInvoicesPerMonth": 123,
"whatsappAiAgent": true,
"customSmtp": true,
"csvExport": true
},
"language": "<string>",
"googleAnalyticsMeasurementId": "<string>",
"metaPixelId": "<string>",
"tiktokPixelId": "<string>",
"gtmContainerId": "<string>",
"gtmServerContainerUrl": "<string>",
"matomoUrl": "<string>",
"matomoSiteId": "<string>",
"logo": "<string>",
"businessCardTheme": {
"preset": "<string>",
"accent": "<string>",
"background": {
"type": "solid",
"value": "<string>"
},
"font": "sans",
"buttonShape": "sharp"
},
"allowedLanguages": [
"<string>"
],
"usercentricsSettingsId": "<string>",
"usercentricsConfig": {}
},
"disableActionButtons": true,
"timeFormat": "12",
"language": "<string>",
"showConfetti": true,
"enableWithdrawalButton": true,
"createdAt": "<string>",
"meetingTypeId": "<string>",
"location": "<string>",
"cancellationPolicy": {
"enable": true,
"mode": "disabled",
"duration": {}
},
"reschedulingPolicy": {
"enable": true,
"mode": "disabled",
"duration": {}
},
"timezonePreset": {
"enable": true,
"timezonePreset": "<string>"
},
"meetingLink": "<string>",
"ics": "<string>",
"customCss": "<string>",
"queueId": "<string>",
"recurringSeriesId": "<string>",
"occurrenceNumber": 123,
"recurringSeries": {
"id": "<string>",
"mode": "recurring",
"totalOccurrences": 123,
"appointments": [
{
"id": "<string>",
"start": "<string>",
"end": "<string>",
"isCancelled": true,
"occurrenceNumber": 123,
"secret": "<string>"
}
],
"frequency": "weekly"
},
"isBundleBooking": true,
"bundleId": "<string>",
"bundleItems": [
{
"meetingTypeId": "<string>",
"meetingTypeName": "<string>",
"duration": 123,
"startTime": "<string>",
"endTime": "<string>",
"sortOrder": 123,
"hosts": [
{
"id": "<string>",
"firstname": "<string>",
"lastname": "<string>",
"emailVerified": true,
"picture": "<string>"
}
],
"price": 123
}
]
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}Path Parameters
The unique identifier of the appointment
Query Parameters
Optional secret key for accessing appointment details
Response
Public appointment details retrieved successfully
Appointment unique identifier
Meeting information including title, duration, and other details
Show child attributes
Show child attributes
Whether the appointment is conducted online
Appointment start time (ISO string)
Appointment end time (ISO string)
Whether the appointment has been cancelled
Meeting channel type (e.g., video conference platform)
local, local-attendee, google, zoom, phone, phone-incoming, whatsapp, connect, webex, skypeForConsumer, skypeForBusiness, teamsForBusiness, teamsForBusiness2, teamsForExchange, teams2ForExchange, custom, resource, whereby, kmeet, zava, jitsi, nextcloudTalk, openTalk, alfaview List of appointment hosts with basic information
Show child attributes
Show child attributes
Public company information
Show child attributes
Show child attributes
Whether action buttons (reschedule, cancel) are disabled for this appointment
Default time format on the booking and reschedule pages
12, 24 Attendee's resolved language for this booking
Whether to show confetti animation on the confirmation page
Whether to show the withdrawal button ("Widerrufsbutton") on the confirmation page. Off by default; required from 19 June 2026 (§ 356a BGB) for B2C distance contracts with a right of withdrawal.
When the appointment was booked (contract conclusion). The 14-day statutory withdrawal window runs from this timestamp.
Meeting type ID associated with this appointment
Physical location address
Cancellation policy for this appointment
Show child attributes
Show child attributes
Rescheduling policy for this appointment
Show child attributes
Show child attributes
Timezone preset of the meeting type. When enabled, the reschedule page must render slots in this timezone instead of the visitor device timezone, matching the booking page.
Show child attributes
Show child attributes
Meeting link - only provided with proper authentication
ICS calendar file content - only provided with proper authentication
Custom CSS styling for the appointment page
Queue ID - required for rescheduling on round robin meetings
Recurring series ID if this appointment is part of a recurring series
1-based index of this appointment within the recurring series
Recurring series information if this appointment is part of a recurring series
Show child attributes
Show child attributes
Whether this appointment was booked as part of a bundle
Bundle ID if this is a bundle booking
Bundle items if this is a bundle booking
Show child attributes
Show child attributes
curl --request GET \
--url https://api.example.com/v4/appointment/public/{appointmentId}import requests
url = "https://api.example.com/v4/appointment/public/{appointmentId}"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v4/appointment/public/{appointmentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v4/appointment/public/{appointmentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v4/appointment/public/{appointmentId}"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v4/appointment/public/{appointmentId}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v4/appointment/public/{appointmentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"id": "<string>",
"meetingInfo": {
"name": "<string>",
"description": "<string>",
"enableRedirect": true,
"redirect": "<string>",
"passEventDetailsToRedirect": true,
"duration": 123,
"channel": "local",
"customChannelName": "<string>",
"customChannelLink": "<string>",
"connectChannelName": "<string>",
"groupBooking": true,
"showAvailableSlots": true,
"enrichInvitee": true,
"autoCreateSpace": true,
"spaceAutoInvite": true,
"confirmationButton": {
"useConfirmationButton": true,
"text": "<string>",
"color": "<string>",
"link": "<string>"
},
"bufferBefore": 123,
"bufferAfter": 123,
"bufferMustStayWithinWorkingHours": true,
"rollingSlots": true,
"nameLocalised": {
"en": "<string>",
"de": "<string>",
"fr": "<string>",
"es": "<string>",
"no": "<string>",
"it": "<string>",
"nl": "<string>",
"da": "<string>",
"pl": "<string>",
"se": "<string>",
"tr": "<string>"
},
"descriptionLocalised": {
"en": "<string>",
"de": "<string>",
"fr": "<string>",
"es": "<string>",
"no": "<string>",
"it": "<string>",
"nl": "<string>",
"da": "<string>",
"pl": "<string>",
"se": "<string>",
"tr": "<string>"
},
"spacePresetId": {},
"color": {}
},
"online": true,
"start": "<string>",
"end": "<string>",
"isCancelled": true,
"channel": "local",
"hosts": {
"id": "<string>",
"firstname": "<string>",
"lastname": "<string>",
"emailVerified": true,
"picture": "<string>"
},
"company": {
"id": "<string>",
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"tier": "basic",
"primaryColor": "<string>",
"useBrandStyling": true,
"hideMeetergoBranding": true,
"enforceBusinessCardTheme": true,
"showDataPolicyLink": true,
"hideDataPolicyCheckbox": true,
"enableWithdrawalFunction": true,
"dataPolicyLink": "<string>",
"imprintLink": "<string>",
"deleted": true,
"useFormalBookingLanguage": true,
"enableCustomLegalText": true,
"enableCookieBanner": true,
"customLegalText": "<string>",
"customBookingCSS": "<string>",
"featureAccess": {
"polls": true,
"advancedMeetingTypeSettings": true,
"workflows": true,
"maxWorkflows": 123,
"meetingTypeCommunications": true,
"multiHostBooking": true,
"groupBooking": true,
"enrichInvitee": true,
"autoCreateSpace": true,
"zapier": true,
"personalizedBranding": true,
"visualBranding": true,
"crmIntegration": true,
"cmpIntegration": true,
"routingForms": true,
"basicForms": true,
"selectionPages": true,
"dataFields": true,
"roundRobin": true,
"accountOwnerMatching": true,
"handoff": true,
"reschedule": true,
"notifications": true,
"workspaces": true,
"api": true,
"showcaseHubs": true,
"meetergoConnect": true,
"connectMaxParticipants": 123,
"connectMaxCallMinutes": 123,
"connectRecording": true,
"connectBreakouts": true,
"connectWebinars": true,
"webhooks": true,
"wallets": true,
"dealSpace": true,
"funnel": true,
"unlimitedMeetingTypes": true,
"salesforceIntegration": true,
"salesforceStudioMapping": true,
"salesforceRouting": true,
"maximumCalendars": 123,
"disableIntercom": true,
"supportChat": true,
"evalancheIntegration": true,
"analytics": true,
"bookingFunnel": true,
"funnelProgressAndInfobox": true,
"contactsBeta": true,
"paypalIntegration": true,
"stripeIntegration": true,
"mollieIntegration": true,
"meetingTypeTemplates": true,
"nextBeta": true,
"video": true,
"emailLayout": true,
"reviews": true,
"brevoIntegration": true,
"getResponseIntegration": true,
"customDomain": true,
"maxCustomDomains": 123,
"maxViewers": 123,
"apiPlatform": true,
"slackIntegration": true,
"calgent": true,
"miraPipelineAutopilot": true,
"fileUploads": true,
"knowledgePageLimit": 123,
"storageQuotaMB": 123,
"recordingRetentionDays": 123,
"multiBooking": true,
"bundles": true,
"maxCrmDeals": 123,
"maxShowcaseHubs": 123,
"maxDealSpaces": 123,
"waitlist": true,
"notetaker": true,
"notetakerRecording": true,
"maxNotetakerRecapsPerMonth": 123,
"maxLinkedInLookupsPerMonth": 123,
"quickMail": true,
"enrichDealSpaceCompany": true,
"whatsappAddon": true,
"conversionWidgetNativeScheduling": true,
"instagramDms": true,
"bookingCoupons": true,
"crmEmailSync": true,
"websiteChat": true,
"emailChannel": true,
"teamChat": true,
"aiPhoneAssistant": true,
"aiPhoneAssistantAdvanced": true,
"bookingLocations": true,
"bookingBlocks": true,
"invoicing": true,
"purchaseDocuments": true,
"hostedEvents": true,
"hostedEventTicketing": true,
"paymentLinks": true,
"feedbackLoop": true,
"newsletter": true,
"maxFormSubmissionsPerMonth": 123,
"maxSignatureRequestsPerMonth": 123,
"advancedSignatures": true,
"maxAdvancedSignatureRequestsPerMonth": 123,
"maxInvoicesPerMonth": 123,
"whatsappAiAgent": true,
"customSmtp": true,
"csvExport": true
},
"language": "<string>",
"googleAnalyticsMeasurementId": "<string>",
"metaPixelId": "<string>",
"tiktokPixelId": "<string>",
"gtmContainerId": "<string>",
"gtmServerContainerUrl": "<string>",
"matomoUrl": "<string>",
"matomoSiteId": "<string>",
"logo": "<string>",
"businessCardTheme": {
"preset": "<string>",
"accent": "<string>",
"background": {
"type": "solid",
"value": "<string>"
},
"font": "sans",
"buttonShape": "sharp"
},
"allowedLanguages": [
"<string>"
],
"usercentricsSettingsId": "<string>",
"usercentricsConfig": {}
},
"disableActionButtons": true,
"timeFormat": "12",
"language": "<string>",
"showConfetti": true,
"enableWithdrawalButton": true,
"createdAt": "<string>",
"meetingTypeId": "<string>",
"location": "<string>",
"cancellationPolicy": {
"enable": true,
"mode": "disabled",
"duration": {}
},
"reschedulingPolicy": {
"enable": true,
"mode": "disabled",
"duration": {}
},
"timezonePreset": {
"enable": true,
"timezonePreset": "<string>"
},
"meetingLink": "<string>",
"ics": "<string>",
"customCss": "<string>",
"queueId": "<string>",
"recurringSeriesId": "<string>",
"occurrenceNumber": 123,
"recurringSeries": {
"id": "<string>",
"mode": "recurring",
"totalOccurrences": 123,
"appointments": [
{
"id": "<string>",
"start": "<string>",
"end": "<string>",
"isCancelled": true,
"occurrenceNumber": 123,
"secret": "<string>"
}
],
"frequency": "weekly"
},
"isBundleBooking": true,
"bundleId": "<string>",
"bundleItems": [
{
"meetingTypeId": "<string>",
"meetingTypeName": "<string>",
"duration": 123,
"startTime": "<string>",
"endTime": "<string>",
"sortOrder": 123,
"hosts": [
{
"id": "<string>",
"firstname": "<string>",
"lastname": "<string>",
"emailVerified": true,
"picture": "<string>"
}
],
"price": 123
}
]
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}