@gpt-platform/client 0.10.5 → 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/client/client.gen.d.ts +3 -0
- package/dist/_internal/client/client.gen.d.ts.map +1 -0
- package/dist/_internal/client/index.d.ts +9 -0
- package/dist/_internal/client/index.d.ts.map +1 -0
- package/dist/_internal/client/types.gen.d.ts +118 -0
- package/dist/_internal/client/types.gen.d.ts.map +1 -0
- package/dist/_internal/client/utils.gen.d.ts +34 -0
- package/dist/_internal/client/utils.gen.d.ts.map +1 -0
- package/dist/_internal/client.gen.d.ts +13 -0
- package/dist/_internal/client.gen.d.ts.map +1 -0
- package/dist/_internal/core/auth.gen.d.ts +19 -0
- package/dist/_internal/core/auth.gen.d.ts.map +1 -0
- package/dist/_internal/core/bodySerializer.gen.d.ts +26 -0
- package/dist/_internal/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/_internal/core/params.gen.d.ts +44 -0
- package/dist/_internal/core/params.gen.d.ts.map +1 -0
- package/dist/_internal/core/pathSerializer.gen.d.ts +34 -0
- package/dist/_internal/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/_internal/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/_internal/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/_internal/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/_internal/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/_internal/core/types.gen.d.ts +79 -0
- package/dist/_internal/core/types.gen.d.ts.map +1 -0
- package/dist/_internal/core/utils.gen.d.ts +20 -0
- package/dist/_internal/core/utils.gen.d.ts.map +1 -0
- package/dist/_internal/index.d.ts +3 -0
- package/dist/_internal/index.d.ts.map +1 -0
- package/dist/_internal/sdk.gen.d.ts +7053 -0
- package/dist/_internal/sdk.gen.d.ts.map +1 -0
- package/dist/_internal/types.gen.d.ts +146633 -0
- package/dist/_internal/types.gen.d.ts.map +1 -0
- package/dist/base-client.d.ts +199 -0
- package/dist/base-client.d.ts.map +1 -0
- package/dist/errors/index.d.ts +128 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/events.d.ts +69 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/execution-events.d.ts +95 -0
- package/dist/execution-events.d.ts.map +1 -0
- package/dist/gpt-client.d.ts +2175 -0
- package/dist/gpt-client.d.ts.map +1 -0
- package/dist/index.d.ts +51 -30734
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +318 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +318 -9
- package/dist/index.mjs.map +1 -1
- package/dist/json-api.d.ts +26 -0
- package/dist/json-api.d.ts.map +1 -0
- package/dist/logging.d.ts +22 -0
- package/dist/logging.d.ts.map +1 -0
- package/dist/namespace-types.d.ts +79 -0
- package/dist/namespace-types.d.ts.map +1 -0
- package/dist/namespaces/access-grants.d.ts +71 -0
- package/dist/namespaces/access-grants.d.ts.map +1 -0
- package/dist/namespaces/agents.d.ts +1406 -0
- package/dist/namespaces/agents.d.ts.map +1 -0
- package/dist/namespaces/ai.d.ts +407 -0
- package/dist/namespaces/ai.d.ts.map +1 -0
- package/dist/namespaces/audit.d.ts +83 -0
- package/dist/namespaces/audit.d.ts.map +1 -0
- package/dist/namespaces/billing.d.ts +854 -0
- package/dist/namespaces/billing.d.ts.map +1 -0
- package/dist/namespaces/campaigns.d.ts +973 -0
- package/dist/namespaces/campaigns.d.ts.map +1 -0
- package/dist/namespaces/catalog.d.ts +964 -0
- package/dist/namespaces/catalog.d.ts.map +1 -0
- package/dist/namespaces/channels.d.ts +162 -0
- package/dist/namespaces/channels.d.ts.map +1 -0
- package/dist/namespaces/clinical.d.ts +2443 -0
- package/dist/namespaces/clinical.d.ts.map +1 -0
- package/dist/namespaces/communication.d.ts +439 -0
- package/dist/namespaces/communication.d.ts.map +1 -0
- package/dist/namespaces/compliance.d.ts +2310 -0
- package/dist/namespaces/compliance.d.ts.map +1 -0
- package/dist/namespaces/connectors.d.ts +1368 -0
- package/dist/namespaces/connectors.d.ts.map +1 -0
- package/dist/namespaces/content.d.ts +188 -0
- package/dist/namespaces/content.d.ts.map +1 -0
- package/dist/namespaces/crawler.d.ts +408 -0
- package/dist/namespaces/crawler.d.ts.map +1 -0
- package/dist/namespaces/crm-clusters.d.ts +31 -0
- package/dist/namespaces/crm-clusters.d.ts.map +1 -0
- package/dist/namespaces/crm.d.ts +1539 -0
- package/dist/namespaces/crm.d.ts.map +1 -0
- package/dist/namespaces/documents.d.ts +136 -0
- package/dist/namespaces/documents.d.ts.map +1 -0
- package/dist/namespaces/email.d.ts +550 -0
- package/dist/namespaces/email.d.ts.map +1 -0
- package/dist/namespaces/extraction.d.ts +1249 -0
- package/dist/namespaces/extraction.d.ts.map +1 -0
- package/dist/namespaces/identity.d.ts +411 -0
- package/dist/namespaces/identity.d.ts.map +1 -0
- package/dist/namespaces/imports.d.ts +177 -0
- package/dist/namespaces/imports.d.ts.map +1 -0
- package/dist/namespaces/index.d.ts +119 -0
- package/dist/namespaces/index.d.ts.map +1 -0
- package/dist/namespaces/memory.d.ts +105 -0
- package/dist/namespaces/memory.d.ts.map +1 -0
- package/dist/namespaces/models.d.ts +75 -0
- package/dist/namespaces/models.d.ts.map +1 -0
- package/dist/namespaces/permissions.d.ts +75 -0
- package/dist/namespaces/permissions.d.ts.map +1 -0
- package/dist/namespaces/pipeline-executions.d.ts +130 -0
- package/dist/namespaces/pipeline-executions.d.ts.map +1 -0
- package/dist/namespaces/pipelines.d.ts +120 -0
- package/dist/namespaces/pipelines.d.ts.map +1 -0
- package/dist/namespaces/platform.d.ts +1430 -0
- package/dist/namespaces/platform.d.ts.map +1 -0
- package/dist/namespaces/portal.d.ts +198 -0
- package/dist/namespaces/portal.d.ts.map +1 -0
- package/dist/namespaces/projects.d.ts +553 -0
- package/dist/namespaces/projects.d.ts.map +1 -0
- package/dist/namespaces/roles.d.ts +65 -0
- package/dist/namespaces/roles.d.ts.map +1 -0
- package/dist/namespaces/scheduling.d.ts +944 -0
- package/dist/namespaces/scheduling.d.ts.map +1 -0
- package/dist/namespaces/search.d.ts +224 -0
- package/dist/namespaces/search.d.ts.map +1 -0
- package/dist/namespaces/session-notes.d.ts +67 -0
- package/dist/namespaces/session-notes.d.ts.map +1 -0
- package/dist/namespaces/social.d.ts +330 -0
- package/dist/namespaces/social.d.ts.map +1 -0
- package/dist/namespaces/storage.d.ts +378 -0
- package/dist/namespaces/storage.d.ts.map +1 -0
- package/dist/namespaces/support.d.ts +427 -0
- package/dist/namespaces/support.d.ts.map +1 -0
- package/dist/namespaces/threads.d.ts +596 -0
- package/dist/namespaces/threads.d.ts.map +1 -0
- package/dist/namespaces/training.d.ts +358 -0
- package/dist/namespaces/training.d.ts.map +1 -0
- package/dist/namespaces/voice.d.ts +752 -0
- package/dist/namespaces/voice.d.ts.map +1 -0
- package/dist/namespaces/watcher.d.ts +425 -0
- package/dist/namespaces/watcher.d.ts.map +1 -0
- package/dist/namespaces/webhooks-ns.d.ts +3 -0
- package/dist/namespaces/webhooks-ns.d.ts.map +1 -0
- package/dist/pagination.d.ts +57 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/request-builder.d.ts +95 -0
- package/dist/request-builder.d.ts.map +1 -0
- package/dist/security.d.ts +32 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/streaming.d.ts +135 -0
- package/dist/streaming.d.ts.map +1 -0
- package/dist/utils/retry.d.ts +63 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/webhook-signature.d.ts +109 -0
- package/dist/webhook-signature.d.ts.map +1 -0
- package/llms.txt +7 -1
- package/package.json +286 -36
- package/dist/index.d.mts +0 -30734
|
@@ -0,0 +1,944 @@
|
|
|
1
|
+
import type { SchedulingEventType, SchedulingEvent, SchedulingParticipant, SchedulingBooking, SchedulingCalendarSync } from "../_internal/types.gen";
|
|
2
|
+
export type { SessionNoteType, SessionNoteValue } from "./session-notes";
|
|
3
|
+
/** Attributes accepted when creating an event type. */
|
|
4
|
+
export type CreateSchedulingEventTypeAttributes = {
|
|
5
|
+
workspace_id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
duration_minutes?: number;
|
|
8
|
+
capacity?: number;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
};
|
|
11
|
+
/** Attributes accepted when updating an event type (PATCH semantics). */
|
|
12
|
+
export type UpdateSchedulingEventTypeAttributes = {
|
|
13
|
+
name?: string;
|
|
14
|
+
duration_minutes?: number;
|
|
15
|
+
capacity?: number;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
};
|
|
18
|
+
/** Attributes accepted when creating a scheduling event. */
|
|
19
|
+
export type CreateSchedulingEventAttributes = {
|
|
20
|
+
workspace_id: string;
|
|
21
|
+
event_type_id?: string;
|
|
22
|
+
title?: string;
|
|
23
|
+
start_time: string;
|
|
24
|
+
end_time: string;
|
|
25
|
+
participant_ids?: string[];
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
};
|
|
28
|
+
/** Attributes accepted when updating a scheduling event (PATCH semantics). */
|
|
29
|
+
export type UpdateSchedulingEventAttributes = {
|
|
30
|
+
title?: string;
|
|
31
|
+
start_time?: string;
|
|
32
|
+
end_time?: string;
|
|
33
|
+
[key: string]: unknown;
|
|
34
|
+
};
|
|
35
|
+
/** Attributes accepted when creating a participant. */
|
|
36
|
+
export type CreateSchedulingParticipantAttributes = {
|
|
37
|
+
event_id: string;
|
|
38
|
+
user_id?: string;
|
|
39
|
+
email?: string;
|
|
40
|
+
name?: string;
|
|
41
|
+
contact_id?: string;
|
|
42
|
+
role?: string;
|
|
43
|
+
[key: string]: unknown;
|
|
44
|
+
};
|
|
45
|
+
/** Attributes accepted when updating a participant (PATCH semantics). */
|
|
46
|
+
export type UpdateSchedulingParticipantAttributes = {
|
|
47
|
+
status?: string;
|
|
48
|
+
role?: string;
|
|
49
|
+
[key: string]: unknown;
|
|
50
|
+
};
|
|
51
|
+
/** Attributes accepted when creating a booking. */
|
|
52
|
+
export type CreateSchedulingBookingAttributes = {
|
|
53
|
+
workspace_id: string;
|
|
54
|
+
event_type_id: string;
|
|
55
|
+
start_time: string;
|
|
56
|
+
[key: string]: unknown;
|
|
57
|
+
};
|
|
58
|
+
/** Attributes accepted when cancelling a booking. */
|
|
59
|
+
export type CancelSchedulingBookingAttributes = {
|
|
60
|
+
reason?: string;
|
|
61
|
+
[key: string]: unknown;
|
|
62
|
+
};
|
|
63
|
+
/** Attributes accepted when rescheduling a booking. */
|
|
64
|
+
export type RescheduleSchedulingBookingAttributes = {
|
|
65
|
+
start_time: string;
|
|
66
|
+
[key: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
/** Attributes accepted when creating a calendar sync. */
|
|
69
|
+
export type CreateSchedulingCalendarSyncAttributes = {
|
|
70
|
+
workspace_id: string;
|
|
71
|
+
provider: string;
|
|
72
|
+
[key: string]: unknown;
|
|
73
|
+
};
|
|
74
|
+
/** Attributes accepted when updating a calendar sync (PATCH semantics). */
|
|
75
|
+
export type UpdateSchedulingCalendarSyncAttributes = {
|
|
76
|
+
enabled?: boolean;
|
|
77
|
+
[key: string]: unknown;
|
|
78
|
+
};
|
|
79
|
+
import type { RequestOptions } from "../base-client";
|
|
80
|
+
import { RequestBuilder } from "../request-builder";
|
|
81
|
+
/**
|
|
82
|
+
* Scheduling namespace for appointment booking, event management, calendar
|
|
83
|
+
* synchronization, and meeting coordination.
|
|
84
|
+
*
|
|
85
|
+
* Access via `client.scheduling`.
|
|
86
|
+
*
|
|
87
|
+
* The scheduling system is organized into four layers:
|
|
88
|
+
* 1. **Event Types** — reusable templates for bookable appointments (e.g.,
|
|
89
|
+
* "30-Minute Consultation"). Define duration, location, and approval rules.
|
|
90
|
+
* 2. **Events** — internal scheduled occurrences between known workspace members.
|
|
91
|
+
* 3. **Bookings** — external party requests against event types (e.g., a patient
|
|
92
|
+
* booking an appointment via a public link).
|
|
93
|
+
* 4. **Calendar Syncs** — bi-directional sync with external calendars.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```typescript
|
|
97
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
98
|
+
*
|
|
99
|
+
* // List available appointment types
|
|
100
|
+
* const eventTypes = await client.scheduling.eventTypes.list();
|
|
101
|
+
*
|
|
102
|
+
* // Book an appointment
|
|
103
|
+
* const booking = await client.scheduling.bookings.create({
|
|
104
|
+
* event_type_id: eventTypes[0].id,
|
|
105
|
+
* start_time: '2026-04-01T10:00:00Z',
|
|
106
|
+
* booker_email: 'patient@example.com',
|
|
107
|
+
* booker_name: 'John Patient',
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare function createSchedulingNamespace(rb: RequestBuilder): {
|
|
112
|
+
/**
|
|
113
|
+
* Event Types — reusable templates for bookable appointment slots.
|
|
114
|
+
*
|
|
115
|
+
* An `EventType` defines the configuration for a bookable appointment:
|
|
116
|
+
* name, slug (used in public booking URLs), duration, location type
|
|
117
|
+
* (video, phone, in-person), and whether bookings require approval.
|
|
118
|
+
* Multiple bookings can be created against the same event type.
|
|
119
|
+
*/
|
|
120
|
+
eventTypes: {
|
|
121
|
+
/**
|
|
122
|
+
* List event types with optional pagination.
|
|
123
|
+
*
|
|
124
|
+
* Returns one page of event types. Use `listAll` to automatically
|
|
125
|
+
* traverse all pages.
|
|
126
|
+
*
|
|
127
|
+
* @param options - Optional page number, page size, and request options.
|
|
128
|
+
* @returns A page of `SchedulingEventType` records.
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
133
|
+
* const types = await client.scheduling.eventTypes.list({ pageSize: 20 });
|
|
134
|
+
* types.forEach(t => console.log(t.attributes?.name, t.attributes?.duration_minutes));
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
list: (options?: {
|
|
138
|
+
page?: number;
|
|
139
|
+
pageSize?: number;
|
|
140
|
+
} & RequestOptions) => Promise<SchedulingEventType[]>;
|
|
141
|
+
/**
|
|
142
|
+
* List all event types, automatically paginating through every page.
|
|
143
|
+
*
|
|
144
|
+
* @param options - Optional request options.
|
|
145
|
+
* @returns All `SchedulingEventType` records as a flat array.
|
|
146
|
+
*
|
|
147
|
+
* @example
|
|
148
|
+
* ```typescript
|
|
149
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
150
|
+
* const allTypes = await client.scheduling.eventTypes.listAll();
|
|
151
|
+
* ```
|
|
152
|
+
*/
|
|
153
|
+
listAll: (options?: RequestOptions) => Promise<SchedulingEventType[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Retrieve a single event type by its ID.
|
|
156
|
+
*
|
|
157
|
+
* @param id - The UUID of the event type.
|
|
158
|
+
* @param options - Optional request options.
|
|
159
|
+
* @returns The matching `SchedulingEventType`.
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```typescript
|
|
163
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
164
|
+
* const eventType = await client.scheduling.eventTypes.get('et_abc123');
|
|
165
|
+
* console.log(eventType.attributes?.slug, eventType.attributes?.location_type);
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
get: (id: string, options?: RequestOptions) => Promise<SchedulingEventType>;
|
|
169
|
+
/**
|
|
170
|
+
* Create a new event type.
|
|
171
|
+
*
|
|
172
|
+
* Defines a new bookable appointment template. Required attributes:
|
|
173
|
+
* `name` and `duration_minutes`. Optional but recommended: `slug`
|
|
174
|
+
* (used in public booking URLs; auto-generated from name if omitted),
|
|
175
|
+
* `location_type` (`"video"` | `"phone"` | `"in_person"`),
|
|
176
|
+
* `requires_approval` (default `false`), and `description`.
|
|
177
|
+
*
|
|
178
|
+
* @param attributes - Event type attributes. `name` and `duration_minutes`
|
|
179
|
+
* are required.
|
|
180
|
+
* @param options - Optional request options.
|
|
181
|
+
* @returns The newly created `SchedulingEventType`.
|
|
182
|
+
*
|
|
183
|
+
* @example
|
|
184
|
+
* ```typescript
|
|
185
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
186
|
+
* const eventType = await client.scheduling.eventTypes.create({
|
|
187
|
+
* name: '30-Minute Consultation',
|
|
188
|
+
* slug: '30min-consult',
|
|
189
|
+
* duration_minutes: 30,
|
|
190
|
+
* location_type: 'video',
|
|
191
|
+
* requires_approval: false,
|
|
192
|
+
* description: 'A brief video call for initial consultations.',
|
|
193
|
+
* });
|
|
194
|
+
* console.log('Event type created:', eventType.id);
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
create: (attributes: CreateSchedulingEventTypeAttributes, options?: RequestOptions) => Promise<SchedulingEventType>;
|
|
198
|
+
/**
|
|
199
|
+
* Update an existing event type.
|
|
200
|
+
*
|
|
201
|
+
* Use to change the name, duration, location type, or approval settings
|
|
202
|
+
* of an event type. Changes take effect for new bookings; existing bookings
|
|
203
|
+
* are not retroactively modified.
|
|
204
|
+
*
|
|
205
|
+
* @param id - The UUID of the event type to update.
|
|
206
|
+
* @param attributes - Attribute map of fields to change.
|
|
207
|
+
* @param options - Optional request options.
|
|
208
|
+
* @returns The updated `SchedulingEventType`.
|
|
209
|
+
*
|
|
210
|
+
* @example
|
|
211
|
+
* ```typescript
|
|
212
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
213
|
+
* const eventType = await client.scheduling.eventTypes.update('et_abc123', {
|
|
214
|
+
* duration_minutes: 45,
|
|
215
|
+
* requires_approval: true,
|
|
216
|
+
* });
|
|
217
|
+
* ```
|
|
218
|
+
*/
|
|
219
|
+
update: (id: string, attributes: UpdateSchedulingEventTypeAttributes, options?: RequestOptions) => Promise<SchedulingEventType>;
|
|
220
|
+
/**
|
|
221
|
+
* Archive an event type.
|
|
222
|
+
*
|
|
223
|
+
* Marks the event type as archived so it no longer appears in active
|
|
224
|
+
* listings. Existing bookings against this event type are unaffected.
|
|
225
|
+
*
|
|
226
|
+
* @param id - The UUID of the event type to archive.
|
|
227
|
+
* @param options - Optional request options.
|
|
228
|
+
* @returns The archived `SchedulingEventType`.
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
233
|
+
* const archived = await client.scheduling.eventTypes.archive('et_abc123');
|
|
234
|
+
* console.log(archived.attributes?.status); // 'archived'
|
|
235
|
+
* ```
|
|
236
|
+
*/
|
|
237
|
+
archive: (id: string, options?: RequestOptions) => Promise<SchedulingEventType>;
|
|
238
|
+
/**
|
|
239
|
+
* Retrieve an event type by its public slug.
|
|
240
|
+
*
|
|
241
|
+
* Slugs are unique per workspace and used in public booking URLs.
|
|
242
|
+
* This is the primary lookup method for external-facing booking pages.
|
|
243
|
+
*
|
|
244
|
+
* @param slug - The URL-safe slug of the event type.
|
|
245
|
+
* @param workspaceId - The workspace that owns the event type.
|
|
246
|
+
* @param options - Optional request options.
|
|
247
|
+
* @returns The matching `SchedulingEventType`.
|
|
248
|
+
*
|
|
249
|
+
* @example
|
|
250
|
+
* ```typescript
|
|
251
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
252
|
+
* const eventType = await client.scheduling.eventTypes.getBySlug(
|
|
253
|
+
* '30min-consult', 'ws_abc123',
|
|
254
|
+
* );
|
|
255
|
+
* console.log(eventType.attributes?.name);
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
getBySlug: (slug: string, workspaceId: string, options?: RequestOptions) => Promise<SchedulingEventType>;
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* Events — scheduled occurrences between workspace members.
|
|
262
|
+
*
|
|
263
|
+
* Events represent internal calendar entries (meetings, calls, appointments)
|
|
264
|
+
* between users who are already members of the workspace. For booking flows
|
|
265
|
+
* where external parties request time, use `bookings` instead.
|
|
266
|
+
*/
|
|
267
|
+
events: {
|
|
268
|
+
/**
|
|
269
|
+
* List scheduling events in a workspace with optional pagination.
|
|
270
|
+
*
|
|
271
|
+
* @param workspaceId - The workspace to list events for.
|
|
272
|
+
* @param options - Optional page number, page size, and request options.
|
|
273
|
+
* @returns A page of `SchedulingEvent` records.
|
|
274
|
+
*
|
|
275
|
+
* @example
|
|
276
|
+
* ```typescript
|
|
277
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
278
|
+
* const events = await client.scheduling.events.list(workspaceId, { pageSize: 25 });
|
|
279
|
+
* events.forEach(e => console.log(e.attributes?.title, e.attributes?.start_time));
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
list: (workspaceId: string, options?: {
|
|
283
|
+
page?: number;
|
|
284
|
+
pageSize?: number;
|
|
285
|
+
} & RequestOptions) => Promise<SchedulingEvent[]>;
|
|
286
|
+
/**
|
|
287
|
+
* List all scheduling events in a workspace, automatically paginating through every page.
|
|
288
|
+
*
|
|
289
|
+
* @param workspaceId - The workspace to list events for.
|
|
290
|
+
* @param options - Optional request options.
|
|
291
|
+
* @returns All `SchedulingEvent` records as a flat array.
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
296
|
+
* const allEvents = await client.scheduling.events.listAll(workspaceId);
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
listAll: (workspaceId: string, options?: RequestOptions) => Promise<SchedulingEvent[]>;
|
|
300
|
+
/**
|
|
301
|
+
* Retrieve a single scheduling event by its ID.
|
|
302
|
+
*
|
|
303
|
+
* @param id - The UUID of the scheduling event.
|
|
304
|
+
* @param options - Optional request options.
|
|
305
|
+
* @returns The matching `SchedulingEvent`.
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* ```typescript
|
|
309
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
310
|
+
* const event = await client.scheduling.events.get('se_abc123');
|
|
311
|
+
* console.log(event.attributes?.start_time, event.attributes?.end_time);
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
get: (id: string, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
315
|
+
/**
|
|
316
|
+
* Create an internal scheduling event directly.
|
|
317
|
+
*
|
|
318
|
+
* Creates a calendar event for meetings between known workspace members.
|
|
319
|
+
* Unlike bookings (which go through an event type and approval flow),
|
|
320
|
+
* events are created directly. Typical attributes: `title`, `start_time`,
|
|
321
|
+
* `end_time`, `location_type`, and an array of `participant_ids`.
|
|
322
|
+
*
|
|
323
|
+
* @param attributes - Event attributes. `title`, `start_time`, and
|
|
324
|
+
* `end_time` are required.
|
|
325
|
+
* @param options - Optional request options.
|
|
326
|
+
* @returns The newly created `SchedulingEvent`.
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
331
|
+
* const event = await client.scheduling.events.create({
|
|
332
|
+
* title: 'Weekly Team Sync',
|
|
333
|
+
* start_time: '2026-04-07T09:00:00Z',
|
|
334
|
+
* end_time: '2026-04-07T09:30:00Z',
|
|
335
|
+
* location_type: 'video',
|
|
336
|
+
* participant_ids: ['user_abc', 'user_def'],
|
|
337
|
+
* });
|
|
338
|
+
* ```
|
|
339
|
+
*/
|
|
340
|
+
create: (attributes: CreateSchedulingEventAttributes, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
341
|
+
/**
|
|
342
|
+
* Update a scheduling event.
|
|
343
|
+
*
|
|
344
|
+
* Use to change the event title, time, location, or other attributes.
|
|
345
|
+
* Participants receive update notifications if notification settings
|
|
346
|
+
* are enabled.
|
|
347
|
+
*
|
|
348
|
+
* @param id - The UUID of the scheduling event to update.
|
|
349
|
+
* @param attributes - Attribute map of fields to change.
|
|
350
|
+
* @param options - Optional request options.
|
|
351
|
+
* @returns The updated `SchedulingEvent`.
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* ```typescript
|
|
355
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
356
|
+
* const event = await client.scheduling.events.update('se_abc123', {
|
|
357
|
+
* start_time: '2026-04-07T10:00:00Z',
|
|
358
|
+
* end_time: '2026-04-07T10:30:00Z',
|
|
359
|
+
* });
|
|
360
|
+
* ```
|
|
361
|
+
*/
|
|
362
|
+
update: (id: string, attributes: UpdateSchedulingEventAttributes, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
363
|
+
/**
|
|
364
|
+
* Cancel an event.
|
|
365
|
+
*
|
|
366
|
+
* @param id - The UUID of the event to cancel.
|
|
367
|
+
* @param attributes - Optional attributes (e.g., `{ cancellation_reason }`).
|
|
368
|
+
* @param options - Optional request options.
|
|
369
|
+
* @returns The updated `SchedulingEvent` with `status: "cancelled"`.
|
|
370
|
+
*
|
|
371
|
+
* @example
|
|
372
|
+
* ```typescript
|
|
373
|
+
* const event = await client.scheduling.events.cancel('se_abc123', {
|
|
374
|
+
* cancellation_reason: 'Schedule conflict',
|
|
375
|
+
* });
|
|
376
|
+
* ```
|
|
377
|
+
*/
|
|
378
|
+
cancel: (id: string, attributes?: Record<string, unknown>, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
379
|
+
/**
|
|
380
|
+
* Mark an event as completed.
|
|
381
|
+
*
|
|
382
|
+
* @param id - The UUID of the event to complete.
|
|
383
|
+
* @param options - Optional request options.
|
|
384
|
+
* @returns The updated `SchedulingEvent` with `status: "completed"`.
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* ```typescript
|
|
388
|
+
* const event = await client.scheduling.events.complete('se_abc123');
|
|
389
|
+
* ```
|
|
390
|
+
*/
|
|
391
|
+
complete: (id: string, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
392
|
+
/**
|
|
393
|
+
* Reschedule an event to a new time.
|
|
394
|
+
*
|
|
395
|
+
* @param id - The UUID of the event to reschedule.
|
|
396
|
+
* @param attributes - Must include `new_start_time` and `new_end_time`.
|
|
397
|
+
* @param options - Optional request options.
|
|
398
|
+
* @returns The updated `SchedulingEvent` with the new times.
|
|
399
|
+
*
|
|
400
|
+
* @example
|
|
401
|
+
* ```typescript
|
|
402
|
+
* const event = await client.scheduling.events.reschedule('se_abc123', {
|
|
403
|
+
* new_start_time: '2026-04-10T14:00:00Z',
|
|
404
|
+
* new_end_time: '2026-04-10T15:00:00Z',
|
|
405
|
+
* });
|
|
406
|
+
* ```
|
|
407
|
+
*/
|
|
408
|
+
reschedule: (id: string, attributes: {
|
|
409
|
+
new_start_time: string;
|
|
410
|
+
new_end_time: string;
|
|
411
|
+
}, options?: RequestOptions) => Promise<SchedulingEvent>;
|
|
412
|
+
/**
|
|
413
|
+
* List events within a date range.
|
|
414
|
+
*
|
|
415
|
+
* @param workspaceId - The workspace UUID.
|
|
416
|
+
* @param startTime - ISO 8601 range start.
|
|
417
|
+
* @param endTime - ISO 8601 range end.
|
|
418
|
+
* @param options - Optional page number, page size, and request options.
|
|
419
|
+
* @returns A page of `SchedulingEvent` records in the range.
|
|
420
|
+
*
|
|
421
|
+
* @example
|
|
422
|
+
* ```typescript
|
|
423
|
+
* const events = await client.scheduling.events.listByDateRange(
|
|
424
|
+
* workspaceId, '2026-04-01T00:00:00Z', '2026-04-30T23:59:59Z',
|
|
425
|
+
* );
|
|
426
|
+
* ```
|
|
427
|
+
*/
|
|
428
|
+
listByDateRange: (workspaceId: string, startTime: string, endTime: string, options?: {
|
|
429
|
+
page?: number;
|
|
430
|
+
pageSize?: number;
|
|
431
|
+
} & RequestOptions) => Promise<SchedulingEvent[]>;
|
|
432
|
+
/**
|
|
433
|
+
* List events that include a specific participant by email.
|
|
434
|
+
*
|
|
435
|
+
* Use this to retrieve all sessions for a client (e.g., all appointments
|
|
436
|
+
* for a given patient). Filters events in the workspace where a Participant
|
|
437
|
+
* record with the given email exists.
|
|
438
|
+
*
|
|
439
|
+
* @param email - The participant's email address to filter by.
|
|
440
|
+
* @param workspaceId - The workspace to scope the query to.
|
|
441
|
+
* @param options - Optional page number, page size, and request options.
|
|
442
|
+
* @returns A flat array of `SchedulingEvent` records.
|
|
443
|
+
*
|
|
444
|
+
* @example
|
|
445
|
+
* ```typescript
|
|
446
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
447
|
+
* const sessions = await client.scheduling.events.listByParticipant(
|
|
448
|
+
* 'patient@example.com',
|
|
449
|
+
* workspaceId,
|
|
450
|
+
* );
|
|
451
|
+
* sessions.forEach(s => console.log(s.attributes?.start_time, s.attributes?.status));
|
|
452
|
+
* ```
|
|
453
|
+
*/
|
|
454
|
+
listByParticipant: (email: string, workspaceId: string, options?: {
|
|
455
|
+
page?: number;
|
|
456
|
+
pageSize?: number;
|
|
457
|
+
} & RequestOptions) => Promise<SchedulingEvent[]>;
|
|
458
|
+
};
|
|
459
|
+
/**
|
|
460
|
+
* Participants — people attending scheduling events.
|
|
461
|
+
*
|
|
462
|
+
* Participants are associated with both internal `events` and external
|
|
463
|
+
* `bookings`. Each participant record tracks the person's identity,
|
|
464
|
+
* their RSVP response, and their role in the event.
|
|
465
|
+
*/
|
|
466
|
+
participants: {
|
|
467
|
+
/**
|
|
468
|
+
* List participants with optional pagination.
|
|
469
|
+
*
|
|
470
|
+
* @param options - Optional page number, page size, and request options.
|
|
471
|
+
* @returns A page of `SchedulingParticipant` records.
|
|
472
|
+
*
|
|
473
|
+
* @example
|
|
474
|
+
* ```typescript
|
|
475
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
476
|
+
* const participants = await client.scheduling.participants.list();
|
|
477
|
+
* participants.forEach(p => console.log(p.attributes?.user_id, p.attributes?.status));
|
|
478
|
+
* ```
|
|
479
|
+
*/
|
|
480
|
+
list: (options?: {
|
|
481
|
+
page?: number;
|
|
482
|
+
pageSize?: number;
|
|
483
|
+
} & RequestOptions) => Promise<SchedulingParticipant[]>;
|
|
484
|
+
/**
|
|
485
|
+
* List all participants, automatically paginating through every page.
|
|
486
|
+
*
|
|
487
|
+
* @param options - Optional request options.
|
|
488
|
+
* @returns All `SchedulingParticipant` records as a flat array.
|
|
489
|
+
*
|
|
490
|
+
* @example
|
|
491
|
+
* ```typescript
|
|
492
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
493
|
+
* const allParticipants = await client.scheduling.participants.listAll();
|
|
494
|
+
* ```
|
|
495
|
+
*/
|
|
496
|
+
listAll: (options?: RequestOptions) => Promise<SchedulingParticipant[]>;
|
|
497
|
+
/**
|
|
498
|
+
* Retrieve a single participant by their ID.
|
|
499
|
+
*
|
|
500
|
+
* @param id - The UUID of the scheduling participant.
|
|
501
|
+
* @param options - Optional request options.
|
|
502
|
+
* @returns The matching `SchedulingParticipant`.
|
|
503
|
+
*
|
|
504
|
+
* @example
|
|
505
|
+
* ```typescript
|
|
506
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
507
|
+
* const participant = await client.scheduling.participants.get('sp_abc123');
|
|
508
|
+
* console.log(participant.attributes?.status, participant.attributes?.role);
|
|
509
|
+
* ```
|
|
510
|
+
*/
|
|
511
|
+
get: (id: string, options?: RequestOptions) => Promise<SchedulingParticipant>;
|
|
512
|
+
/**
|
|
513
|
+
* Add a participant to a scheduling event.
|
|
514
|
+
*
|
|
515
|
+
* Creates a participant record linking a user or external contact to
|
|
516
|
+
* an event. Typical attributes: `event_id` (or `booking_id`), `user_id`
|
|
517
|
+
* (or `email` for external participants), and `role`
|
|
518
|
+
* (e.g., `"attendee"`, `"organizer"`).
|
|
519
|
+
*
|
|
520
|
+
* @param attributes - Participant attributes. `event_id` and either
|
|
521
|
+
* `user_id` or `email` are required.
|
|
522
|
+
* @param options - Optional request options.
|
|
523
|
+
* @returns The newly created `SchedulingParticipant`.
|
|
524
|
+
*
|
|
525
|
+
* @example
|
|
526
|
+
* ```typescript
|
|
527
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
528
|
+
* const participant = await client.scheduling.participants.create({
|
|
529
|
+
* event_id: 'se_abc123',
|
|
530
|
+
* user_id: 'user_xyz',
|
|
531
|
+
* role: 'attendee',
|
|
532
|
+
* });
|
|
533
|
+
* ```
|
|
534
|
+
*/
|
|
535
|
+
create: (attributes: CreateSchedulingParticipantAttributes, options?: RequestOptions) => Promise<SchedulingParticipant>;
|
|
536
|
+
/**
|
|
537
|
+
* Update a participant record — confirm attendance or respond to an invite.
|
|
538
|
+
*
|
|
539
|
+
* Use to record an RSVP response or update the participant's role.
|
|
540
|
+
* Typical attributes: `status` (`"accepted"` | `"declined"` | `"tentative"`).
|
|
541
|
+
*
|
|
542
|
+
* @param id - The UUID of the scheduling participant to update.
|
|
543
|
+
* @param attributes - Attribute map of fields to change. Typically
|
|
544
|
+
* `{ status: "accepted" }` for an RSVP confirmation.
|
|
545
|
+
* @param options - Optional request options.
|
|
546
|
+
* @returns The updated `SchedulingParticipant`.
|
|
547
|
+
*
|
|
548
|
+
* @example
|
|
549
|
+
* ```typescript
|
|
550
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
551
|
+
* const participant = await client.scheduling.participants.update('sp_abc123', {
|
|
552
|
+
* status: 'accepted',
|
|
553
|
+
* });
|
|
554
|
+
* console.log(participant.attributes?.status); // "accepted"
|
|
555
|
+
* ```
|
|
556
|
+
*/
|
|
557
|
+
update: (id: string, attributes: UpdateSchedulingParticipantAttributes, options?: RequestOptions) => Promise<SchedulingParticipant>;
|
|
558
|
+
/**
|
|
559
|
+
* Record a participant's RSVP response.
|
|
560
|
+
*
|
|
561
|
+
* @param id - The UUID of the participant.
|
|
562
|
+
* @param status - The RSVP response: `"accepted"`, `"declined"`, or `"tentative"`.
|
|
563
|
+
* @param options - Optional request options.
|
|
564
|
+
* @returns The updated `SchedulingParticipant`.
|
|
565
|
+
*
|
|
566
|
+
* @example
|
|
567
|
+
* ```typescript
|
|
568
|
+
* const p = await client.scheduling.participants.respond('sp_abc123', 'accepted');
|
|
569
|
+
* ```
|
|
570
|
+
*/
|
|
571
|
+
respond: (id: string, status: "accepted" | "declined" | "tentative", options?: RequestOptions) => Promise<SchedulingParticipant>;
|
|
572
|
+
/**
|
|
573
|
+
* Remove a participant from an event.
|
|
574
|
+
*
|
|
575
|
+
* @param id - The UUID of the participant to remove.
|
|
576
|
+
* @param options - Optional request options.
|
|
577
|
+
* @returns `true` on successful removal.
|
|
578
|
+
*
|
|
579
|
+
* @example
|
|
580
|
+
* ```typescript
|
|
581
|
+
* await client.scheduling.participants.remove('sp_abc123');
|
|
582
|
+
* ```
|
|
583
|
+
*/
|
|
584
|
+
remove: (id: string, options?: RequestOptions) => Promise<true>;
|
|
585
|
+
};
|
|
586
|
+
/**
|
|
587
|
+
* Bookings — external party appointment requests.
|
|
588
|
+
*
|
|
589
|
+
* Bookings represent requests from people outside the platform (e.g.,
|
|
590
|
+
* patients, clients) who want to schedule time against a published
|
|
591
|
+
* `EventType`. Unlike internal `events`, bookings go through a request
|
|
592
|
+
* → confirm/reject lifecycle.
|
|
593
|
+
*
|
|
594
|
+
* Typical flow:
|
|
595
|
+
* 1. External party submits a booking via a public booking link.
|
|
596
|
+
* 2. `create` is called with the event type and desired time.
|
|
597
|
+
* 3. If the event type has `requires_approval: true`, a workspace member
|
|
598
|
+
* calls `confirm` or `cancel` to respond.
|
|
599
|
+
* 4. `reschedule` can move the booking to a new time.
|
|
600
|
+
*/
|
|
601
|
+
bookings: {
|
|
602
|
+
/**
|
|
603
|
+
* List bookings with optional pagination.
|
|
604
|
+
*
|
|
605
|
+
* @param options - Optional page number, page size, and request options.
|
|
606
|
+
* @returns A page of `SchedulingBooking` records.
|
|
607
|
+
*
|
|
608
|
+
* @example
|
|
609
|
+
* ```typescript
|
|
610
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
611
|
+
* const bookings = await client.scheduling.bookings.list();
|
|
612
|
+
* bookings.forEach(b => console.log(b.attributes?.booker_email, b.attributes?.status));
|
|
613
|
+
* ```
|
|
614
|
+
*/
|
|
615
|
+
list: (options?: {
|
|
616
|
+
page?: number;
|
|
617
|
+
pageSize?: number;
|
|
618
|
+
} & RequestOptions) => Promise<SchedulingBooking[]>;
|
|
619
|
+
/**
|
|
620
|
+
* List all bookings, automatically paginating through every page.
|
|
621
|
+
*
|
|
622
|
+
* @param options - Optional request options.
|
|
623
|
+
* @returns All `SchedulingBooking` records as a flat array.
|
|
624
|
+
*
|
|
625
|
+
* @example
|
|
626
|
+
* ```typescript
|
|
627
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
628
|
+
* const allBookings = await client.scheduling.bookings.listAll();
|
|
629
|
+
* ```
|
|
630
|
+
*/
|
|
631
|
+
listAll: (options?: RequestOptions) => Promise<SchedulingBooking[]>;
|
|
632
|
+
/**
|
|
633
|
+
* Retrieve a single booking by its ID.
|
|
634
|
+
*
|
|
635
|
+
* @param id - The UUID of the booking.
|
|
636
|
+
* @param options - Optional request options.
|
|
637
|
+
* @returns The matching `SchedulingBooking`.
|
|
638
|
+
*
|
|
639
|
+
* @example
|
|
640
|
+
* ```typescript
|
|
641
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
642
|
+
* const booking = await client.scheduling.bookings.get('sb_abc123');
|
|
643
|
+
* console.log(booking.attributes?.start_time, booking.attributes?.status);
|
|
644
|
+
* ```
|
|
645
|
+
*/
|
|
646
|
+
get: (id: string, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
647
|
+
/**
|
|
648
|
+
* Create a new booking request.
|
|
649
|
+
*
|
|
650
|
+
* Submits a request to book time against an event type. Used when an
|
|
651
|
+
* external party (patient, client) wants to schedule an appointment.
|
|
652
|
+
* Required attributes: `event_type_id`, `start_time`, `booker_name`,
|
|
653
|
+
* `booker_email`. Optional: `notes`, `timezone`.
|
|
654
|
+
*
|
|
655
|
+
* If the event type has `requires_approval: true`, the booking is
|
|
656
|
+
* created in `pending` status awaiting confirmation via `confirm`.
|
|
657
|
+
* Otherwise it is immediately `confirmed`.
|
|
658
|
+
*
|
|
659
|
+
* @param attributes - Booking attributes. `event_type_id`, `start_time`,
|
|
660
|
+
* `booker_name`, and `booker_email` are required.
|
|
661
|
+
* @param options - Optional request options.
|
|
662
|
+
* @returns The newly created `SchedulingBooking`.
|
|
663
|
+
*
|
|
664
|
+
* @example
|
|
665
|
+
* ```typescript
|
|
666
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
667
|
+
* const booking = await client.scheduling.bookings.create({
|
|
668
|
+
* event_type_id: 'et_abc123',
|
|
669
|
+
* start_time: '2026-04-15T14:00:00Z',
|
|
670
|
+
* booker_name: 'Jane Patient',
|
|
671
|
+
* booker_email: 'jane@example.com',
|
|
672
|
+
* notes: 'First visit — annual wellness check.',
|
|
673
|
+
* });
|
|
674
|
+
* console.log('Booking created:', booking.id, booking.attributes?.status);
|
|
675
|
+
* ```
|
|
676
|
+
*/
|
|
677
|
+
create: (attributes: CreateSchedulingBookingAttributes, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
678
|
+
/**
|
|
679
|
+
* Confirm a pending booking.
|
|
680
|
+
*
|
|
681
|
+
* Approves a booking that was created against an event type with
|
|
682
|
+
* `requires_approval: true`. Transitions the booking from `pending`
|
|
683
|
+
* to `confirmed` status. The booker typically receives a confirmation
|
|
684
|
+
* notification.
|
|
685
|
+
*
|
|
686
|
+
* @param id - The UUID of the booking to confirm.
|
|
687
|
+
* @param options - Optional request options.
|
|
688
|
+
* @returns The updated `SchedulingBooking` with `status: "confirmed"`.
|
|
689
|
+
*
|
|
690
|
+
* @example
|
|
691
|
+
* ```typescript
|
|
692
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
693
|
+
* const booking = await client.scheduling.bookings.confirm('sb_abc123');
|
|
694
|
+
* console.log(booking.attributes?.status); // "confirmed"
|
|
695
|
+
* ```
|
|
696
|
+
*/
|
|
697
|
+
confirm: (id: string, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
698
|
+
/**
|
|
699
|
+
* Cancel or reject a booking.
|
|
700
|
+
*
|
|
701
|
+
* Cancels a booking in any non-terminal status. Optional `attributes`
|
|
702
|
+
* can include a `reason` or `cancellation_note` to communicate context
|
|
703
|
+
* to the booker. Cancelled bookings are retained for audit purposes.
|
|
704
|
+
*
|
|
705
|
+
* @param id - The UUID of the booking to cancel.
|
|
706
|
+
* @param attributes - Optional cancellation attributes (e.g., `{ reason }`).
|
|
707
|
+
* @param options - Optional request options.
|
|
708
|
+
* @returns The updated `SchedulingBooking` with `status: "cancelled"`.
|
|
709
|
+
*
|
|
710
|
+
* @example
|
|
711
|
+
* ```typescript
|
|
712
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
713
|
+
* const booking = await client.scheduling.bookings.cancel('sb_abc123', {
|
|
714
|
+
* reason: 'Clinician unavailable due to emergency.',
|
|
715
|
+
* });
|
|
716
|
+
* console.log(booking.attributes?.status); // "cancelled"
|
|
717
|
+
* ```
|
|
718
|
+
*/
|
|
719
|
+
cancel: (id: string, attributes?: CancelSchedulingBookingAttributes, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
720
|
+
/**
|
|
721
|
+
* Reschedule a booking to a new time.
|
|
722
|
+
*
|
|
723
|
+
* Moves a confirmed booking to a different start time. Required
|
|
724
|
+
* attributes: `new_start_time`. The booking's `event_type_id` and
|
|
725
|
+
* other details remain unchanged. The booker typically receives a
|
|
726
|
+
* reschedule notification.
|
|
727
|
+
*
|
|
728
|
+
* @param id - The UUID of the booking to reschedule.
|
|
729
|
+
* @param attributes - Reschedule attributes including `new_start_time`.
|
|
730
|
+
* @param options - Optional request options.
|
|
731
|
+
* @returns The updated `SchedulingBooking` with the new time.
|
|
732
|
+
*
|
|
733
|
+
* @example
|
|
734
|
+
* ```typescript
|
|
735
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
736
|
+
* const booking = await client.scheduling.bookings.reschedule('sb_abc123', {
|
|
737
|
+
* new_start_time: '2026-04-22T14:00:00Z',
|
|
738
|
+
* });
|
|
739
|
+
* console.log(booking.attributes?.start_time); // "2026-04-22T14:00:00Z"
|
|
740
|
+
* ```
|
|
741
|
+
*/
|
|
742
|
+
reschedule: (id: string, attributes: RescheduleSchedulingBookingAttributes, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
743
|
+
/**
|
|
744
|
+
* Mark a booking as no-show.
|
|
745
|
+
*
|
|
746
|
+
* Records that the booker did not attend the appointment.
|
|
747
|
+
*
|
|
748
|
+
* @param id - The UUID of the booking.
|
|
749
|
+
* @param options - Optional request options.
|
|
750
|
+
* @returns The updated `SchedulingBooking` with `status: "no_show"`.
|
|
751
|
+
*
|
|
752
|
+
* @example
|
|
753
|
+
* ```typescript
|
|
754
|
+
* const booking = await client.scheduling.bookings.markNoShow('sb_abc123');
|
|
755
|
+
* ```
|
|
756
|
+
*/
|
|
757
|
+
markNoShow: (id: string, options?: RequestOptions) => Promise<SchedulingBooking>;
|
|
758
|
+
/**
|
|
759
|
+
* List bookings by booker email address.
|
|
760
|
+
*
|
|
761
|
+
* Returns all bookings associated with the given booker email,
|
|
762
|
+
* regardless of status. Useful for lookup pages where a booker
|
|
763
|
+
* wants to view or manage their appointments.
|
|
764
|
+
*
|
|
765
|
+
* @param email - The booker's email address.
|
|
766
|
+
* @param options - Optional request options.
|
|
767
|
+
* @returns An array of `SchedulingBooking` records for that booker.
|
|
768
|
+
*
|
|
769
|
+
* @example
|
|
770
|
+
* ```typescript
|
|
771
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
772
|
+
* const bookings = await client.scheduling.bookings.listByBooker(
|
|
773
|
+
* 'patient@example.com',
|
|
774
|
+
* );
|
|
775
|
+
* bookings.forEach(b => console.log(b.attributes?.start_time, b.attributes?.status));
|
|
776
|
+
* ```
|
|
777
|
+
*/
|
|
778
|
+
listByBooker: (email: string, options?: RequestOptions) => Promise<SchedulingBooking[]>;
|
|
779
|
+
};
|
|
780
|
+
/**
|
|
781
|
+
* Calendar Syncs — bi-directional external calendar integrations.
|
|
782
|
+
*
|
|
783
|
+
* Calendar syncs connect the platform's scheduling system to external
|
|
784
|
+
* calendars (Google Calendar, Microsoft Outlook). When active, events
|
|
785
|
+
* are pushed to the external calendar and external events are pulled
|
|
786
|
+
* in to detect conflicts. Syncs can be paused without deleting the
|
|
787
|
+
* integration configuration.
|
|
788
|
+
*/
|
|
789
|
+
calendarSyncs: {
|
|
790
|
+
/**
|
|
791
|
+
* List calendar syncs with optional pagination.
|
|
792
|
+
*
|
|
793
|
+
* @param options - Optional page number, page size, and request options.
|
|
794
|
+
* @returns A page of `SchedulingCalendarSync` records.
|
|
795
|
+
*
|
|
796
|
+
* @example
|
|
797
|
+
* ```typescript
|
|
798
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
799
|
+
* const syncs = await client.scheduling.calendarSyncs.list();
|
|
800
|
+
* syncs.forEach(s => console.log(s.attributes?.provider, s.attributes?.status));
|
|
801
|
+
* ```
|
|
802
|
+
*/
|
|
803
|
+
list: (options?: {
|
|
804
|
+
page?: number;
|
|
805
|
+
pageSize?: number;
|
|
806
|
+
} & RequestOptions) => Promise<SchedulingCalendarSync[]>;
|
|
807
|
+
/**
|
|
808
|
+
* List all calendar syncs, automatically paginating through every page.
|
|
809
|
+
*
|
|
810
|
+
* @param options - Optional request options.
|
|
811
|
+
* @returns All `SchedulingCalendarSync` records as a flat array.
|
|
812
|
+
*
|
|
813
|
+
* @example
|
|
814
|
+
* ```typescript
|
|
815
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
816
|
+
* const allSyncs = await client.scheduling.calendarSyncs.listAll();
|
|
817
|
+
* ```
|
|
818
|
+
*/
|
|
819
|
+
listAll: (options?: RequestOptions) => Promise<SchedulingCalendarSync[]>;
|
|
820
|
+
/**
|
|
821
|
+
* Retrieve a single calendar sync by its ID.
|
|
822
|
+
*
|
|
823
|
+
* @param id - The UUID of the calendar sync.
|
|
824
|
+
* @param options - Optional request options.
|
|
825
|
+
* @returns The matching `SchedulingCalendarSync`.
|
|
826
|
+
*
|
|
827
|
+
* @example
|
|
828
|
+
* ```typescript
|
|
829
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
830
|
+
* const sync = await client.scheduling.calendarSyncs.get('cs_abc123');
|
|
831
|
+
* console.log(sync.attributes?.provider, sync.attributes?.last_synced_at);
|
|
832
|
+
* ```
|
|
833
|
+
*/
|
|
834
|
+
get: (id: string, options?: RequestOptions) => Promise<SchedulingCalendarSync>;
|
|
835
|
+
/**
|
|
836
|
+
* Create a new calendar sync integration.
|
|
837
|
+
*
|
|
838
|
+
* Sets up bi-directional sync between the platform and an external calendar.
|
|
839
|
+
* Requires a pre-authorized connector credential for the calendar provider.
|
|
840
|
+
* Typical attributes: `provider` (`"google_calendar"` | `"outlook"`),
|
|
841
|
+
* `connector_instance_id`, `workspace_id`, and `sync_direction`
|
|
842
|
+
* (`"both"` | `"push"` | `"pull"`).
|
|
843
|
+
*
|
|
844
|
+
* @param attributes - Calendar sync attributes. `provider` and
|
|
845
|
+
* `connector_instance_id` are required.
|
|
846
|
+
* @param options - Optional request options.
|
|
847
|
+
* @returns The newly created `SchedulingCalendarSync`.
|
|
848
|
+
*
|
|
849
|
+
* @example
|
|
850
|
+
* ```typescript
|
|
851
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
852
|
+
* const sync = await client.scheduling.calendarSyncs.create({
|
|
853
|
+
* provider: 'google_calendar',
|
|
854
|
+
* connector_instance_id: 'ci_gcal_abc',
|
|
855
|
+
* workspace_id: 'ws_abc123',
|
|
856
|
+
* sync_direction: 'both',
|
|
857
|
+
* });
|
|
858
|
+
* console.log('Calendar sync created:', sync.id);
|
|
859
|
+
* ```
|
|
860
|
+
*/
|
|
861
|
+
create: (attributes: CreateSchedulingCalendarSyncAttributes, options?: RequestOptions) => Promise<SchedulingCalendarSync>;
|
|
862
|
+
/**
|
|
863
|
+
* Update a calendar sync configuration.
|
|
864
|
+
*
|
|
865
|
+
* Use to change sync direction, update the associated credential, or
|
|
866
|
+
* modify other sync settings.
|
|
867
|
+
*
|
|
868
|
+
* @param id - The UUID of the calendar sync to update.
|
|
869
|
+
* @param attributes - Attribute map of fields to change.
|
|
870
|
+
* @param options - Optional request options.
|
|
871
|
+
* @returns The updated `SchedulingCalendarSync`.
|
|
872
|
+
*
|
|
873
|
+
* @example
|
|
874
|
+
* ```typescript
|
|
875
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
876
|
+
* const sync = await client.scheduling.calendarSyncs.update('cs_abc123', {
|
|
877
|
+
* sync_direction: 'push',
|
|
878
|
+
* });
|
|
879
|
+
* ```
|
|
880
|
+
*/
|
|
881
|
+
update: (id: string, attributes: UpdateSchedulingCalendarSyncAttributes, options?: RequestOptions) => Promise<SchedulingCalendarSync>;
|
|
882
|
+
/**
|
|
883
|
+
* Delete a calendar sync integration.
|
|
884
|
+
*
|
|
885
|
+
* Removes the calendar sync configuration permanently. The integration
|
|
886
|
+
* stops immediately. Events previously synced to the external calendar
|
|
887
|
+
* are not removed from the external calendar.
|
|
888
|
+
*
|
|
889
|
+
* @param id - The UUID of the calendar sync to delete.
|
|
890
|
+
* @param options - Optional request options.
|
|
891
|
+
* @returns `true` on successful deletion.
|
|
892
|
+
*
|
|
893
|
+
* @example
|
|
894
|
+
* ```typescript
|
|
895
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
896
|
+
* await client.scheduling.calendarSyncs.delete('cs_abc123');
|
|
897
|
+
* ```
|
|
898
|
+
*/
|
|
899
|
+
delete: (id: string, options?: RequestOptions) => Promise<true>;
|
|
900
|
+
/**
|
|
901
|
+
* Pause a calendar sync.
|
|
902
|
+
*
|
|
903
|
+
* Temporarily suspends the sync without deleting the integration.
|
|
904
|
+
* While paused, no events are pushed to or pulled from the external
|
|
905
|
+
* calendar. Resume with `resume` when ready to continue syncing.
|
|
906
|
+
*
|
|
907
|
+
* @param id - The UUID of the calendar sync to pause.
|
|
908
|
+
* @param options - Optional request options.
|
|
909
|
+
* @returns The updated `SchedulingCalendarSync` with `status: "paused"`.
|
|
910
|
+
*
|
|
911
|
+
* @example
|
|
912
|
+
* ```typescript
|
|
913
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
914
|
+
* const sync = await client.scheduling.calendarSyncs.pause('cs_abc123');
|
|
915
|
+
* console.log(sync.attributes?.status); // "paused"
|
|
916
|
+
* ```
|
|
917
|
+
*/
|
|
918
|
+
pause: (id: string, options?: RequestOptions) => Promise<SchedulingCalendarSync>;
|
|
919
|
+
/**
|
|
920
|
+
* Resume a paused calendar sync.
|
|
921
|
+
*
|
|
922
|
+
* Restarts a calendar sync that was previously paused. The sync catches
|
|
923
|
+
* up on any missed changes since the pause, then resumes normal operation.
|
|
924
|
+
*
|
|
925
|
+
* @param id - The UUID of the calendar sync to resume.
|
|
926
|
+
* @param options - Optional request options.
|
|
927
|
+
* @returns The updated `SchedulingCalendarSync` with `status: "active"`.
|
|
928
|
+
*
|
|
929
|
+
* @example
|
|
930
|
+
* ```typescript
|
|
931
|
+
* const client = new GptClient({ apiKey: 'sk_app_...' });
|
|
932
|
+
* const sync = await client.scheduling.calendarSyncs.resume('cs_abc123');
|
|
933
|
+
* console.log(sync.attributes?.status); // "active"
|
|
934
|
+
* ```
|
|
935
|
+
*/
|
|
936
|
+
resume: (id: string, options?: RequestOptions) => Promise<SchedulingCalendarSync>;
|
|
937
|
+
};
|
|
938
|
+
/** Session Notes — clinical notes per appointment (Chartless-specific, backed by DataStore). */
|
|
939
|
+
sessionNotes: {
|
|
940
|
+
get: (eventId: string, noteType: import("./session-notes").SessionNoteType, workspaceId: string, options?: RequestOptions) => Promise<import("../_internal/types.gen").DataStoreRecord | null>;
|
|
941
|
+
upsert: (eventId: string, noteType: import("./session-notes").SessionNoteType, workspaceId: string, value: import("./session-notes").SessionNoteValue, options?: RequestOptions) => Promise<import("../_internal/types.gen").DataStoreRecord>;
|
|
942
|
+
};
|
|
943
|
+
};
|
|
944
|
+
//# sourceMappingURL=scheduling.d.ts.map
|