Check Room Reservations for Time Overlaps Automatically
Overlapping room reservations are detected automatically: Booking data is received via webhook, checked for time conflicts within the same room, and a clear conflict list is returned. Invalid entries are explicitly rejected. This is ideal for organizations that manage room bookings digitally and want to prevent scheduling conflicts. The structured result can be used directly in downstream processes.
Organizations, companies, or teams that regularly book rooms digitally and wish to avoid scheduling overlaps will benefit from this workflow. Booking data—including fields like id, room, start, and end—can be submitted as JSON through a POST webhook. The workflow automatically checks for time conflicts in bookings for the same room and generates a structured list of all detected conflicts. Invalid or incomplete entries are met with clear error messages. This solution is especially useful for internal booking systems, calendar integrations, or as a preliminary stage for notifications. Webhook authentication must be enabled separately in n8n to prevent unauthorized access. Data processing and storage take place within n8n; data protection and retention policies should be configured accordingly. The workflow is flexible and can be adapted for additional fields or notifications.
AI-generated image
Installation
1. Import the workflow into n8n.
2. Select the Webhook node and copy the test webhook URL.
3. Set up webhook authentication in n8n (recommended).
4. Start the test listener in n8n.
5. Send a sample POST request with Content-Type application/json to the test URL (see usage example).
6. Check the result and activate/publish the workflow upon success.
7. Use the production URL from the Webhook node and manage access rights accordingly.
Usage
Example of a successful POST request:
```json
{
"bookings": [
{"id": "A", "room": "101", "start": "2024-06-01T09:00:00Z", "end": "2024-06-01T10:00:00Z"},
{"id": "B", "room": "101", "start": "2024-06-01T09:30:00Z", "end": "2024-06-01T11:00:00Z"}
]
}
```
Expected response:
```json
{
"status": "conflicts",
"conflicts": [
{"room": "101", "firstId": "A", "secondId": "B"}
],
"byRoom": {"101": ["A", "B"]},
"total": 2
}
```
HTTP status: 200
Example of invalid input (empty bookings array):
```json
{
"bookings": []
}
```
Response:
```json
{
"status": "error",
"message": "bookings muss ein nicht-leeres Array sein."
}
```
HTTP status: 200
Notes:
- The fields id, room, start, end are mandatory for each booking.
- Time values must be ISO-8601 strings.
- Webhook authentication must be enabled separately in n8n.
- Inputs and results are stored in n8n; please observe data protection regulations.
Required connections and APIs
API connections
No saved API credentials were detected in the workflow JSON. Still check webhooks, target systems, credentials, and data protection before activation.
Nodes
WebhookCodeRespond to Webhook
Isolated functional test passed
Optional isolated functional test
The isolated data flow was tested without external services or credentials.
✓ Standard case with complete dataChecks the complete standard flow with valid sample data.Isolated functional test passed✓ Variation or boundary caseChecks a valid variation or an important boundary case.Isolated functional test passed✓ Additional processing ruleChecks this workflow's additional business processing rule.Isolated functional test passed✓ Invalid or incomplete inputChecks that invalid or incomplete data is rejected safely.Isolated functional test passed✓ Empty inputChecks that an empty request receives a controlled response.Isolated functional test passed