curl --request GET \
--url https://api.marzipan.co/v1/events/{event}/occurrences \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.marzipan.co/v1/events/{event}/occurrences"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.marzipan.co/v1/events/{event}/occurrences', 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.marzipan.co/v1/events/{event}/occurrences",
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.marzipan.co/v1/events/{event}/occurrences"
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.marzipan.co/v1/events/{event}/occurrences")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.marzipan.co/v1/events/{event}/occurrences")
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{
"data": [
{
"id": "9a2b3c4d-5e6f-4071-8a9b-0c1d2e3f4a5b",
"date": "2026-08-15",
"formattedDate": "Aug 15, 2026",
"startTime": "19:00",
"endTime": "22:00",
"status": "active",
"location": "The Grand Hall",
"maxTickets": 100,
"ticketsSold": 58,
"ticketsAvailable": 42,
"isSoldOut": false
}
],
"total": 1
}{
"message": "No query results for model [Event]."
}List Event Occurrences
List the occurrences of a recurring event, optionally filtered by date range and status. When no start date or status filter is supplied, only upcoming occurrences are returned. If the event is not recurring, an empty list is returned with an explanatory message. An event can be confined to one or more date ranges, and this endpoint reads the materialised occurrences, so no dates are returned for the gaps between them. Treat the returned dates as authoritative rather than re-deriving them from recurrenceType and a start date.
curl --request GET \
--url https://api.marzipan.co/v1/events/{event}/occurrences \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.marzipan.co/v1/events/{event}/occurrences"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.marzipan.co/v1/events/{event}/occurrences', 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.marzipan.co/v1/events/{event}/occurrences",
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.marzipan.co/v1/events/{event}/occurrences"
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.marzipan.co/v1/events/{event}/occurrences")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.marzipan.co/v1/events/{event}/occurrences")
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{
"data": [
{
"id": "9a2b3c4d-5e6f-4071-8a9b-0c1d2e3f4a5b",
"date": "2026-08-15",
"formattedDate": "Aug 15, 2026",
"startTime": "19:00",
"endTime": "22:00",
"status": "active",
"location": "The Grand Hall",
"maxTickets": 100,
"ticketsSold": 58,
"ticketsAvailable": 42,
"isSoldOut": false
}
],
"total": 1
}{
"message": "No query results for model [Event]."
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your API token.
Path Parameters
The unique identifier of the event.
Query Parameters
Only include occurrences on or after this date (YYYY-MM-DD).
Only include occurrences on or before this date (YYYY-MM-DD).
Filter occurrences by status.
active, cancelled, postponed 
