PlanDocket

Events

Business+

Manage events, trade shows, and exhibitions.

Required scopes: events
Access level: GET events:read POST / PUT / PATCH / DELETE events:write About access levels

Endpoints

GET /api/v1/events

List all events

GET /api/v1/events/{id}

Retrieve a single event

POST /api/v1/events

Create a new event

PUT/PATCH /api/v1/events/{id}

Update an event

DELETE /api/v1/events/{id}

Move an event to the trash (restorable by an admin)

Query Parameters

Parameter Description
search Search term to filter results
visible Filter by visibility (0 or 1)
upcoming Only show upcoming events (1)
sort Sort field (title, event_key, date_from, date_to, city)
order Sort direction (ASC or DESC, default: DESC)
include Include related data (opening_hours, participant_count)

Request Schema

Parameter Type Required Description
title string Yes Name of the event
event_key string No Unique identifier for the event: letters, digits, "_" and "-", max. 100 characters (auto-generated if omitted). When it is changed via PUT/PATCH, all references (forms, sections, fields, categories, services, etc.) are switched to the new key. A key that is already taken (also by an event in the trash) returns 422
description string No Event description
date_from string No Start date (ISO 8601 format)
date_to string No End date (ISO 8601 format)
country string No Country code (default: DE)
state string No State or region
city string No City name
application_deadline string No Application deadline (ISO 8601 format)
is_visible boolean No Whether the event is publicly visible
opening_hours array No Array of opening hour entries

Response Schema

Field Type
id integer
event_key string
title string
description string|null
country string
state string|null
city string|null
date_from string|null
date_to string|null
application_deadline string|null
is_visible boolean
image object|null

Code Examples

curl -X GET "https://your-tenant.plandocket.com/api/v1/events" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://your-tenant.plandocket.com';

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $baseUrl . '/api/v1/events',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
    ],
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const apiKey = 'YOUR_API_KEY';
const baseUrl = 'https://your-tenant.plandocket.com';

const response = await fetch(`${baseUrl}/api/v1/events`, {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
  },
});

const data = await response.json();
console.log(data);
import requests

api_key = 'YOUR_API_KEY'
base_url = 'https://your-tenant.plandocket.com'

headers = {
    'Authorization': f'Bearer {api_key}',
}

response = requests.get(f'{base_url}/api/v1/events', headers=headers)
data = response.json()
print(data)

Sample Response

200 OK
{
    "data": [
        {
            "id": 1,
            "event_key": "string",
            "title": "string",
            "description": "string",
            "country": "string",
            "state": "string",
            "city": "string",
            "date_from": "2026-01-15T10:00:00+01:00",
            "date_to": "2026-01-15T10:00:00+01:00",
            "application_deadline": "2026-01-15T10:00:00+01:00",
            "is_visible": true,
            "image": {}
        }
    ],
    "meta": {
        "current_page": 1,
        "per_page": 25,
        "total": 1,
        "total_pages": 1
    }
}