Skip to main content
PUT
/
scheduled-events
/
{uuid}
/
handover
Handover a scheduled event
curl --request PUT \
  --url https://api.zeeg.me/v2/scheduled-events/{uuid}/handover \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "newHostEmail": "marco.rossi@horizondigital.de",
  "requireHostAvailability": false,
  "fallbackToReschedule": true
}
'
import requests

url = "https://api.zeeg.me/v2/scheduled-events/{uuid}/handover"

payload = {
"newHostEmail": "marco.rossi@horizondigital.de",
"requireHostAvailability": False,
"fallbackToReschedule": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
newHostEmail: 'marco.rossi@horizondigital.de',
requireHostAvailability: false,
fallbackToReschedule: true
})
};

fetch('https://api.zeeg.me/v2/scheduled-events/{uuid}/handover', 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/{uuid}/handover",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'newHostEmail' => 'marco.rossi@horizondigital.de',
'requireHostAvailability' => false,
'fallbackToReschedule' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.zeeg.me/v2/scheduled-events/{uuid}/handover"

payload := strings.NewReader("{\n \"newHostEmail\": \"marco.rossi@horizondigital.de\",\n \"requireHostAvailability\": false,\n \"fallbackToReschedule\": true\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.zeeg.me/v2/scheduled-events/{uuid}/handover")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"newHostEmail\": \"marco.rossi@horizondigital.de\",\n \"requireHostAvailability\": false,\n \"fallbackToReschedule\": true\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.zeeg.me/v2/scheduled-events/{uuid}/handover")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"newHostEmail\": \"marco.rossi@horizondigital.de\",\n \"requireHostAvailability\": false,\n \"fallbackToReschedule\": true\n}"

response = http.request(request)
puts response.read_body
{
  "resource": {
    "uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6",
    "uuid": "zg-O69bac566950c6",
    "title": "30-Minute Discovery Call",
    "type": "ROUND_ROBIN",
    "startTime": "2026-04-15T09:00:00.000000Z",
    "endTime": "2026-04-15T09:30:00.000000Z",
    "duration": 30,
    "status": "active",
    "eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
    "location": null,
    "maxActiveInvitees": 1,
    "activeInviteesCount": 1,
    "invitees": [
      {
        "uuid": "zg-O69bad4047abf0",
        "salutation": "Ms.",
        "fullName": "Sophie Laurent",
        "email": "sophie.laurent@northwind.io",
        "guests": [],
        "timeZone": "Europe/Paris",
        "cancellation": {
          "cancelledAt": null,
          "cancelledBy": null,
          "cancellerType": null,
          "cancellationReason": null
        },
        "payment": null,
        "scheduledAt": "2026-04-10T08:30:00.000000Z",
        "utm": {
          "utm_campaign": "spring_launch",
          "utm_source": "linkedin",
          "utm_medium": "social",
          "utm_content": null,
          "utm_term": null
        },
        "customQueryParams": []
      }
    ],
    "guests": [],
    "hosts": [
      {
        "firstName": "Marco",
        "lastName": "Rossi",
        "email": "marco.rossi@horizondigital.de",
        "slug": "marco-rossi",
        "url": "https://zeeg.me/marco-rossi",
        "avatarUrl": null
      }
    ],
    "createdAt": "2026-04-10T08:30:00.000000Z",
    "updatedAt": "2026-04-15T10:05:00.000000Z",
    "currentTime": "2026-04-15T10:05:00+00:00"
  }
}

Authorizations

Authorization
string
header
required

Path Parameters

uuid
string<uuid>
required

UUID of a specific scheduled event (zg-XXX format)

Example:

"zg-O69bac566950c6"

Body

application/json
newHostEmail
string<email>

The email of the new host for the event. When not provided, the system will automatically select a new host if available.

Example:

"marco.rossi@horizondigital.de"

requireHostAvailability
boolean
default:false

A flag to check the availability of the host.

fallbackToReschedule
boolean
default:true

A flag indicating whether the event should be rescheduled if the current settings are not supported.

Response

OK

resource
object

A scheduled event resource. This is the single canonical shape returned by all scheduled-event endpoints and embedded in the AI agent call webhook payload.

Last modified on April 29, 2026