List Scheduled Events
Retrieve a paginated list of scheduled events in your Zeeg workspace, with filters for status, date range, host, team, and invitee.
curl --request GET \
--url https://api.zeeg.me/v2/scheduled-events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zeeg.me/v2/scheduled-events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zeeg.me/v2/scheduled-events', 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.zeeg.me/v2/scheduled-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.zeeg.me/v2/scheduled-events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.zeeg.me/v2/scheduled-events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/scheduled-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"collection": [
{
"uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6",
"uuid": "zg-O69bac566950c6",
"title": "30-Minute Discovery Call",
"type": "ONE_ON_ONE",
"startTime": "2026-04-15T09:00:00.000000Z",
"endTime": "2026-04-15T09:30:00.000000Z",
"duration": 30,
"status": "confirmed",
"eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
"location": {
"type": "Google Meet",
"joinUrl": "https://meet.google.com/abc-defg-hij"
},
"maxActiveInvitees": 1,
"activeInviteesCount": 1,
"invitees": [
{
"uuid": "zg-O69bad4047abf0",
"salutation": "Ms.",
"fullName": "Sophie Laurent",
"email": "sophie.laurent@northwind.io",
"guests": [
"alex.chen@northwind.io"
],
"timeZone": "Europe/Paris",
"cancellation": {
"cancelledAt": null,
"cancelledBy": null,
"cancellerType": null,
"cancellationReason": null
},
"payment": null,
"questions": [
{
"answer": "Product demo and pricing options",
"answer_type": "STRING",
"question": "What would you like to discuss?"
}
],
"scheduledAt": "2026-04-10T08:30:00.000000Z",
"utm": {
"utm_campaign": "spring_launch",
"utm_source": "linkedin",
"utm_medium": "social",
"utm_content": null,
"utm_term": null
}
}
],
"guests": [
"alex.chen@northwind.io"
],
"hosts": [
{
"firstName": "Lena",
"lastName": "Meier",
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"url": "https://zeeg.me/lena-meier",
"avatarUrl": null
}
],
"createdAt": "2026-04-10T08:30:00.000000Z",
"updatedAt": "2026-04-10T08:30:02.000000Z",
"currentTime": "2026-03-23T10:00:00.000000Z"
},
{
"uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bad4047abf0",
"uuid": "zg-O69bad4047abf0",
"title": "30-Minute Discovery Call",
"type": "ONE_ON_ONE",
"startTime": "2026-04-18T14:00:00.000000Z",
"endTime": "2026-04-18T14:30:00.000000Z",
"duration": 30,
"status": "cancelled",
"eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
"location": {
"type": "Google Meet",
"joinUrl": "https://meet.google.com/klm-nopq-rst"
},
"maxActiveInvitees": 1,
"activeInviteesCount": 0,
"invitees": [
{
"uuid": "zg-O69bac566950c6",
"salutation": null,
"fullName": "Marco Rossi",
"email": "marco.rossi@horizondigital.de",
"guests": null,
"timeZone": "Europe/Berlin",
"cancellation": {
"cancelledAt": "2026-04-17T10:00:00.000000Z",
"cancelledBy": "marco.rossi@horizondigital.de",
"cancellerType": "host",
"cancellationReason": "Schedule conflict with another commitment."
},
"payment": null,
"questions": null,
"scheduledAt": "2026-04-12T11:00:00.000000Z",
"utm": {
"utm_campaign": null,
"utm_source": null,
"utm_medium": null,
"utm_content": null,
"utm_term": null
}
}
],
"guests": null,
"hosts": [
{
"firstName": "Lena",
"lastName": "Meier",
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"url": "https://zeeg.me/lena-meier",
"avatarUrl": null
}
],
"createdAt": "2026-04-12T11:00:00.000000Z",
"updatedAt": "2026-04-17T10:00:00.000000Z",
"currentTime": "2026-03-23T10:00:00.000000Z"
}
],
"pagination": {
"total": 2,
"count": 2,
"totalPages": 1,
"previousPage": null,
"currentPage": 1,
"nextPage": null
}
}{
"message": "Unauthenticated."
}{
"success": false,
"message": "You cannot access this resource.",
"status": 403
}{
"message": "The selected status is invalid.",
"errors": {
"status": [
"The selected status is invalid."
]
}
}Authorizations
Query Parameters
Order results based on the startTime.
asc, desc Limit the number of returned results per page.
1 <= x <= 100Filter based on event status. Possible values are: active, cancelled. Omit for all events.
confirmed, cancelled Filter for events starting after the specified time.
"2026-04-01T00:00:00.000000Z"
Filter for events starting before the specified time.
"2026-04-30T23:59:59.000000Z"
Filters results based on the scope. Currently only 'all' is supported, returning all events of the whole organization. More options coming soon.
all Filter for events hosted by a specific user in your organization based on the user's slug.
"lena-meier"
Filter for events hosted by a specific user in your organization based on the user's email address.
"lena.meier@horizondigital.de"
Filter for events of a specific invitee by their email address.
"sophie.laurent@northwind.io"
Filter for events that belong to a specific team in your organization based on the team's slug.
Search through events with a keyword.
Page number for paginated results.
x >= 1Response
OK
Hide child attributes
Hide child attributes
Total number of records.
x >= 0Number of records per page.
x >= 0Total number of pages.
x >= 0Current page number.
x >= 1Link to previous page, or null.
"/v2/scheduled-events?page=1"
Link to next page, or null.
"/v2/scheduled-events?page=3"
Hide child attributes
Hide child attributes
Public API URI of the scheduled event resource.
Zeeg event identifier (zg-XXX format)
"zg-O69bac566950c6"
Title of the scheduled event.
Event type kind (e.g. ONE_ON_ONE, GROUP, ROUND_ROBIN).
ISO 8601 UTC start time of the booked event.
ISO 8601 UTC end time of the booked event.
Event duration in minutes.
Booking status (e.g. confirmed, cancelled).
Public API URI of the event type this booking was made against.
Maximum number of active invitees the event allows.
Current number of active (non-cancelled) invitees.
Invitees booked on the scheduled event.
Hide child attributes
Hide child attributes
Full name of the invitee.
Email address of the invitee.
IANA time zone of the invitee.
ISO 8601 UTC timestamp when the invitee booked.
Zeeg attendee identifier (zg-XXX format)
"zg-O69bac566950c6"
Salutation for the invitee, if collected.
Array of additional emails invited
Cancellation details. All fields are null when the invitee is not cancelled.
Hide child attributes
Hide child attributes
ISO 8601 UTC timestamp when the invitee was cancelled.
Identifier of who cancelled the booking.
Type of canceller (e.g. host, invitee).
Reason given for the cancellation.
Payment details for the booking, or null when no payment applies.
Hide child attributes
Hide child attributes
Payment provider, e.g. stripe or paypal.
pending until the transaction completes.
pending, success UTM tracking parameters captured at booking time.
Custom query parameters captured at booking time.
Reference code for bookings made via the AI agent; null otherwise.
ISO 8601 UTC timestamp when the booking was created.
Array of additional emails invited
Hosts assigned to the scheduled event.
Hide child attributes
Hide child attributes
Host's first name.
Host's email address.
Host's public profile slug.
Host's public profile URL.
Host's last name. Empty string when not set.
URL of the host's avatar image, if set.
ISO 8601 UTC timestamp when the booking was last updated.
Current server time
curl --request GET \
--url https://api.zeeg.me/v2/scheduled-events \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.zeeg.me/v2/scheduled-events"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.zeeg.me/v2/scheduled-events', 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.zeeg.me/v2/scheduled-events",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.zeeg.me/v2/scheduled-events"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.zeeg.me/v2/scheduled-events")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zeeg.me/v2/scheduled-events")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"collection": [
{
"uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6",
"uuid": "zg-O69bac566950c6",
"title": "30-Minute Discovery Call",
"type": "ONE_ON_ONE",
"startTime": "2026-04-15T09:00:00.000000Z",
"endTime": "2026-04-15T09:30:00.000000Z",
"duration": 30,
"status": "confirmed",
"eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
"location": {
"type": "Google Meet",
"joinUrl": "https://meet.google.com/abc-defg-hij"
},
"maxActiveInvitees": 1,
"activeInviteesCount": 1,
"invitees": [
{
"uuid": "zg-O69bad4047abf0",
"salutation": "Ms.",
"fullName": "Sophie Laurent",
"email": "sophie.laurent@northwind.io",
"guests": [
"alex.chen@northwind.io"
],
"timeZone": "Europe/Paris",
"cancellation": {
"cancelledAt": null,
"cancelledBy": null,
"cancellerType": null,
"cancellationReason": null
},
"payment": null,
"questions": [
{
"answer": "Product demo and pricing options",
"answer_type": "STRING",
"question": "What would you like to discuss?"
}
],
"scheduledAt": "2026-04-10T08:30:00.000000Z",
"utm": {
"utm_campaign": "spring_launch",
"utm_source": "linkedin",
"utm_medium": "social",
"utm_content": null,
"utm_term": null
}
}
],
"guests": [
"alex.chen@northwind.io"
],
"hosts": [
{
"firstName": "Lena",
"lastName": "Meier",
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"url": "https://zeeg.me/lena-meier",
"avatarUrl": null
}
],
"createdAt": "2026-04-10T08:30:00.000000Z",
"updatedAt": "2026-04-10T08:30:02.000000Z",
"currentTime": "2026-03-23T10:00:00.000000Z"
},
{
"uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bad4047abf0",
"uuid": "zg-O69bad4047abf0",
"title": "30-Minute Discovery Call",
"type": "ONE_ON_ONE",
"startTime": "2026-04-18T14:00:00.000000Z",
"endTime": "2026-04-18T14:30:00.000000Z",
"duration": 30,
"status": "cancelled",
"eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
"location": {
"type": "Google Meet",
"joinUrl": "https://meet.google.com/klm-nopq-rst"
},
"maxActiveInvitees": 1,
"activeInviteesCount": 0,
"invitees": [
{
"uuid": "zg-O69bac566950c6",
"salutation": null,
"fullName": "Marco Rossi",
"email": "marco.rossi@horizondigital.de",
"guests": null,
"timeZone": "Europe/Berlin",
"cancellation": {
"cancelledAt": "2026-04-17T10:00:00.000000Z",
"cancelledBy": "marco.rossi@horizondigital.de",
"cancellerType": "host",
"cancellationReason": "Schedule conflict with another commitment."
},
"payment": null,
"questions": null,
"scheduledAt": "2026-04-12T11:00:00.000000Z",
"utm": {
"utm_campaign": null,
"utm_source": null,
"utm_medium": null,
"utm_content": null,
"utm_term": null
}
}
],
"guests": null,
"hosts": [
{
"firstName": "Lena",
"lastName": "Meier",
"email": "lena.meier@horizondigital.de",
"slug": "lena-meier",
"url": "https://zeeg.me/lena-meier",
"avatarUrl": null
}
],
"createdAt": "2026-04-12T11:00:00.000000Z",
"updatedAt": "2026-04-17T10:00:00.000000Z",
"currentTime": "2026-03-23T10:00:00.000000Z"
}
],
"pagination": {
"total": 2,
"count": 2,
"totalPages": 1,
"previousPage": null,
"currentPage": 1,
"nextPage": null
}
}{
"message": "Unauthenticated."
}{
"success": false,
"message": "You cannot access this resource.",
"status": 403
}{
"message": "The selected status is invalid.",
"errors": {
"status": [
"The selected status is invalid."
]
}
}