# Product calendar logs

Logs of each time a unit's iCal feed is read by an external platform

Endpoint: `https://api.bookingmood.com/v1/product_calendar_logs`, supporting `GET`. Authenticate with the header `Authorization: Bearer YOUR_API_KEY` (see [authentication](https://www.bookingmood.com/de-DE/api-reference/authentication.md)).

## The product calendar log object

| Attribute | Type | Description |
| --- | --- | --- |
| `id` | `bigint` | Unique identifier. |
| `product_id` | `uuid` | Identifier of the related unit. References [`products.id`](https://www.bookingmood.com/de-DE/api-reference/products.md). |
| `created_at` | `timestamp with time zone` | Creation timestamp. Read-only: set by the database. |
| `params` | `{ include_booking_details: boolean, include_external_events: boolean, include_product_names?: boolean, include_related_products: boolean, include_sub_products: boolean, include_tasks?: boolean, precision?: "hours" \| "days", status: Array<CalendarEventStatus>, type: Array<CalendarEventType> }` | Params of the request. |
| `referrer` | `text` | Referrer of the request. |
| `status` | `ProductCalendarLogStatus` | Result of the request, e.g. `success`. |

```json
{
  "id": 0,
  "product_id": "00000000-0000-0000-0000-000000000000",
  "created_at": "2026-10-30T23:31:32.587Z",
  "params": {},
  "referrer": "",
  "status": "success"
}
```

### Types

```typescript
type CalendarEventStatus = "CONFIRMED" | "TENTATIVE" | "CANCELLED";

type CalendarEventType = "booking" | "blocked-period" | "note";

type ProductCalendarLogStatus = "success" | "error";
```

### Related resources

Embed related resources with the [`select` parameter](https://www.bookingmood.com/de-DE/api-reference/selecting.md), e.g. `select=*,products(*)`. Resources related through more than one column need the column as a hint, like `table!column(*)`.

| Embed | Type | Description |
| --- | --- | --- |
| `products(*)` | `object \| null` | The [product](https://www.bookingmood.com/de-DE/api-reference/products.md) referenced by `product_id`. |

## List product calendar logs

`GET /v1/product_calendar_logs`

Filter on any attribute with `column=operator.value` (see [filtering](https://www.bookingmood.com/de-DE/api-reference/filtering.md)). Choose columns and embed related resources with `select` (see [selecting](https://www.bookingmood.com/de-DE/api-reference/selecting.md)), and sort and paginate with `order`, `limit` and `offset` (see [sorting and pagination](https://www.bookingmood.com/de-DE/api-reference/sorting-pagination.md)).

```bash
curl -X GET "https://api.bookingmood.com/v1/product_calendar_logs?select=*&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Responses:

- `200`: A list of product calendar logs with the selected columns. `206` when the list is a partial range.
- `400`: The request is malformed, for example an unknown column or an invalid filter.
- `401`: The API key is missing or invalid.

Errors have a JSON body with a `code`, `message`, `details` and `hint`. See the [introduction](https://www.bookingmood.com/de-DE/api-reference.md) for more on errors. The full API is described by the OpenAPI spec at https://api.bookingmood.com/v1/openapi.json.
