Calendar Webhook Migration
Introducing a new lightweight calendar webhook.
Why the change?
Guesty’s calendar functionality has grown considerably in terms of both functionality and complexity since its introduction. From reporting on basic pricing and functionality, it now provides a whole range of data, including block types and their details, pricing, and availability rules. Given the daily frequency of calendar updates, it is necessary to revise how Guesty communicates these changes.
What is changing?
Starting from 1 September 2025, Guesty will begin the process of deprecating the existing listing.calendar.updated webhook event in favor of a new lightweight one, calendar.updated.v2. It will notify you of changes by sending object IDs (listing and account IDs), the currency, and the date range. You will need to retrieve the full data from our Open API and compare it with your cached version to spot the changes. Here is an example of the new webhook payload:
{
"listingId": "string",
"accountId": "string",
"currency": "string",
"dateRange": {
"start": "YYYY-MM-DD",
"end": "YYYY-MM-DD"
}
}We have also released a new optimized GET calendar endpoint that accepts the same parameters as the legacy endpoint, with an additional view parameter that can be set to either compact or full. All default values remain unchanged. The only difference is in the response structure:
- The compact view provides minimal data, excluding the
blockIdsarray and detailedblocksobjects for improved performance. - The full view offers complete data, including the
blockIdsarray for each calendar day and the detailed 'blocks' objects.
How to migrate
Follow the steps below to migrate your existing subscriptions.
- Retrieve a list of all your webhooks.
- Identify the ones containing the event
listing.calendar.updated - Update each relevant Webhook’s events array by:
- Removing
listing.calendar.updated - Adding
calendar.updated.v2
- Removing
- Ensure that you introduce the logic you require on your end to retrieve the updated calendar data as needed.
- Decide whether you want to adopt the new optimized endpoint or stay with the original.
Example
Subscription before the migration
curl --location 'https://open-api.guesty.com/v1/webhooks' \
--header 'accept: application/json' \
--header 'authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://12345.m.pipedream.net",
"events": [
"listing.calendar.updated"
]
}'
Subscription after the migration
curl --location 'https://open-api.guesty.com/v1/webhooks' \
--header 'accept: application/json' \
--header 'authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://12345.m.pipedream.net",
"events": [
"calendar.updated.v2"
]
}'
Where to get help?
We consider updating Webhook subscriptions to be a relatively straightforward task. You will need a Web developer or someone familiar with RESTful APIs to make this change. If you don’t have such expertise on hand, Guesty can assist you .
Updated 3 months ago