> For the complete documentation index, see [llms.txt](https://mobile-calendar.gitbook.io/v1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mobile-calendar.gitbook.io/v1/webhooks/webhook-events.md).

# Webhook events

## Overview

This document provides a complete reference for all **Mobile Calendar Webhook Events**.\
Each event includes its description and a sample JSON payload. Webhooks deliver only the essential data — for full details, follow the `links.self` URL to fetch the full entity from the API.

***

## Reservation Events

### reservation.created

Triggered when a new reservation is created.

{% code title="reservation.created (sample payload)" %}

```json
{
  "webhookId": "9b9b499e-095c-4955-8dd0-cc5d84e50764",
  "eventType": "reservation.created",
  "timestamp": "2025-10-10T15:39:07+02:00",
  "data": {
    "type": "SINGLE",
    "reservationId": 478652,
    "roomId": 28568,
    "arrival": "2025-10-14",
    "departure": "2025-10-16",
    "clientId": 362792,
    "triggeredBy": "MANUAL",
    "sourceId": 0,
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/478652"
    }
  }
}
```

{% endcode %}

{% code title="reservation.created (sample payload - GROUP RESERVATION)" %}

```json
{
  "webhookId": "9b9b499e-095c-4955-8dd0-cc5d84e50764",
  "eventType": "reservation.created",
  "timestamp": "2025-10-10T15:39:07+02:00",
  "data": {
    "type": "GROUP",
    "reservationId": [478652, 478653],
    "roomId": [28568, 28569],
    "arrival": "2025-10-14",
    "departure": "2025-10-16",
    "clientId": 362792,
    "triggeredBy": "MANUAL",
    "sourceId": 0,
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/478652"
    }
  }
}
```

{% endcode %}

{% hint style="warning" %}
When `type = GROUP`, the fields `reservationId` and `roomId` are arrays instead of single integer values.

Use the provided `links.self` to fetch the full reservation data.
{% endhint %}

### reservation.updated

Triggered when reservation details are changed.

{% code title="reservation.updated (sample payload)" %}

```json
{
  "webhookId": "a61f7f81-abc1-42b9-bf13-cf894ccbf93b",
  "eventType": "reservation.updated",
  "timestamp": "2025-10-10T15:42:11+02:00",
  "data": {
    "reservationId": 478652,
    "roomId": 28568,
    "clientId": 362792,
    "arrival": "2025-10-14",
    "departure": "2025-10-16",
    "changedFields": ["arrival", "departure", "price"],
    "triggeredBy": "API",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/478652"
    }
  }
}
```

{% endcode %}

### reservation.deleted

Triggered when a reservation is deleted.

{% code title="reservation.deleted (sample payload)" %}

```json
{
  "webhookId": "b9c1993a-8f3c-4673-9009-993b454d2dbf",
  "eventType": "reservation.deleted",
  "timestamp": "2025-10-10T15:50:44+02:00",
  "data": {
    "reservationId": 478652,
    "roomId": 28568,
    "clientId": 362792,
    "arrival": "2025-10-14",
    "departure": "2025-10-16",
    "triggeredBy": "CHANNEL_MANAGER",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/478652?"
    }
  }
}
```

{% endcode %}

### reservation.restored

Triggered when a deleted reservation is restored.

{% code title="reservation.restored (sample payload)" %}

```json
{
  "webhookId": "ffb3e116-9d66-48d9-a0a5-24f35457d9f1",
  "eventType": "reservation.restored",
  "timestamp": "2025-10-10T15:58:22+02:00",
  "data": {
    "reservationId": 478652,
    "roomId": 28568,
    "clientId": 362792,
    "arrival": "2025-10-14",
    "departure": "2025-10-16",
    "triggeredBy": "API",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/478652"
    }
  }
}
```

{% endcode %}

***

## Lock Events

### lock.created

Triggered when a new lock device is created.

{% code title="lock.created (sample payload)" %}

```json
{
  "webhookId": "33a9a742-30c2-4c6a-935e-32b3f77f6f13",
  "eventType": "lock.created",
  "timestamp": "2025-10-10T16:02:00+02:00",
  "data": {
    "type": "LOCK",
    "lockId": 1205,
    "roomId": 28568,
    "from": "2024-01-01",
    "to": "2024-01-05",
    "createdBy": "API",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/1205"
    }
  }
}
```

{% endcode %}

### lock.updated

Triggered when lock data changes.

{% code title="lock.updated (sample payload)" %}

```json
{
  "webhookId": "29b7c7ab-1df8-48d3-928a-38215df2b773",
  "eventType": "lock.updated",
  "timestamp": "2025-10-10T16:03:22+02:00",
  "data": {
    "type": "LOCK",
    "lockId": 1205,
    "roomId": 28568,
    "from": "2024-01-01",
    "to": "2024-01-05",
    "changedFields": ["additionalInfo"],
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/1205"
    }
  }
}
```

{% endcode %}

### lock.deleted

Triggered when a lock is deleted.

{% code title="lock.deleted (sample payload)" %}

```json
{
  "webhookId": "5b48a012-b48c-43aa-a9db-9b9c672c9f83",
  "eventType": "lock.deleted",
  "timestamp": "2025-10-10T16:10:18+02:00",
  "data": {
    "type": "LOCK",
    "lockId": 1205,
    "roomId": 28568,
    "from": "2024-01-01",
    "to": "2024-01-05",
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/reservations/1205"
    }
  }
}
```

{% endcode %}

***

## Client Events

### client.created

Triggered when a new client is created.

{% code title="client.created (sample payload)" %}

```json
{
  "webhookId": "92dc5ee2-6e43-44ad-b69e-32b82a5e3df3",
  "eventType": "client.created",
  "timestamp": "2025-10-10T16:20:33+02:00",
  "data": {
    "clientId": 362792,
    "triggeredBy": "API",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/clients/362792"
    }
  }
}
```

{% endcode %}

### client.updated

Triggered when client details are changed.

{% code title="client.updated (sample payload)" %}

```json
{
  "webhookId": "c84a1d11-18a8-4210-93ef-b26b8a9f3ec9",
  "eventType": "client.updated",
  "timestamp": "2025-10-10T16:25:00+02:00",
  "data": {
    "clientId": 362792,
    "changedFields": ["email", "phone"],
    "triggeredBy": "API",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/clients/362792"
    }
  }
}
```

{% endcode %}

### client.deleted

Triggered when a client is deleted.

{% code title="client.deleted (sample payload)" %}

```html
{
  "webhookId": "9d21f251-cde4-4f03-bb35-15cfb87c4ee9",
  "eventType": "client.deleted",
  "timestamp": "2025-10-10T16:30:00+02:00",
  "data": {
    "clientId": 362792,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/clients/362792"
    }
  }
}
```

{% endcode %}

***

## Room Events

### room.created

Triggered when a new room is added.

{% code title="room.created (sample payload)" %}

```json
{
  "webhookId": "7b3c41d3-7eaf-4f32-90f5-939c17c86b8c",
  "eventType": "room.created",
  "timestamp": "2025-10-10T16:35:00+02:00",
  "data": {
    "roomId": 28568,
    "roomTypeId": 102,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/rooms/28568"
    }
  }
}
```

{% endcode %}

### room.updated

Triggered when a new room is updated.

{% code title="room.updated (sample payload)" %}

```json
{
  "webhookId": "7b3c41d3-7eaf-4f32-90f5-939c17c86b8c",
  "eventType": "room.created",
  "timestamp": "2025-10-10T16:35:00+02:00",
  "data": {
    "roomId": 28568,
    "roomTypeId": 102,
    "changedFields": ["singleBed", "maxPerson"],
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/rooms/28568"
    }
  }
}
```

{% endcode %}

### room.deleted

Triggered when a new room is deleted.

{% code title="room.deleted (sample payload)" %}

```json
{
  "webhookId": "7b3c41d3-7eaf-4f32-90f5-939c17c86b8c",
  "eventType": "room.created",
  "timestamp": "2025-10-10T16:35:00+02:00",
  "data": {
    "roomId": 28568,
    "roomTypeId": 102,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/rooms/28568"
    }
  }
}
```

{% endcode %}

***

## Message Events

### message.sent

Triggered when a message (email, SMS, chat) is sent.

{% code title="message.sent (sample payload)" %}

```json
{
  "webhookId": "b0d093f8-217c-41b1-bb12-dbe3eae2bfc6",
  "eventType": "message.sent",
  "timestamp": "2025-10-10T16:50:00+02:00",
  "data": {
    "messageId": 98123,
    "reservationId": 478652,
    "method": "EMAIL",
    "triggeredBy": "SYSTEM",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/messages/98123"
    }
  }
}
```

{% endcode %}

***

## Availability Events

### availability.changed

Triggered when availability for rooms changes.

{% code title="availability.changed (sample payload)" %}

```json
{
  "webhookId": "f55b4a4b-548a-4c31-bbd6-f5d7e894312f",
  "eventType": "availability.changed",
  "timestamp": "2025-10-10T17:00:00+02:00",
  "data": {
    "roomId": [28568, 28569],
    "from": "2025-10-14",
    "to": "2025-10-20",
    "triggeredBy": "CHANNEL_MANAGER",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/availability?roomId[]=28568&roomId[]=28569&from=2025-10-14&to=2025-10-20"
    }
  }
}
```

{% endcode %}

***

## Invoice Events

### invoice.created

Triggered when an invoice is created.

{% code title="invoice.created (sample payload)" %}

```json
{
  "webhookId": "a90e2a2d-782f-4d5d-8b1d-323bc5213123",
  "eventType": "invoice.created",
  "timestamp": "2025-10-10T17:10:00+02:00",
  "data": {
    "invoiceId": 6001,
    "reservationId": 478652,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/invoices/6001"
    }
  }
}
```

{% endcode %}

### invoice.updated

Triggered when an invoice is updated.

{% code title="invoice.updated (sample payload)" %}

```json
{
  "webhookId": "a90e2a2d-782f-4d5d-8b1d-323bc5213123",
  "eventType": "invoice.updated",
  "timestamp": "2025-10-10T17:10:00+02:00",
  "data": {
    "invoiceId": 6001,
    "reservationId": 478652,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/invoices/6001"
    }
  }
}
```

{% endcode %}

### invoice.deleted

Triggered when an invoice is deleted.

{% code title="invoice.deleted (sample payload)" %}

```json
{
  "webhookId": "a90e2a2d-782f-4d5d-8b1d-323bc5213123",
  "eventType": "invoice.deleted",
  "timestamp": "2025-10-10T17:10:00+02:00",
  "data": {
    "invoiceId": 6001,
    "reservationId": 478652,
    "triggeredBy": "MANUAL",
    "links": {
      "self": "https://apisandbox.mobile-calendar.com/v1/invoices/6001"
    }
  }
}
```

{% endcode %}

***

## Summary

Each webhook payload includes:

* A **unique webhookId**
* The **eventType**
* A **timestamp** (ISO8601 format)
* A **data** object with key entity identifiers
* A **links.self** URL for full data retrieval
