You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add message templates endpoint and document missing endpoints/attributes
Addresses API documentation audit findings:
- New message templates endpoint with full CRUD
- Missing endpoints for bookings, services, resources, and people
- Missing attributes across bookings, services, events, people,
resources, providers, and categories
- Remove stale google_order_number from bookings
- Update service types to include product and gift_card
- Fix nav_order collisions in sidebar
Co-Authored-By: Claude <noreply@anthropic.com>
@@ -85,6 +94,8 @@ See query parameters for filtering the output beyond the default outputs.
85
94
86
95
`GET /bookings/visible` will return all active bookings as well as those declined or cancelled. This is the preferred output if you want to provide a list of all bookings for visual presentation.
87
96
97
+
`GET /bookings/no_status` will return all active bookings with no status set.
98
+
88
99
Response
89
100
90
101
```json
@@ -218,6 +229,10 @@ You should always specify COUNT or UNTIL with RRULE. The max number of occurrenc
218
229
219
230
`GET /bookings/recurring/{collection_id}` will return all occurrences for a collection.
220
231
232
+
### Cancel all occurrences
233
+
234
+
`PUT /bookings/recurring/{collection_id}/cancel` will cancel *all* occurrences for a collection.
235
+
221
236
### Delete all occurrences
222
237
223
238
`DELETE /bookings/recurring/{collection_id}` will delete *all* occurrences for a collection.
<tr><td>confirmation</td><td>created_at (booking creation)</td><td>in 5 minutes</td><td>5 min after booking is created</td></tr>
38
+
<tr><td>reminder</td><td>starts_at (booking start)</td><td>3 hours ago</td><td>3 hours before booking starts</td></tr>
39
+
<tr><td>reminder</td><td>starts_at</td><td>1 day ago</td><td>1 day before booking starts</td></tr>
40
+
<tr><td>follow_up</td><td>ends_at (booking end)</td><td>in 2 hours</td><td>2 hours after booking ends</td></tr>
41
+
<tr><td>follow_up</td><td>ends_at</td><td>in 1 day</td><td>1 day after booking ends</td></tr>
42
+
</table>
43
+
44
+
The expression is parsed relative to the base time. So `3 hours ago` relative to `starts_at` means 3 hours *before* the booking starts, and `in 2 hours` relative to `ends_at` means 2 hours *after* the booking ends.
45
+
46
+
## Listing
47
+
48
+
`GET /message_templates` will return all message templates.
49
+
50
+
Response
51
+
52
+
```json
53
+
[
54
+
{
55
+
"message_template": {
56
+
"id": 1,
57
+
"created_at": "2012-09-20T15:34:16+02:00",
58
+
"updated_at": "2012-09-20T15:34:16+02:00",
59
+
"message_type": "confirmation",
60
+
"delivery_type": "email",
61
+
"subject": "Your booking is confirmed",
62
+
"template": "Hi {{ person.name }}, your booking is confirmed.",
63
+
"delivery_timing": "in 5 minutes",
64
+
"active": true,
65
+
"services": [1, 2],
66
+
"custom_data": null
67
+
}
68
+
}
69
+
]
70
+
```
71
+
72
+
## Get message template
73
+
74
+
`GET /message_templates/{message_template_id}` will get a message template with id `{message_template_id}`.
75
+
76
+
## Add new message template
77
+
78
+
`POST /message_templates` will create a new message template.
79
+
80
+
## Update message template
81
+
82
+
`PUT /message_templates/{message_template_id}` will update existing message template with id `{message_template_id}`.
83
+
84
+
## Delete message template
85
+
86
+
`DELETE /message_templates/{message_template_id}` will delete existing message template with id `{message_template_id}`.
<tr><td>opening_hours_mon</td><td>Array</td><td>Default opening hours for Monday.</td></tr>
17
18
<tr><td>opening_hours_tue</td><td>Array</td><td>Default opening hours for Tuesday.</td></tr>
18
19
<tr><td>opening_hours_wed</td><td>Array</td><td>Default opening hours for Wednesday.</td></tr>
@@ -91,6 +92,18 @@ Response
91
92
92
93
`DELETE /resources/{resource_id}` will delete existing resource with id `{resource_id}`. Deleting a resource will set it to active=false and will not be returned in any listings.
93
94
95
+
## Get opening hours for all resources
96
+
97
+
`GET /resources/opening_hours` will return opening hours for all resources on specific dates.
Opening hours for specific dates is based on the standard opening hours that are specified on the resource but can be overridden with entries in [resource exception dates](/endpoints/resource-exception-dates/).
<tr><td>priority_strategy</td><td>String</td><td>Not required. Strategy for resource priority assignment.</td></tr>
56
+
<tr><td>availability_type</td><td>String</td><td>Not required. Type of availability calculation.</td></tr>
57
+
<tr><td>priority_value</td><td>Integer</td><td>Not required. Priority value for ordering.</td></tr>
42
58
</table>
43
59
44
60
### Deprecated attributes
@@ -52,6 +68,14 @@ Attendance at an event is also a booking but the individual booking datetime or
52
68
53
69
`GET /services` will return all services.
54
70
71
+
`GET /services/appointments` will return all services with booking_type=appointment.
72
+
73
+
`GET /services/attendances` will return all services with booking_type=attendance.
74
+
75
+
`GET /services/products` will return all services with booking_type=product.
76
+
77
+
`GET /services/gift_cards` will return all services with booking_type=gift_card.
78
+
55
79
Response
56
80
57
81
```json
@@ -92,6 +116,10 @@ Response
92
116
93
117
`PUT /services/{service_id}` will update existing service with id `{service_id}`.
94
118
119
+
## Get availability
120
+
121
+
`GET /services/{service_id}/availability` will return available resources for a service with id `{service_id}`.
122
+
95
123
## Delete service
96
124
97
125
`DELETE /services/{service_id}` will delete existing service with id `{service_id}`. Deleting a service will set it to active=false and will not be returned in any listings.
0 commit comments