@notionhq/apps 0.0.26 → 0.0.28
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/calendar.generated.d.ts +1908 -680
- package/dist/calendar.generated.d.ts.map +1 -1
- package/dist/calendar.generated.js +27 -0
- package/dist/connection-trigger-definitions.generated.d.ts +12 -0
- package/dist/connection-trigger-definitions.generated.d.ts.map +1 -1
- package/dist/connection-trigger-definitions.generated.js +15 -0
- package/dist/connections.d.ts +1 -0
- package/dist/connections.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/mail.generated.d.ts +4590 -0
- package/dist/mail.generated.d.ts.map +1 -0
- package/dist/mail.generated.js +252 -0
- package/dist/providers.generated.d.ts +4 -0
- package/dist/providers.generated.d.ts.map +1 -1
- package/dist/providers.generated.js +7 -0
- package/dist/triggers.generated.d.ts +34 -16
- package/dist/triggers.generated.d.ts.map +1 -1
- package/dist/triggers.generated.js +12 -9
- package/dist/workflow.d.ts +61 -1
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +109 -1
- package/docs/CONNECTIONS.md +38 -3
- package/docs/workflow-inputs.md +28 -0
- package/package.json +1 -1
- package/src/calendar.generated.ts +2033 -737
- package/src/connection-trigger-definitions.generated.ts +18 -0
- package/src/connections.test.ts +35 -0
- package/src/index.ts +1 -0
- package/src/mail.generated.ts +5095 -0
- package/src/providers.generated.ts +8 -0
- package/src/triggers.generated.ts +27 -18
- package/src/workflow-connections-types.test.ts +16 -0
- package/src/workflow.test.ts +210 -0
- package/src/workflow.ts +226 -3
|
@@ -1,127 +1,215 @@
|
|
|
1
1
|
import type { ConnectionActionInvoker } from "./connection-actions.js";
|
|
2
2
|
/**
|
|
3
|
-
* Script input for the "
|
|
3
|
+
* Script input for the "Cancel calendar events." effect (`calendar.cancelEvents`),
|
|
4
4
|
* derived from its Tool Core definition's call_function input projection.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* Only works with Google Workspace accounts that have admin permissions to view calendar resources.
|
|
9
|
-
* Use this tool to find rooms when creating in-person meetings.
|
|
10
|
-
* Pass multiple meeting times in timeSlots to get available rooms for each time slot independently.
|
|
6
|
+
* If the event has an organizer and it's not the user, then it cannot be canceled but we can update the user's response with another tool.
|
|
7
|
+
* If the event has attendees, they will receive a notification of the cancellation.
|
|
11
8
|
*/
|
|
12
|
-
export type
|
|
9
|
+
export type CancelEventsScriptInput = {
|
|
13
10
|
/**
|
|
14
|
-
*
|
|
11
|
+
* Events to cancel.
|
|
15
12
|
*/
|
|
16
|
-
|
|
13
|
+
events: Array<{
|
|
17
14
|
/**
|
|
18
|
-
*
|
|
15
|
+
* Calendar containing the event.
|
|
19
16
|
*/
|
|
20
|
-
|
|
17
|
+
calendar: {
|
|
18
|
+
/**
|
|
19
|
+
* Account that owns the event calendar.
|
|
20
|
+
*/
|
|
21
|
+
accountId: string;
|
|
22
|
+
/**
|
|
23
|
+
* Event calendar identifier within the account.
|
|
24
|
+
*/
|
|
25
|
+
calendarId: string;
|
|
26
|
+
};
|
|
21
27
|
/**
|
|
22
|
-
*
|
|
28
|
+
* Identifier of the event to cancel.
|
|
23
29
|
*/
|
|
24
|
-
|
|
30
|
+
eventId: string;
|
|
31
|
+
/**
|
|
32
|
+
* Optional summary of the event, used by agent UI.
|
|
33
|
+
*/
|
|
34
|
+
eventSummary?: string;
|
|
25
35
|
}>;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Canonical Tool Core output for the "Cancel calendar events." effect (`calendar.cancelEvents`).
|
|
39
|
+
* This is the definition's output schema; the effect's script surface may
|
|
40
|
+
* re-encode it before returning.
|
|
41
|
+
*/
|
|
42
|
+
export type CancelEventsScriptOutput = {
|
|
43
|
+
canceledEvents: Array<{
|
|
44
|
+
calendar: {
|
|
45
|
+
accountId: string;
|
|
46
|
+
calendarId: string;
|
|
47
|
+
};
|
|
48
|
+
eventId: string;
|
|
49
|
+
/**
|
|
50
|
+
* Optional summary of the event, used by agent UI.
|
|
51
|
+
*/
|
|
52
|
+
eventSummary?: string;
|
|
53
|
+
}>;
|
|
54
|
+
errors?: Array<{
|
|
55
|
+
/**
|
|
56
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
57
|
+
*/
|
|
58
|
+
identifier: string;
|
|
59
|
+
/**
|
|
60
|
+
* Description of the error that occurred
|
|
61
|
+
*/
|
|
62
|
+
errorMessage: string;
|
|
63
|
+
}>;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Script input for the "Create calendar events." effect (`calendar.createEvents`),
|
|
67
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
68
|
+
*
|
|
69
|
+
* Events can be created on different calendars.
|
|
70
|
+
*/
|
|
71
|
+
export type CreateEventsScriptInput = {
|
|
38
72
|
/**
|
|
39
73
|
* Date-times of returned events will be expressed in this time-zone
|
|
40
74
|
*/
|
|
41
75
|
timeZone: string;
|
|
42
76
|
/**
|
|
43
|
-
*
|
|
77
|
+
* Events to create.
|
|
44
78
|
*/
|
|
45
|
-
|
|
79
|
+
events: Array<{
|
|
46
80
|
/**
|
|
47
|
-
*
|
|
81
|
+
* Title of the event.
|
|
48
82
|
*/
|
|
49
|
-
|
|
83
|
+
summary: string;
|
|
50
84
|
/**
|
|
51
|
-
*
|
|
85
|
+
* Description of the event.
|
|
52
86
|
*/
|
|
53
|
-
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Canonical Tool Core output for the "List available calendar resources (such as conference rooms)." effect (`calendar.listCalendarResources`).
|
|
58
|
-
* This is the definition's output schema; the effect's script surface may
|
|
59
|
-
* re-encode it before returning.
|
|
60
|
-
*/
|
|
61
|
-
export type ListCalendarResourcesScriptOutput = {
|
|
62
|
-
/**
|
|
63
|
-
* Results for each requested time slot, with available rooms sorted by capacity
|
|
64
|
-
*/
|
|
65
|
-
resultsBySlot: Array<{
|
|
87
|
+
description?: string;
|
|
66
88
|
/**
|
|
67
|
-
*
|
|
89
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
68
90
|
*/
|
|
69
|
-
|
|
70
|
-
startAt: string;
|
|
71
|
-
endAt: string;
|
|
72
|
-
};
|
|
91
|
+
location?: string;
|
|
73
92
|
/**
|
|
74
|
-
*
|
|
93
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
75
94
|
*/
|
|
76
|
-
|
|
95
|
+
recurrenceRules?: Array<string>;
|
|
96
|
+
/**
|
|
97
|
+
* When the event is happening
|
|
98
|
+
*/
|
|
99
|
+
period: {
|
|
77
100
|
/**
|
|
78
|
-
*
|
|
101
|
+
* Whether the event period uses all-day dates or date-times.
|
|
79
102
|
*/
|
|
80
|
-
|
|
103
|
+
type: "DATE";
|
|
81
104
|
/**
|
|
82
|
-
*
|
|
105
|
+
* Start of the event.
|
|
83
106
|
*/
|
|
84
|
-
|
|
107
|
+
start: {
|
|
108
|
+
/**
|
|
109
|
+
* Date in ISO 8601 format (no time)
|
|
110
|
+
*/
|
|
111
|
+
date: string;
|
|
112
|
+
};
|
|
85
113
|
/**
|
|
86
|
-
*
|
|
114
|
+
* End of the event.
|
|
87
115
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
116
|
+
end: {
|
|
117
|
+
/**
|
|
118
|
+
* Date in ISO 8601 format (no time)
|
|
119
|
+
*/
|
|
120
|
+
date: string;
|
|
91
121
|
};
|
|
122
|
+
} | {
|
|
92
123
|
/**
|
|
93
|
-
*
|
|
124
|
+
* Whether the event period uses all-day dates or date-times.
|
|
94
125
|
*/
|
|
95
|
-
|
|
126
|
+
type: "DATE_TIME";
|
|
96
127
|
/**
|
|
97
|
-
*
|
|
128
|
+
* Start of the event.
|
|
98
129
|
*/
|
|
99
|
-
|
|
130
|
+
start: {
|
|
131
|
+
/**
|
|
132
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset, or without TZ offset if `timeZone` is specified in which case will be interpreted as local time in that timeZone
|
|
133
|
+
*/
|
|
134
|
+
dateTime: string;
|
|
135
|
+
/**
|
|
136
|
+
* IANA time zone for the event start date-time.
|
|
137
|
+
*/
|
|
138
|
+
timeZone?: string;
|
|
139
|
+
};
|
|
100
140
|
/**
|
|
101
|
-
*
|
|
141
|
+
* End of the event.
|
|
102
142
|
*/
|
|
103
|
-
|
|
143
|
+
end: {
|
|
144
|
+
/**
|
|
145
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset, or without TZ offset if `timeZone` is specified in which case will be interpreted as local time in that timeZone
|
|
146
|
+
*/
|
|
147
|
+
dateTime: string;
|
|
148
|
+
/**
|
|
149
|
+
* IANA time zone for the event end date-time.
|
|
150
|
+
*/
|
|
151
|
+
timeZone?: string;
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Attendees to invite to the event
|
|
156
|
+
*/
|
|
157
|
+
attendees?: Array<{
|
|
158
|
+
/**
|
|
159
|
+
* Email address of the attendee.
|
|
160
|
+
*/
|
|
161
|
+
email: string;
|
|
162
|
+
/**
|
|
163
|
+
* Totally optional, provide only if you are sure of the attendee's name
|
|
164
|
+
*/
|
|
165
|
+
displayName?: string;
|
|
166
|
+
/**
|
|
167
|
+
* Set only if the user was explicit about an attendee not being required
|
|
168
|
+
*/
|
|
169
|
+
isOptional?: boolean;
|
|
104
170
|
}>;
|
|
171
|
+
/**
|
|
172
|
+
* Resources (such as rooms) to invite to the event. Must be from the same account as `event.calendar`.
|
|
173
|
+
*/
|
|
174
|
+
resources?: Array<{
|
|
175
|
+
/**
|
|
176
|
+
* Email address of the resource.
|
|
177
|
+
*/
|
|
178
|
+
email?: string;
|
|
179
|
+
/**
|
|
180
|
+
* Display name of the resource.
|
|
181
|
+
*/
|
|
182
|
+
displayName?: string;
|
|
183
|
+
/**
|
|
184
|
+
* Set only if the user was explicit about a resource not being required
|
|
185
|
+
*/
|
|
186
|
+
isOptional: boolean;
|
|
187
|
+
}>;
|
|
188
|
+
/**
|
|
189
|
+
* Will create the event on the primary, default calendar if not specified.
|
|
190
|
+
*/
|
|
191
|
+
calendar?: {
|
|
192
|
+
/**
|
|
193
|
+
* Account that owns the target calendar.
|
|
194
|
+
*/
|
|
195
|
+
accountId: string;
|
|
196
|
+
/**
|
|
197
|
+
* Target calendar identifier within the account.
|
|
198
|
+
*/
|
|
199
|
+
calendarId: string;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Whether to disable conferencing for this event.
|
|
203
|
+
*/
|
|
204
|
+
disableConferencing?: boolean;
|
|
105
205
|
}>;
|
|
106
206
|
};
|
|
107
207
|
/**
|
|
108
|
-
*
|
|
109
|
-
* derived from its Tool Core definition's call_function input projection.
|
|
110
|
-
*
|
|
111
|
-
* List of calendars grouped by account.
|
|
112
|
-
*/
|
|
113
|
-
export type ListCalendarsScriptInput = {
|
|
114
|
-
/**
|
|
115
|
-
* Return only accounts linked to these email addresses. Useful to get calendars from a work account only for example. Do not specify if you are interested in getting the whole picture of someone's agenda across work and personal accounts.
|
|
116
|
-
*/
|
|
117
|
-
onlyAccountEmails?: Array<string>;
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* Canonical Tool Core output for the "Fetch list of calendars of the user." effect (`calendar.listCalendars`).
|
|
208
|
+
* Canonical Tool Core output for the "Create calendar events." effect (`calendar.createEvents`).
|
|
121
209
|
* This is the definition's output schema; the effect's script surface may
|
|
122
210
|
* re-encode it before returning.
|
|
123
211
|
*/
|
|
124
|
-
export type
|
|
212
|
+
export type CreateEventsScriptOutput = {
|
|
125
213
|
accounts: Array<{
|
|
126
214
|
accountId: string;
|
|
127
215
|
/**
|
|
@@ -190,140 +278,1325 @@ export type ListCalendarsScriptOutput = {
|
|
|
190
278
|
* The email address of the owner of this calendar.
|
|
191
279
|
*/
|
|
192
280
|
ownerEmail?: string;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
*/
|
|
202
|
-
export type ListContactsScriptInput = {
|
|
203
|
-
/**
|
|
204
|
-
* Optional search queries to filter contacts by name or email. Results matching any query are included.
|
|
205
|
-
*/
|
|
206
|
-
queries?: Array<string>;
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Canonical Tool Core output for the "List contacts" effect (`calendar.listContacts`).
|
|
210
|
-
* This is the definition's output schema; the effect's script surface may
|
|
211
|
-
* re-encode it before returning.
|
|
212
|
-
*/
|
|
213
|
-
export type ListContactsScriptOutput = {
|
|
214
|
-
accounts: Array<{
|
|
215
|
-
accountId: string;
|
|
216
|
-
/**
|
|
217
|
-
* Google, Apple iCloud, Outlook, etc.
|
|
218
|
-
*/
|
|
219
|
-
providerName: string;
|
|
220
|
-
/**
|
|
221
|
-
* The user email associated with this account. Useful to know if this account and its data should be used depending on context.
|
|
222
|
-
*/
|
|
223
|
-
email?: string;
|
|
224
|
-
/**
|
|
225
|
-
* Whether this account is work-related or a personal account, if we know this information.
|
|
226
|
-
*/
|
|
227
|
-
category?: "work" | "personal";
|
|
228
|
-
capabilities: {
|
|
229
|
-
/**
|
|
230
|
-
* Does this account expose any calendars?
|
|
231
|
-
*/
|
|
232
|
-
readCalendars: boolean;
|
|
233
|
-
/**
|
|
234
|
-
* Can we read calendar events from calendars of this account?
|
|
235
|
-
*/
|
|
236
|
-
readEvents: boolean;
|
|
237
|
-
/**
|
|
238
|
-
* Can we write events in some calendars of this account? Calendars themselves might have their own set of restrictions.
|
|
239
|
-
*/
|
|
240
|
-
writeEvents: boolean;
|
|
241
|
-
/**
|
|
242
|
-
* Can we use a text search query to find events in the calendars of this account?
|
|
243
|
-
*/
|
|
244
|
-
searchEvents: boolean;
|
|
245
|
-
/**
|
|
246
|
-
* Does this account expose contacts?
|
|
247
|
-
*/
|
|
248
|
-
readContacts: boolean;
|
|
249
|
-
};
|
|
250
|
-
/**
|
|
251
|
-
* User can access the events of co-workers having an email address with one of these domains
|
|
252
|
-
*/
|
|
253
|
-
coworkersEmailDomains?: Array<string>;
|
|
254
|
-
contacts: Array<{
|
|
255
|
-
/**
|
|
256
|
-
* Unique identifier for the contact
|
|
257
|
-
*/
|
|
258
|
-
id: string;
|
|
259
|
-
/**
|
|
260
|
-
* Primary email address of the contact
|
|
261
|
-
*/
|
|
262
|
-
email: string;
|
|
263
|
-
/**
|
|
264
|
-
* Additional email addresses for this contact
|
|
265
|
-
*/
|
|
266
|
-
alternateEmails?: Array<string>;
|
|
267
|
-
/**
|
|
268
|
-
* Display name of the contact
|
|
269
|
-
*/
|
|
270
|
-
displayName?: string;
|
|
271
|
-
/**
|
|
272
|
-
* Phone numbers associated with this contact
|
|
273
|
-
*/
|
|
274
|
-
phoneNumbers?: Array<{
|
|
281
|
+
createdEvents: Array<{
|
|
282
|
+
calendar: {
|
|
283
|
+
accountId: string;
|
|
284
|
+
calendarId: string;
|
|
285
|
+
};
|
|
286
|
+
eventId: string;
|
|
287
|
+
summary: string;
|
|
288
|
+
description?: string;
|
|
275
289
|
/**
|
|
276
|
-
*
|
|
290
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
277
291
|
*/
|
|
278
|
-
|
|
292
|
+
location?: string;
|
|
293
|
+
/**
|
|
294
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
295
|
+
*/
|
|
296
|
+
recurrenceRules?: Array<string>;
|
|
297
|
+
/**
|
|
298
|
+
* The data provider this event belongs to
|
|
299
|
+
*/
|
|
300
|
+
provider?: "google" | "notion" | "icloud" | "outlook";
|
|
301
|
+
/**
|
|
302
|
+
* The URL to view the event in the Calendar app.
|
|
303
|
+
*/
|
|
304
|
+
webUrl: string;
|
|
305
|
+
/**
|
|
306
|
+
* When the event is happening
|
|
307
|
+
*/
|
|
308
|
+
period: {
|
|
309
|
+
type: "DATE";
|
|
310
|
+
start: {
|
|
311
|
+
/**
|
|
312
|
+
* Date in ISO 8601 format (no time)
|
|
313
|
+
*/
|
|
314
|
+
date: string;
|
|
315
|
+
};
|
|
316
|
+
end: {
|
|
317
|
+
/**
|
|
318
|
+
* Date in ISO 8601 format (no time)
|
|
319
|
+
*/
|
|
320
|
+
date: string;
|
|
321
|
+
};
|
|
322
|
+
} | {
|
|
323
|
+
type: "DATE_TIME";
|
|
324
|
+
start: {
|
|
325
|
+
/**
|
|
326
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
327
|
+
*/
|
|
328
|
+
dateTime: string;
|
|
329
|
+
timeZone?: string;
|
|
330
|
+
};
|
|
331
|
+
end: {
|
|
332
|
+
/**
|
|
333
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
334
|
+
*/
|
|
335
|
+
dateTime: string;
|
|
336
|
+
timeZone?: string;
|
|
337
|
+
};
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* Whether it's part of a recurring event series
|
|
341
|
+
*/
|
|
342
|
+
isRecurring: boolean;
|
|
343
|
+
/**
|
|
344
|
+
* If true, the event does not block time on the calendar. This is equivalent to setting `Show me as to Available` in the Calendar UI.
|
|
345
|
+
*/
|
|
346
|
+
isTransparent: boolean;
|
|
347
|
+
/**
|
|
348
|
+
* Is the event an auto-blocking event created from another event? Used to create blocked events on a calendar from events on another calendar. You can ignore auto-blocked events if there are events happening at the exact same time on other calendars.
|
|
349
|
+
*/
|
|
350
|
+
isAutoBlock: boolean;
|
|
351
|
+
/**
|
|
352
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
353
|
+
*/
|
|
354
|
+
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
355
|
+
/**
|
|
356
|
+
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
357
|
+
*/
|
|
358
|
+
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
359
|
+
/**
|
|
360
|
+
* Whether it's a meeting, aka an event with attendees listed
|
|
361
|
+
*/
|
|
362
|
+
isMeeting: boolean;
|
|
363
|
+
conferencingEntryPoints?: Array<{
|
|
364
|
+
uri: string;
|
|
365
|
+
accessCode?: string;
|
|
366
|
+
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
367
|
+
label?: string;
|
|
368
|
+
meetingCode?: string;
|
|
369
|
+
passcode?: string;
|
|
370
|
+
password?: string;
|
|
371
|
+
pin?: string;
|
|
372
|
+
notes?: string;
|
|
373
|
+
signature?: string;
|
|
374
|
+
}>;
|
|
375
|
+
/**
|
|
376
|
+
* The URL to join the video conference, if available
|
|
377
|
+
*/
|
|
378
|
+
conferencingUrl?: string;
|
|
379
|
+
/**
|
|
380
|
+
* The calendar user's RSVP status
|
|
381
|
+
*/
|
|
382
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
383
|
+
creator?: {
|
|
384
|
+
/**
|
|
385
|
+
* Whether this entry represents the calendar user
|
|
386
|
+
*/
|
|
387
|
+
isSelf: boolean;
|
|
388
|
+
displayName?: string;
|
|
389
|
+
email?: string;
|
|
390
|
+
};
|
|
391
|
+
organizer?: {
|
|
392
|
+
/**
|
|
393
|
+
* Whether this entry represents the calendar user
|
|
394
|
+
*/
|
|
395
|
+
isSelf: boolean;
|
|
396
|
+
displayName?: string;
|
|
397
|
+
email?: string;
|
|
398
|
+
};
|
|
399
|
+
attendees?: Array<{
|
|
400
|
+
/**
|
|
401
|
+
* Whether this entry represents the calendar user
|
|
402
|
+
*/
|
|
403
|
+
isSelf: boolean;
|
|
404
|
+
displayName?: string;
|
|
405
|
+
email?: string;
|
|
406
|
+
isOptional: boolean;
|
|
407
|
+
isOrganizer?: boolean;
|
|
408
|
+
/**
|
|
409
|
+
* The calendar user's RSVP status
|
|
410
|
+
*/
|
|
411
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
412
|
+
}>;
|
|
413
|
+
resources?: Array<{
|
|
414
|
+
displayName?: string;
|
|
415
|
+
email?: string;
|
|
416
|
+
isOptional: boolean;
|
|
417
|
+
/**
|
|
418
|
+
* The calendar user's RSVP status
|
|
419
|
+
*/
|
|
420
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
421
|
+
}>;
|
|
422
|
+
colors?: {
|
|
423
|
+
foreground?: string;
|
|
424
|
+
background?: string;
|
|
425
|
+
};
|
|
426
|
+
attachments?: Array<{
|
|
427
|
+
url: string;
|
|
428
|
+
mimeType?: string;
|
|
429
|
+
title?: string;
|
|
430
|
+
notionWorkspaceId?: string;
|
|
431
|
+
}>;
|
|
432
|
+
}>;
|
|
433
|
+
}>;
|
|
434
|
+
}>;
|
|
435
|
+
errors?: Array<{
|
|
436
|
+
/**
|
|
437
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
438
|
+
*/
|
|
439
|
+
identifier: string;
|
|
440
|
+
/**
|
|
441
|
+
* Description of the error that occurred
|
|
442
|
+
*/
|
|
443
|
+
errorMessage: string;
|
|
444
|
+
}>;
|
|
445
|
+
};
|
|
446
|
+
/**
|
|
447
|
+
* Script input for the "Create a scheduling link" effect (`calendar.createSchedulingLink`),
|
|
448
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
449
|
+
*
|
|
450
|
+
* Create a scheduling link (booking page) so others can book time on the user's calendar during specified availability windows.
|
|
451
|
+
*/
|
|
452
|
+
export type CreateSchedulingLinkScriptInput = {
|
|
453
|
+
/**
|
|
454
|
+
* Calendar where meetings booked through this scheduling link will be created
|
|
455
|
+
*/
|
|
456
|
+
bookingCalendar: {
|
|
457
|
+
/**
|
|
458
|
+
* Account that owns the booking calendar.
|
|
459
|
+
*/
|
|
460
|
+
accountId: string;
|
|
461
|
+
/**
|
|
462
|
+
* Booking calendar identifier within the account.
|
|
463
|
+
*/
|
|
464
|
+
calendarId: string;
|
|
465
|
+
};
|
|
466
|
+
/**
|
|
467
|
+
* Calendars to check for conflicts when determining available time slots. Events on these calendars will block booking availability.
|
|
468
|
+
*/
|
|
469
|
+
conflictCalendars?: Array<{
|
|
470
|
+
/**
|
|
471
|
+
* Account that owns the conflict calendar.
|
|
472
|
+
*/
|
|
473
|
+
accountId: string;
|
|
474
|
+
/**
|
|
475
|
+
* Conflict calendar identifier within the account.
|
|
476
|
+
*/
|
|
477
|
+
calendarId: string;
|
|
478
|
+
}>;
|
|
479
|
+
/**
|
|
480
|
+
* Title of the scheduling link, shown on the booking page
|
|
481
|
+
*/
|
|
482
|
+
title?: string;
|
|
483
|
+
/**
|
|
484
|
+
* Description shown to invitees on the booking page
|
|
485
|
+
*/
|
|
486
|
+
description?: string;
|
|
487
|
+
/**
|
|
488
|
+
* Meeting duration in minutes
|
|
489
|
+
*/
|
|
490
|
+
duration: number;
|
|
491
|
+
/**
|
|
492
|
+
* Time windows when the user is available for bookings
|
|
493
|
+
*/
|
|
494
|
+
timeRanges: Array<{
|
|
495
|
+
/**
|
|
496
|
+
* Start of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T09:00:00-04:00'
|
|
497
|
+
*/
|
|
498
|
+
startDate: string;
|
|
499
|
+
/**
|
|
500
|
+
* End of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T17:00:00-04:00'
|
|
501
|
+
*/
|
|
502
|
+
endDate: string;
|
|
503
|
+
/**
|
|
504
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
505
|
+
*/
|
|
506
|
+
recurrence?: Array<string>;
|
|
507
|
+
}>;
|
|
508
|
+
/**
|
|
509
|
+
* Type of scheduling link: 'singleUse' (one booking only), 'multiUse' (multiple bookings), 'recurring' (repeating weekly availability). Inferred from timeRanges if not provided.
|
|
510
|
+
*/
|
|
511
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
512
|
+
/**
|
|
513
|
+
* Custom URL slug for the scheduling link (letters, numbers, hyphens, underscores only). Must be between 1 and 32 characters. Auto-generated if not provided.
|
|
514
|
+
*/
|
|
515
|
+
alias?: string;
|
|
516
|
+
/**
|
|
517
|
+
* If true (default), uses the user's default video conferencing provider
|
|
518
|
+
*/
|
|
519
|
+
useDefaultConferencing?: boolean;
|
|
520
|
+
/**
|
|
521
|
+
* Minimum notice period in minutes before a meeting can be booked
|
|
522
|
+
*/
|
|
523
|
+
minLeadTime?: number;
|
|
524
|
+
/**
|
|
525
|
+
* Maximum advance booking window in minutes (how far into the future meetings can be booked)
|
|
526
|
+
*/
|
|
527
|
+
maxLeadTime?: number;
|
|
528
|
+
/**
|
|
529
|
+
* ISO 8601 date-time when this scheduling link expires and can no longer accept bookings
|
|
530
|
+
*/
|
|
531
|
+
expirationDate?: string;
|
|
532
|
+
};
|
|
533
|
+
/**
|
|
534
|
+
* Canonical Tool Core output for the "Create a scheduling link" effect (`calendar.createSchedulingLink`).
|
|
535
|
+
* This is the definition's output schema; the effect's script surface may
|
|
536
|
+
* re-encode it before returning.
|
|
537
|
+
*/
|
|
538
|
+
export type CreateSchedulingLinkScriptOutput = {
|
|
539
|
+
/**
|
|
540
|
+
* The created scheduling link
|
|
541
|
+
*/
|
|
542
|
+
schedulingLink?: {
|
|
543
|
+
/**
|
|
544
|
+
* Unique ID of the created scheduling link
|
|
545
|
+
*/
|
|
546
|
+
id: string;
|
|
547
|
+
/**
|
|
548
|
+
* Short ID used in the scheduling link URL
|
|
549
|
+
*/
|
|
550
|
+
shortId: string;
|
|
551
|
+
/**
|
|
552
|
+
* Current booking calendar for this scheduling link
|
|
553
|
+
*/
|
|
554
|
+
bookingCalendarRef: {
|
|
555
|
+
accountId: string;
|
|
556
|
+
calendarId: string;
|
|
557
|
+
};
|
|
558
|
+
/**
|
|
559
|
+
* Custom URL slug for the scheduling link
|
|
560
|
+
*/
|
|
561
|
+
alias?: string;
|
|
562
|
+
/**
|
|
563
|
+
* The resolved type of the link
|
|
564
|
+
*/
|
|
565
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
566
|
+
/**
|
|
567
|
+
* Status of the scheduling link
|
|
568
|
+
*/
|
|
569
|
+
status: string;
|
|
570
|
+
title?: string;
|
|
571
|
+
description?: string;
|
|
572
|
+
duration?: number;
|
|
573
|
+
/**
|
|
574
|
+
* Full URL where invitees can book a meeting
|
|
575
|
+
*/
|
|
576
|
+
schedulingLinkUrl?: string;
|
|
577
|
+
timeRanges: Array<{
|
|
578
|
+
/**
|
|
579
|
+
* Start of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T09:00:00-04:00'
|
|
580
|
+
*/
|
|
581
|
+
startDate: string;
|
|
582
|
+
/**
|
|
583
|
+
* End of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T17:00:00-04:00'
|
|
584
|
+
*/
|
|
585
|
+
endDate: string;
|
|
586
|
+
/**
|
|
587
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
588
|
+
*/
|
|
589
|
+
recurrence?: Array<string>;
|
|
590
|
+
/**
|
|
591
|
+
* Unique identifier for this time range
|
|
592
|
+
*/
|
|
593
|
+
id: string;
|
|
594
|
+
}>;
|
|
595
|
+
};
|
|
596
|
+
errors?: Array<{
|
|
597
|
+
/**
|
|
598
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
599
|
+
*/
|
|
600
|
+
identifier: string;
|
|
601
|
+
/**
|
|
602
|
+
* Description of the error that occurred
|
|
603
|
+
*/
|
|
604
|
+
errorMessage: string;
|
|
605
|
+
}>;
|
|
606
|
+
};
|
|
607
|
+
/**
|
|
608
|
+
* Script input for the "Delete scheduling links." effect (`calendar.deleteSchedulingLinks`),
|
|
609
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
610
|
+
*
|
|
611
|
+
* Delete scheduling links so they can no longer be booked. Existing meetings created from the links are not canceled.
|
|
612
|
+
*/
|
|
613
|
+
export type DeleteSchedulingLinksScriptInput = {
|
|
614
|
+
/**
|
|
615
|
+
* Scheduling links to delete
|
|
616
|
+
*/
|
|
617
|
+
schedulingLinks: Array<{
|
|
618
|
+
/**
|
|
619
|
+
* ID of the scheduling link to delete
|
|
620
|
+
*/
|
|
621
|
+
schedulingLinkId: string;
|
|
622
|
+
/**
|
|
623
|
+
* Current booking calendar for this scheduling link. Used to verify the link's existing calendar before deleting it.
|
|
624
|
+
*/
|
|
625
|
+
bookingCalendarRef: {
|
|
626
|
+
/**
|
|
627
|
+
* Account that owns the current booking calendar.
|
|
628
|
+
*/
|
|
629
|
+
accountId: string;
|
|
630
|
+
/**
|
|
631
|
+
* Current booking calendar identifier within the account.
|
|
632
|
+
*/
|
|
633
|
+
calendarId: string;
|
|
634
|
+
};
|
|
635
|
+
}>;
|
|
636
|
+
};
|
|
637
|
+
/**
|
|
638
|
+
* Canonical Tool Core output for the "Delete scheduling links." effect (`calendar.deleteSchedulingLinks`).
|
|
639
|
+
* This is the definition's output schema; the effect's script surface may
|
|
640
|
+
* re-encode it before returning.
|
|
641
|
+
*/
|
|
642
|
+
export type DeleteSchedulingLinksScriptOutput = {
|
|
643
|
+
/**
|
|
644
|
+
* IDs of the scheduling links that were deleted
|
|
645
|
+
*/
|
|
646
|
+
deletedSchedulingLinkIds: Array<string>;
|
|
647
|
+
errors?: Array<{
|
|
648
|
+
/**
|
|
649
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
650
|
+
*/
|
|
651
|
+
identifier: string;
|
|
652
|
+
/**
|
|
653
|
+
* Description of the error that occurred
|
|
654
|
+
*/
|
|
655
|
+
errorMessage: string;
|
|
656
|
+
}>;
|
|
657
|
+
};
|
|
658
|
+
/**
|
|
659
|
+
* Script input for the "List available calendar resources (such as conference rooms)." effect (`calendar.listCalendarResources`),
|
|
660
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
661
|
+
*
|
|
662
|
+
* Search for resources (often conference rooms) and check their availability for specific time slots.
|
|
663
|
+
* Resources are scoped to a single account; pass `calendar` to target the account of the event you intend to attach the rooms to.
|
|
664
|
+
* Only works with Google Workspace accounts that have admin permissions to view calendar resources.
|
|
665
|
+
* Use this tool to find rooms when creating in-person meetings.
|
|
666
|
+
* Pass multiple meeting times in timeSlots to get available rooms for each time slot independently.
|
|
667
|
+
*/
|
|
668
|
+
export type ListCalendarResourcesScriptInput = {
|
|
669
|
+
/**
|
|
670
|
+
* Specific time slots to check. Returns available resources for each time slot independently.
|
|
671
|
+
*/
|
|
672
|
+
timeSlots: Array<{
|
|
673
|
+
/**
|
|
674
|
+
* Start of the time slot to check, as an ISO 8601 date-time.
|
|
675
|
+
*/
|
|
676
|
+
startAt: string;
|
|
677
|
+
/**
|
|
678
|
+
* End of the time slot to check, as an ISO 8601 date-time.
|
|
679
|
+
*/
|
|
680
|
+
endAt: string;
|
|
681
|
+
}>;
|
|
682
|
+
/**
|
|
683
|
+
* Minimum room capacity (number of people). MUST include the meeting organizer/user themselves in the count. For a 1-on-1, pass 2. For a meeting with N invitees besides the user, pass N+1.
|
|
684
|
+
*/
|
|
685
|
+
minCapacity: number;
|
|
686
|
+
/**
|
|
687
|
+
* Maximum number of resources to return per time slot (default: 20, max: 40)
|
|
688
|
+
*/
|
|
689
|
+
maxCount?: number;
|
|
690
|
+
/**
|
|
691
|
+
* If true, do not narrow rooms to the user's working-location building for this day. Set this when the user is explicitly asking about rooms in a different office (e.g. for a visiting team).
|
|
692
|
+
*/
|
|
693
|
+
ignoreWorkingLocation?: boolean;
|
|
694
|
+
/**
|
|
695
|
+
* Date-times of returned events will be expressed in this time-zone
|
|
696
|
+
*/
|
|
697
|
+
timeZone: string;
|
|
698
|
+
/**
|
|
699
|
+
* Calendar of the event the rooms will be attached to. Rooms are scoped to a single account.
|
|
700
|
+
*/
|
|
701
|
+
calendar?: {
|
|
702
|
+
/**
|
|
703
|
+
* Account that owns the target calendar.
|
|
704
|
+
*/
|
|
705
|
+
accountId: string;
|
|
706
|
+
/**
|
|
707
|
+
* Target calendar identifier within the account.
|
|
708
|
+
*/
|
|
709
|
+
calendarId: string;
|
|
710
|
+
};
|
|
711
|
+
};
|
|
712
|
+
/**
|
|
713
|
+
* Canonical Tool Core output for the "List available calendar resources (such as conference rooms)." effect (`calendar.listCalendarResources`).
|
|
714
|
+
* This is the definition's output schema; the effect's script surface may
|
|
715
|
+
* re-encode it before returning.
|
|
716
|
+
*/
|
|
717
|
+
export type ListCalendarResourcesScriptOutput = {
|
|
718
|
+
/**
|
|
719
|
+
* Results for each requested time slot, with available rooms sorted by capacity
|
|
720
|
+
*/
|
|
721
|
+
resultsBySlot: Array<{
|
|
722
|
+
/**
|
|
723
|
+
* The time slot being checked
|
|
724
|
+
*/
|
|
725
|
+
timeSlot: {
|
|
726
|
+
startAt: string;
|
|
727
|
+
endAt: string;
|
|
728
|
+
};
|
|
729
|
+
/**
|
|
730
|
+
* Available conference rooms for this time slot, sorted by increasing capacity (smallest rooms first)
|
|
731
|
+
*/
|
|
732
|
+
availableResources: Array<{
|
|
733
|
+
/**
|
|
734
|
+
* Use this as the email when adding rooms to events
|
|
735
|
+
*/
|
|
736
|
+
resourceEmail: string;
|
|
737
|
+
/**
|
|
738
|
+
* Display name of the conference room
|
|
739
|
+
*/
|
|
740
|
+
resourceName: string;
|
|
741
|
+
/**
|
|
742
|
+
* Building information
|
|
743
|
+
*/
|
|
744
|
+
building?: {
|
|
745
|
+
buildingId: string;
|
|
746
|
+
buildingName?: string;
|
|
747
|
+
};
|
|
748
|
+
/**
|
|
749
|
+
* Maximum number of people the room can accommodate
|
|
750
|
+
*/
|
|
751
|
+
capacity?: number;
|
|
752
|
+
/**
|
|
753
|
+
* Floor location
|
|
754
|
+
*/
|
|
755
|
+
floor?: string;
|
|
756
|
+
/**
|
|
757
|
+
* Room description
|
|
758
|
+
*/
|
|
759
|
+
description?: string;
|
|
760
|
+
}>;
|
|
761
|
+
}>;
|
|
762
|
+
};
|
|
763
|
+
/**
|
|
764
|
+
* Script input for the "Fetch list of calendars of the user." effect (`calendar.listCalendars`),
|
|
765
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
766
|
+
*
|
|
767
|
+
* List of calendars grouped by account.
|
|
768
|
+
*/
|
|
769
|
+
export type ListCalendarsScriptInput = {
|
|
770
|
+
/**
|
|
771
|
+
* Return only accounts linked to these email addresses. Useful to get calendars from a work account only for example. Do not specify if you are interested in getting the whole picture of someone's agenda across work and personal accounts.
|
|
772
|
+
*/
|
|
773
|
+
onlyAccountEmails?: Array<string>;
|
|
774
|
+
};
|
|
775
|
+
/**
|
|
776
|
+
* Canonical Tool Core output for the "Fetch list of calendars of the user." effect (`calendar.listCalendars`).
|
|
777
|
+
* This is the definition's output schema; the effect's script surface may
|
|
778
|
+
* re-encode it before returning.
|
|
779
|
+
*/
|
|
780
|
+
export type ListCalendarsScriptOutput = {
|
|
781
|
+
accounts: Array<{
|
|
782
|
+
accountId: string;
|
|
783
|
+
/**
|
|
784
|
+
* Google, Apple iCloud, Outlook, etc.
|
|
785
|
+
*/
|
|
786
|
+
providerName: string;
|
|
787
|
+
/**
|
|
788
|
+
* The user email associated with this account. Useful to know if this account and its data should be used depending on context.
|
|
789
|
+
*/
|
|
790
|
+
email?: string;
|
|
791
|
+
/**
|
|
792
|
+
* Whether this account is work-related or a personal account, if we know this information.
|
|
793
|
+
*/
|
|
794
|
+
category?: "work" | "personal";
|
|
795
|
+
capabilities: {
|
|
796
|
+
/**
|
|
797
|
+
* Does this account expose any calendars?
|
|
798
|
+
*/
|
|
799
|
+
readCalendars: boolean;
|
|
800
|
+
/**
|
|
801
|
+
* Can we read calendar events from calendars of this account?
|
|
802
|
+
*/
|
|
803
|
+
readEvents: boolean;
|
|
804
|
+
/**
|
|
805
|
+
* Can we write events in some calendars of this account? Calendars themselves might have their own set of restrictions.
|
|
806
|
+
*/
|
|
807
|
+
writeEvents: boolean;
|
|
808
|
+
/**
|
|
809
|
+
* Can we use a text search query to find events in the calendars of this account?
|
|
810
|
+
*/
|
|
811
|
+
searchEvents: boolean;
|
|
812
|
+
/**
|
|
813
|
+
* Does this account expose contacts?
|
|
814
|
+
*/
|
|
815
|
+
readContacts: boolean;
|
|
816
|
+
};
|
|
817
|
+
/**
|
|
818
|
+
* User can access the events of co-workers having an email address with one of these domains
|
|
819
|
+
*/
|
|
820
|
+
coworkersEmailDomains?: Array<string>;
|
|
821
|
+
calendars: Array<{
|
|
822
|
+
accountId: string;
|
|
823
|
+
calendarId: string;
|
|
824
|
+
name: string;
|
|
825
|
+
description?: string;
|
|
826
|
+
colors?: {
|
|
827
|
+
foreground?: string;
|
|
828
|
+
background?: string;
|
|
829
|
+
};
|
|
830
|
+
isPrimary: boolean;
|
|
831
|
+
/**
|
|
832
|
+
* Is this calendar read-only or can the user create/edit/delete events?
|
|
833
|
+
*/
|
|
834
|
+
isReadOnly: boolean;
|
|
835
|
+
/**
|
|
836
|
+
* The contents of a calendar appear in the user calendar app only if that calendar is selected.
|
|
837
|
+
* Calendars that are not selected might be useful to get lower-signal events, but probably not to create events as it might not be visible to the user.
|
|
838
|
+
*/
|
|
839
|
+
isSelected: boolean;
|
|
840
|
+
/**
|
|
841
|
+
* A hidden calendar is a calendar the user has access to but decided to hide completely from their calendar app.
|
|
842
|
+
* Hidden calendars might be useful to know what you might have access to, but keep in mind the user hid them and is most likely not aware of their content.
|
|
843
|
+
*/
|
|
844
|
+
isHidden: boolean;
|
|
845
|
+
/**
|
|
846
|
+
* The email address of the owner of this calendar.
|
|
847
|
+
*/
|
|
848
|
+
ownerEmail?: string;
|
|
849
|
+
}>;
|
|
850
|
+
}>;
|
|
851
|
+
};
|
|
852
|
+
/**
|
|
853
|
+
* Script input for the "List contacts" effect (`calendar.listContacts`),
|
|
854
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
855
|
+
*
|
|
856
|
+
* List the user's contacts from different accounts. Returns contact information including email addresses, names, phone numbers, and profile photos.
|
|
857
|
+
*/
|
|
858
|
+
export type ListContactsScriptInput = {
|
|
859
|
+
/**
|
|
860
|
+
* Optional search queries to filter contacts by name or email. Results matching any query are included.
|
|
861
|
+
*/
|
|
862
|
+
queries?: Array<string>;
|
|
863
|
+
};
|
|
864
|
+
/**
|
|
865
|
+
* Canonical Tool Core output for the "List contacts" effect (`calendar.listContacts`).
|
|
866
|
+
* This is the definition's output schema; the effect's script surface may
|
|
867
|
+
* re-encode it before returning.
|
|
868
|
+
*/
|
|
869
|
+
export type ListContactsScriptOutput = {
|
|
870
|
+
accounts: Array<{
|
|
871
|
+
accountId: string;
|
|
872
|
+
/**
|
|
873
|
+
* Google, Apple iCloud, Outlook, etc.
|
|
874
|
+
*/
|
|
875
|
+
providerName: string;
|
|
876
|
+
/**
|
|
877
|
+
* The user email associated with this account. Useful to know if this account and its data should be used depending on context.
|
|
878
|
+
*/
|
|
879
|
+
email?: string;
|
|
880
|
+
/**
|
|
881
|
+
* Whether this account is work-related or a personal account, if we know this information.
|
|
882
|
+
*/
|
|
883
|
+
category?: "work" | "personal";
|
|
884
|
+
capabilities: {
|
|
885
|
+
/**
|
|
886
|
+
* Does this account expose any calendars?
|
|
887
|
+
*/
|
|
888
|
+
readCalendars: boolean;
|
|
889
|
+
/**
|
|
890
|
+
* Can we read calendar events from calendars of this account?
|
|
891
|
+
*/
|
|
892
|
+
readEvents: boolean;
|
|
893
|
+
/**
|
|
894
|
+
* Can we write events in some calendars of this account? Calendars themselves might have their own set of restrictions.
|
|
895
|
+
*/
|
|
896
|
+
writeEvents: boolean;
|
|
897
|
+
/**
|
|
898
|
+
* Can we use a text search query to find events in the calendars of this account?
|
|
899
|
+
*/
|
|
900
|
+
searchEvents: boolean;
|
|
901
|
+
/**
|
|
902
|
+
* Does this account expose contacts?
|
|
903
|
+
*/
|
|
904
|
+
readContacts: boolean;
|
|
905
|
+
};
|
|
906
|
+
/**
|
|
907
|
+
* User can access the events of co-workers having an email address with one of these domains
|
|
908
|
+
*/
|
|
909
|
+
coworkersEmailDomains?: Array<string>;
|
|
910
|
+
contacts: Array<{
|
|
911
|
+
/**
|
|
912
|
+
* Unique identifier for the contact
|
|
913
|
+
*/
|
|
914
|
+
id: string;
|
|
915
|
+
/**
|
|
916
|
+
* Primary email address of the contact
|
|
917
|
+
*/
|
|
918
|
+
email: string;
|
|
919
|
+
/**
|
|
920
|
+
* Additional email addresses for this contact
|
|
921
|
+
*/
|
|
922
|
+
alternateEmails?: Array<string>;
|
|
923
|
+
/**
|
|
924
|
+
* Display name of the contact
|
|
925
|
+
*/
|
|
926
|
+
displayName?: string;
|
|
927
|
+
/**
|
|
928
|
+
* Phone numbers associated with this contact
|
|
929
|
+
*/
|
|
930
|
+
phoneNumbers?: Array<{
|
|
931
|
+
/**
|
|
932
|
+
* The type of phone number (e.g., home, work, mobile)
|
|
933
|
+
*/
|
|
934
|
+
type?: string;
|
|
935
|
+
/**
|
|
936
|
+
* The phone number value
|
|
937
|
+
*/
|
|
938
|
+
value: string;
|
|
939
|
+
}>;
|
|
940
|
+
/**
|
|
941
|
+
* URL to the contact's profile photo
|
|
942
|
+
*/
|
|
943
|
+
photoUrl?: string;
|
|
944
|
+
}>;
|
|
945
|
+
}>;
|
|
946
|
+
};
|
|
947
|
+
/**
|
|
948
|
+
* Script input for the "View coworkers' scheduled events." effect (`calendar.listCoworkersEvents`),
|
|
949
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
950
|
+
*
|
|
951
|
+
* Retrieves the detailed calendar events for specific coworkers within a time range.
|
|
952
|
+
* Use this to see what meetings or events people have scheduled, including event titles, times, and details.
|
|
953
|
+
* Only works for coworkers in the same organization domain.
|
|
954
|
+
*/
|
|
955
|
+
export type ListCoworkersEventsScriptInput = {
|
|
956
|
+
/**
|
|
957
|
+
* Emails of relevant coworkers
|
|
958
|
+
*/
|
|
959
|
+
coworkerEmails: Array<string>;
|
|
960
|
+
/**
|
|
961
|
+
* Start of the time range, as an ISO 8601 date-time.
|
|
962
|
+
*/
|
|
963
|
+
timeMin: string;
|
|
964
|
+
/**
|
|
965
|
+
* End of the time range, as an ISO 8601 date-time.
|
|
966
|
+
*/
|
|
967
|
+
timeMax: string;
|
|
968
|
+
/**
|
|
969
|
+
* Date-times of returned events will be expressed in this time-zone
|
|
970
|
+
*/
|
|
971
|
+
timeZone: string;
|
|
972
|
+
};
|
|
973
|
+
/**
|
|
974
|
+
* Canonical Tool Core output for the "View coworkers' scheduled events." effect (`calendar.listCoworkersEvents`).
|
|
975
|
+
* This is the definition's output schema; the effect's script surface may
|
|
976
|
+
* re-encode it before returning.
|
|
977
|
+
*/
|
|
978
|
+
export type ListCoworkersEventsScriptOutput = {
|
|
979
|
+
/**
|
|
980
|
+
* List of coworkers with their scheduled calendar events. Some coworkers may be excluded if their calendar could not be accessed.
|
|
981
|
+
*/
|
|
982
|
+
coworkers: Array<{
|
|
983
|
+
accountId: string;
|
|
984
|
+
coworkerEmail: string;
|
|
985
|
+
profile?: {
|
|
986
|
+
displayName?: string;
|
|
987
|
+
email?: string;
|
|
988
|
+
photoUrl?: string;
|
|
989
|
+
};
|
|
990
|
+
events: Array<{
|
|
991
|
+
calendar: {
|
|
992
|
+
accountId: string;
|
|
993
|
+
calendarId: string;
|
|
994
|
+
};
|
|
995
|
+
eventId: string;
|
|
996
|
+
summary: string;
|
|
997
|
+
description?: string;
|
|
998
|
+
/**
|
|
999
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
1000
|
+
*/
|
|
1001
|
+
location?: string;
|
|
1002
|
+
/**
|
|
1003
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1004
|
+
*/
|
|
1005
|
+
recurrenceRules?: Array<string>;
|
|
1006
|
+
/**
|
|
1007
|
+
* The data provider this event belongs to
|
|
1008
|
+
*/
|
|
1009
|
+
provider?: "google" | "notion" | "icloud" | "outlook";
|
|
1010
|
+
/**
|
|
1011
|
+
* The URL to view the event in the Calendar app.
|
|
1012
|
+
*/
|
|
1013
|
+
webUrl: string;
|
|
1014
|
+
/**
|
|
1015
|
+
* When the event is happening
|
|
1016
|
+
*/
|
|
1017
|
+
period: {
|
|
1018
|
+
type: "DATE";
|
|
1019
|
+
start: {
|
|
1020
|
+
/**
|
|
1021
|
+
* Date in ISO 8601 format (no time)
|
|
1022
|
+
*/
|
|
1023
|
+
date: string;
|
|
1024
|
+
};
|
|
1025
|
+
end: {
|
|
1026
|
+
/**
|
|
1027
|
+
* Date in ISO 8601 format (no time)
|
|
1028
|
+
*/
|
|
1029
|
+
date: string;
|
|
1030
|
+
};
|
|
1031
|
+
} | {
|
|
1032
|
+
type: "DATE_TIME";
|
|
1033
|
+
start: {
|
|
1034
|
+
/**
|
|
1035
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1036
|
+
*/
|
|
1037
|
+
dateTime: string;
|
|
1038
|
+
timeZone?: string;
|
|
1039
|
+
};
|
|
1040
|
+
end: {
|
|
1041
|
+
/**
|
|
1042
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1043
|
+
*/
|
|
1044
|
+
dateTime: string;
|
|
1045
|
+
timeZone?: string;
|
|
1046
|
+
};
|
|
1047
|
+
};
|
|
1048
|
+
/**
|
|
1049
|
+
* Whether it's part of a recurring event series
|
|
1050
|
+
*/
|
|
1051
|
+
isRecurring: boolean;
|
|
1052
|
+
/**
|
|
1053
|
+
* If true, the event does not block time on the calendar. This is equivalent to setting `Show me as to Available` in the Calendar UI.
|
|
1054
|
+
*/
|
|
1055
|
+
isTransparent: boolean;
|
|
1056
|
+
/**
|
|
1057
|
+
* Is the event an auto-blocking event created from another event? Used to create blocked events on a calendar from events on another calendar. You can ignore auto-blocked events if there are events happening at the exact same time on other calendars.
|
|
1058
|
+
*/
|
|
1059
|
+
isAutoBlock: boolean;
|
|
1060
|
+
/**
|
|
1061
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
1062
|
+
*/
|
|
1063
|
+
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
1064
|
+
/**
|
|
1065
|
+
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
1066
|
+
*/
|
|
1067
|
+
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
1068
|
+
/**
|
|
1069
|
+
* Whether it's a meeting, aka an event with attendees listed
|
|
1070
|
+
*/
|
|
1071
|
+
isMeeting: boolean;
|
|
1072
|
+
conferencingEntryPoints?: Array<{
|
|
1073
|
+
uri: string;
|
|
1074
|
+
accessCode?: string;
|
|
1075
|
+
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
1076
|
+
label?: string;
|
|
1077
|
+
meetingCode?: string;
|
|
1078
|
+
passcode?: string;
|
|
1079
|
+
password?: string;
|
|
1080
|
+
pin?: string;
|
|
1081
|
+
notes?: string;
|
|
1082
|
+
signature?: string;
|
|
1083
|
+
}>;
|
|
1084
|
+
/**
|
|
1085
|
+
* The URL to join the video conference, if available
|
|
1086
|
+
*/
|
|
1087
|
+
conferencingUrl?: string;
|
|
1088
|
+
/**
|
|
1089
|
+
* The calendar user's RSVP status
|
|
1090
|
+
*/
|
|
1091
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1092
|
+
creator?: {
|
|
1093
|
+
/**
|
|
1094
|
+
* Whether this entry represents the calendar user
|
|
1095
|
+
*/
|
|
1096
|
+
isSelf: boolean;
|
|
1097
|
+
displayName?: string;
|
|
1098
|
+
email?: string;
|
|
1099
|
+
};
|
|
1100
|
+
organizer?: {
|
|
1101
|
+
/**
|
|
1102
|
+
* Whether this entry represents the calendar user
|
|
1103
|
+
*/
|
|
1104
|
+
isSelf: boolean;
|
|
1105
|
+
displayName?: string;
|
|
1106
|
+
email?: string;
|
|
1107
|
+
};
|
|
1108
|
+
attendees?: Array<{
|
|
1109
|
+
/**
|
|
1110
|
+
* Whether this entry represents the calendar user
|
|
1111
|
+
*/
|
|
1112
|
+
isSelf: boolean;
|
|
1113
|
+
displayName?: string;
|
|
1114
|
+
email?: string;
|
|
1115
|
+
isOptional: boolean;
|
|
1116
|
+
isOrganizer?: boolean;
|
|
1117
|
+
/**
|
|
1118
|
+
* The calendar user's RSVP status
|
|
1119
|
+
*/
|
|
1120
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1121
|
+
}>;
|
|
1122
|
+
resources?: Array<{
|
|
1123
|
+
displayName?: string;
|
|
1124
|
+
email?: string;
|
|
1125
|
+
isOptional: boolean;
|
|
1126
|
+
/**
|
|
1127
|
+
* The calendar user's RSVP status
|
|
1128
|
+
*/
|
|
1129
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1130
|
+
}>;
|
|
1131
|
+
colors?: {
|
|
1132
|
+
foreground?: string;
|
|
1133
|
+
background?: string;
|
|
1134
|
+
};
|
|
1135
|
+
attachments?: Array<{
|
|
1136
|
+
url: string;
|
|
1137
|
+
mimeType?: string;
|
|
1138
|
+
title?: string;
|
|
1139
|
+
notionWorkspaceId?: string;
|
|
1140
|
+
}>;
|
|
1141
|
+
}>;
|
|
1142
|
+
}>;
|
|
1143
|
+
errors?: Array<{
|
|
1144
|
+
/**
|
|
1145
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
1146
|
+
*/
|
|
1147
|
+
identifier: string;
|
|
1148
|
+
/**
|
|
1149
|
+
* Description of the error that occurred
|
|
1150
|
+
*/
|
|
1151
|
+
errorMessage: string;
|
|
1152
|
+
}>;
|
|
1153
|
+
};
|
|
1154
|
+
/**
|
|
1155
|
+
* Script input for the "List the user's events from different calendars." effect (`calendar.listEvents`),
|
|
1156
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
1157
|
+
*
|
|
1158
|
+
* Date-times will be expressed in the time-zone passed as parameter.
|
|
1159
|
+
*/
|
|
1160
|
+
export type ListEventsScriptInput = {
|
|
1161
|
+
/**
|
|
1162
|
+
* Start of the time range, as an ISO 8601 date-time.
|
|
1163
|
+
*/
|
|
1164
|
+
timeMin: string;
|
|
1165
|
+
/**
|
|
1166
|
+
* End of the time range, as an ISO 8601 date-time.
|
|
1167
|
+
*/
|
|
1168
|
+
timeMax: string;
|
|
1169
|
+
/**
|
|
1170
|
+
* Date-times of returned events will be expressed in this time-zone
|
|
1171
|
+
*/
|
|
1172
|
+
timeZone: string;
|
|
1173
|
+
/**
|
|
1174
|
+
* Whether to include event invites the user has declined
|
|
1175
|
+
*/
|
|
1176
|
+
includeDeclinedInvites?: boolean | null;
|
|
1177
|
+
};
|
|
1178
|
+
/**
|
|
1179
|
+
* Canonical Tool Core output for the "List the user's events from different calendars." effect (`calendar.listEvents`).
|
|
1180
|
+
* This is the definition's output schema; the effect's script surface may
|
|
1181
|
+
* re-encode it before returning.
|
|
1182
|
+
*/
|
|
1183
|
+
export type ListEventsScriptOutput = {
|
|
1184
|
+
accounts: Array<{
|
|
1185
|
+
accountId: string;
|
|
1186
|
+
/**
|
|
1187
|
+
* Google, Apple iCloud, Outlook, etc.
|
|
1188
|
+
*/
|
|
1189
|
+
providerName: string;
|
|
1190
|
+
/**
|
|
1191
|
+
* The user email associated with this account. Useful to know if this account and its data should be used depending on context.
|
|
1192
|
+
*/
|
|
1193
|
+
email?: string;
|
|
1194
|
+
/**
|
|
1195
|
+
* Whether this account is work-related or a personal account, if we know this information.
|
|
1196
|
+
*/
|
|
1197
|
+
category?: "work" | "personal";
|
|
1198
|
+
capabilities: {
|
|
1199
|
+
/**
|
|
1200
|
+
* Does this account expose any calendars?
|
|
1201
|
+
*/
|
|
1202
|
+
readCalendars: boolean;
|
|
1203
|
+
/**
|
|
1204
|
+
* Can we read calendar events from calendars of this account?
|
|
1205
|
+
*/
|
|
1206
|
+
readEvents: boolean;
|
|
1207
|
+
/**
|
|
1208
|
+
* Can we write events in some calendars of this account? Calendars themselves might have their own set of restrictions.
|
|
1209
|
+
*/
|
|
1210
|
+
writeEvents: boolean;
|
|
1211
|
+
/**
|
|
1212
|
+
* Can we use a text search query to find events in the calendars of this account?
|
|
1213
|
+
*/
|
|
1214
|
+
searchEvents: boolean;
|
|
1215
|
+
/**
|
|
1216
|
+
* Does this account expose contacts?
|
|
1217
|
+
*/
|
|
1218
|
+
readContacts: boolean;
|
|
1219
|
+
};
|
|
1220
|
+
/**
|
|
1221
|
+
* User can access the events of co-workers having an email address with one of these domains
|
|
1222
|
+
*/
|
|
1223
|
+
coworkersEmailDomains?: Array<string>;
|
|
1224
|
+
calendars: Array<{
|
|
1225
|
+
accountId: string;
|
|
1226
|
+
calendarId: string;
|
|
1227
|
+
name: string;
|
|
1228
|
+
description?: string;
|
|
1229
|
+
colors?: {
|
|
1230
|
+
foreground?: string;
|
|
1231
|
+
background?: string;
|
|
1232
|
+
};
|
|
1233
|
+
isPrimary: boolean;
|
|
1234
|
+
/**
|
|
1235
|
+
* Is this calendar read-only or can the user create/edit/delete events?
|
|
1236
|
+
*/
|
|
1237
|
+
isReadOnly: boolean;
|
|
1238
|
+
/**
|
|
1239
|
+
* The contents of a calendar appear in the user calendar app only if that calendar is selected.
|
|
1240
|
+
* Calendars that are not selected might be useful to get lower-signal events, but probably not to create events as it might not be visible to the user.
|
|
1241
|
+
*/
|
|
1242
|
+
isSelected: boolean;
|
|
1243
|
+
/**
|
|
1244
|
+
* A hidden calendar is a calendar the user has access to but decided to hide completely from their calendar app.
|
|
1245
|
+
* Hidden calendars might be useful to know what you might have access to, but keep in mind the user hid them and is most likely not aware of their content.
|
|
1246
|
+
*/
|
|
1247
|
+
isHidden: boolean;
|
|
1248
|
+
/**
|
|
1249
|
+
* The email address of the owner of this calendar.
|
|
1250
|
+
*/
|
|
1251
|
+
ownerEmail?: string;
|
|
1252
|
+
events: Array<{
|
|
1253
|
+
calendar: {
|
|
1254
|
+
accountId: string;
|
|
1255
|
+
calendarId: string;
|
|
1256
|
+
};
|
|
1257
|
+
eventId: string;
|
|
1258
|
+
summary: string;
|
|
1259
|
+
description?: string;
|
|
1260
|
+
/**
|
|
1261
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
1262
|
+
*/
|
|
1263
|
+
location?: string;
|
|
1264
|
+
/**
|
|
1265
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1266
|
+
*/
|
|
1267
|
+
recurrenceRules?: Array<string>;
|
|
1268
|
+
/**
|
|
1269
|
+
* The data provider this event belongs to
|
|
1270
|
+
*/
|
|
1271
|
+
provider?: "google" | "notion" | "icloud" | "outlook";
|
|
1272
|
+
/**
|
|
1273
|
+
* The URL to view the event in the Calendar app.
|
|
1274
|
+
*/
|
|
1275
|
+
webUrl: string;
|
|
1276
|
+
/**
|
|
1277
|
+
* When the event is happening
|
|
1278
|
+
*/
|
|
1279
|
+
period: {
|
|
1280
|
+
type: "DATE";
|
|
1281
|
+
start: {
|
|
1282
|
+
/**
|
|
1283
|
+
* Date in ISO 8601 format (no time)
|
|
1284
|
+
*/
|
|
1285
|
+
date: string;
|
|
1286
|
+
};
|
|
1287
|
+
end: {
|
|
1288
|
+
/**
|
|
1289
|
+
* Date in ISO 8601 format (no time)
|
|
1290
|
+
*/
|
|
1291
|
+
date: string;
|
|
1292
|
+
};
|
|
1293
|
+
} | {
|
|
1294
|
+
type: "DATE_TIME";
|
|
1295
|
+
start: {
|
|
1296
|
+
/**
|
|
1297
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1298
|
+
*/
|
|
1299
|
+
dateTime: string;
|
|
1300
|
+
timeZone?: string;
|
|
1301
|
+
};
|
|
1302
|
+
end: {
|
|
1303
|
+
/**
|
|
1304
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1305
|
+
*/
|
|
1306
|
+
dateTime: string;
|
|
1307
|
+
timeZone?: string;
|
|
1308
|
+
};
|
|
1309
|
+
};
|
|
1310
|
+
/**
|
|
1311
|
+
* Whether it's part of a recurring event series
|
|
1312
|
+
*/
|
|
1313
|
+
isRecurring: boolean;
|
|
1314
|
+
/**
|
|
1315
|
+
* If true, the event does not block time on the calendar. This is equivalent to setting `Show me as to Available` in the Calendar UI.
|
|
1316
|
+
*/
|
|
1317
|
+
isTransparent: boolean;
|
|
1318
|
+
/**
|
|
1319
|
+
* Is the event an auto-blocking event created from another event? Used to create blocked events on a calendar from events on another calendar. You can ignore auto-blocked events if there are events happening at the exact same time on other calendars.
|
|
1320
|
+
*/
|
|
1321
|
+
isAutoBlock: boolean;
|
|
1322
|
+
/**
|
|
1323
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
1324
|
+
*/
|
|
1325
|
+
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
1326
|
+
/**
|
|
1327
|
+
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
1328
|
+
*/
|
|
1329
|
+
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
1330
|
+
/**
|
|
1331
|
+
* Whether it's a meeting, aka an event with attendees listed
|
|
1332
|
+
*/
|
|
1333
|
+
isMeeting: boolean;
|
|
1334
|
+
conferencingEntryPoints?: Array<{
|
|
1335
|
+
uri: string;
|
|
1336
|
+
accessCode?: string;
|
|
1337
|
+
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
1338
|
+
label?: string;
|
|
1339
|
+
meetingCode?: string;
|
|
1340
|
+
passcode?: string;
|
|
1341
|
+
password?: string;
|
|
1342
|
+
pin?: string;
|
|
1343
|
+
notes?: string;
|
|
1344
|
+
signature?: string;
|
|
1345
|
+
}>;
|
|
279
1346
|
/**
|
|
280
|
-
* The
|
|
1347
|
+
* The URL to join the video conference, if available
|
|
281
1348
|
*/
|
|
282
|
-
|
|
1349
|
+
conferencingUrl?: string;
|
|
1350
|
+
/**
|
|
1351
|
+
* The calendar user's RSVP status
|
|
1352
|
+
*/
|
|
1353
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1354
|
+
creator?: {
|
|
1355
|
+
/**
|
|
1356
|
+
* Whether this entry represents the calendar user
|
|
1357
|
+
*/
|
|
1358
|
+
isSelf: boolean;
|
|
1359
|
+
displayName?: string;
|
|
1360
|
+
email?: string;
|
|
1361
|
+
};
|
|
1362
|
+
organizer?: {
|
|
1363
|
+
/**
|
|
1364
|
+
* Whether this entry represents the calendar user
|
|
1365
|
+
*/
|
|
1366
|
+
isSelf: boolean;
|
|
1367
|
+
displayName?: string;
|
|
1368
|
+
email?: string;
|
|
1369
|
+
};
|
|
1370
|
+
attendees?: Array<{
|
|
1371
|
+
/**
|
|
1372
|
+
* Whether this entry represents the calendar user
|
|
1373
|
+
*/
|
|
1374
|
+
isSelf: boolean;
|
|
1375
|
+
displayName?: string;
|
|
1376
|
+
email?: string;
|
|
1377
|
+
isOptional: boolean;
|
|
1378
|
+
isOrganizer?: boolean;
|
|
1379
|
+
/**
|
|
1380
|
+
* The calendar user's RSVP status
|
|
1381
|
+
*/
|
|
1382
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1383
|
+
}>;
|
|
1384
|
+
resources?: Array<{
|
|
1385
|
+
displayName?: string;
|
|
1386
|
+
email?: string;
|
|
1387
|
+
isOptional: boolean;
|
|
1388
|
+
/**
|
|
1389
|
+
* The calendar user's RSVP status
|
|
1390
|
+
*/
|
|
1391
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1392
|
+
}>;
|
|
1393
|
+
colors?: {
|
|
1394
|
+
foreground?: string;
|
|
1395
|
+
background?: string;
|
|
1396
|
+
};
|
|
1397
|
+
attachments?: Array<{
|
|
1398
|
+
url: string;
|
|
1399
|
+
mimeType?: string;
|
|
1400
|
+
title?: string;
|
|
1401
|
+
notionWorkspaceId?: string;
|
|
1402
|
+
}>;
|
|
283
1403
|
}>;
|
|
1404
|
+
}>;
|
|
1405
|
+
}>;
|
|
1406
|
+
/**
|
|
1407
|
+
* User preferences for calendar data
|
|
1408
|
+
*/
|
|
1409
|
+
userPreferences: {
|
|
1410
|
+
/**
|
|
1411
|
+
* Whether the user prefers to display time in 12-hour (AM/PM) or 24-hour format
|
|
1412
|
+
*/
|
|
1413
|
+
timeFormat?: "12_HOUR" | "24_HOUR";
|
|
1414
|
+
};
|
|
1415
|
+
errors: Array<{
|
|
1416
|
+
accountId: string;
|
|
1417
|
+
calendarId: string;
|
|
1418
|
+
error: string;
|
|
1419
|
+
}>;
|
|
1420
|
+
};
|
|
1421
|
+
/**
|
|
1422
|
+
* Script input for the "List the user's scheduling links." effect (`calendar.listSchedulingLinks`),
|
|
1423
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
1424
|
+
*
|
|
1425
|
+
* List active, unexpired scheduling links with upcoming time ranges, optionally filtered by link type.
|
|
1426
|
+
*/
|
|
1427
|
+
export type ListSchedulingLinksScriptInput = {
|
|
1428
|
+
/**
|
|
1429
|
+
* Return only scheduling links of this type
|
|
1430
|
+
*/
|
|
1431
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
1432
|
+
};
|
|
1433
|
+
/**
|
|
1434
|
+
* Canonical Tool Core output for the "List the user's scheduling links." effect (`calendar.listSchedulingLinks`).
|
|
1435
|
+
* This is the definition's output schema; the effect's script surface may
|
|
1436
|
+
* re-encode it before returning.
|
|
1437
|
+
*/
|
|
1438
|
+
export type ListSchedulingLinksScriptOutput = {
|
|
1439
|
+
schedulingLinks: Array<{
|
|
1440
|
+
/**
|
|
1441
|
+
* Unique ID of the created scheduling link
|
|
1442
|
+
*/
|
|
1443
|
+
id: string;
|
|
1444
|
+
/**
|
|
1445
|
+
* Short ID used in the scheduling link URL
|
|
1446
|
+
*/
|
|
1447
|
+
shortId: string;
|
|
1448
|
+
/**
|
|
1449
|
+
* Current booking calendar for this scheduling link
|
|
1450
|
+
*/
|
|
1451
|
+
bookingCalendarRef: {
|
|
1452
|
+
accountId: string;
|
|
1453
|
+
calendarId: string;
|
|
1454
|
+
};
|
|
1455
|
+
/**
|
|
1456
|
+
* Custom URL slug for the scheduling link
|
|
1457
|
+
*/
|
|
1458
|
+
alias?: string;
|
|
1459
|
+
/**
|
|
1460
|
+
* The resolved type of the link
|
|
1461
|
+
*/
|
|
1462
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
1463
|
+
/**
|
|
1464
|
+
* Status of the scheduling link
|
|
1465
|
+
*/
|
|
1466
|
+
status: string;
|
|
1467
|
+
title?: string;
|
|
1468
|
+
description?: string;
|
|
1469
|
+
duration?: number;
|
|
1470
|
+
/**
|
|
1471
|
+
* Full URL where invitees can book a meeting
|
|
1472
|
+
*/
|
|
1473
|
+
schedulingLinkUrl?: string;
|
|
1474
|
+
timeRanges: Array<{
|
|
284
1475
|
/**
|
|
285
|
-
*
|
|
1476
|
+
* Start of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T09:00:00-04:00'
|
|
286
1477
|
*/
|
|
287
|
-
|
|
1478
|
+
startDate: string;
|
|
1479
|
+
/**
|
|
1480
|
+
* End of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T17:00:00-04:00'
|
|
1481
|
+
*/
|
|
1482
|
+
endDate: string;
|
|
1483
|
+
/**
|
|
1484
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1485
|
+
*/
|
|
1486
|
+
recurrence?: Array<string>;
|
|
1487
|
+
/**
|
|
1488
|
+
* Unique identifier for this time range
|
|
1489
|
+
*/
|
|
1490
|
+
id: string;
|
|
1491
|
+
}>;
|
|
1492
|
+
}>;
|
|
1493
|
+
};
|
|
1494
|
+
/**
|
|
1495
|
+
* Script input for the "Find available meeting times." effect (`calendar.suggestMeetingTimes`),
|
|
1496
|
+
* derived from its Tool Core definition's call_function input projection.
|
|
1497
|
+
*
|
|
1498
|
+
* Analyzes calendar availability for multiple participants and returns ranked time slots when everyone is free.
|
|
1499
|
+
* Use this when scheduling meetings or finding times that work for a group of people.
|
|
1500
|
+
* Returns suggestions sorted by preference, showing which participants are available, softly conflicted by an unconfirmed RSVP, busy, or have unknown status for each slot.
|
|
1501
|
+
*/
|
|
1502
|
+
export type SuggestMeetingTimesScriptInput = {
|
|
1503
|
+
/**
|
|
1504
|
+
* Individual participant or group email addresses to find time with. Resolvable groups are expanded into their members.
|
|
1505
|
+
*/
|
|
1506
|
+
participantEmails: Array<string>;
|
|
1507
|
+
/**
|
|
1508
|
+
* The duration of the meeting in minutes
|
|
1509
|
+
*/
|
|
1510
|
+
durationMinutes: number;
|
|
1511
|
+
/**
|
|
1512
|
+
* Start of the time range to consider, as an ISO 8601 date-time.
|
|
1513
|
+
*/
|
|
1514
|
+
timeMin: string;
|
|
1515
|
+
/**
|
|
1516
|
+
* End of the time range to consider, as an ISO 8601 date-time.
|
|
1517
|
+
*/
|
|
1518
|
+
timeMax: string;
|
|
1519
|
+
/**
|
|
1520
|
+
* Maximum number of suggestions to return (default: 10)
|
|
1521
|
+
*/
|
|
1522
|
+
maxCount?: number;
|
|
1523
|
+
/**
|
|
1524
|
+
* Date-times of returned events will be expressed in this time-zone
|
|
1525
|
+
*/
|
|
1526
|
+
timeZone: string;
|
|
1527
|
+
/**
|
|
1528
|
+
* Whether to include participant event schedules in the response
|
|
1529
|
+
*/
|
|
1530
|
+
includeParticipantSchedules?: boolean;
|
|
1531
|
+
};
|
|
1532
|
+
/**
|
|
1533
|
+
* Canonical Tool Core output for the "Find available meeting times." effect (`calendar.suggestMeetingTimes`).
|
|
1534
|
+
* This is the definition's output schema; the effect's script surface may
|
|
1535
|
+
* re-encode it before returning.
|
|
1536
|
+
*/
|
|
1537
|
+
export type SuggestMeetingTimesScriptOutput = {
|
|
1538
|
+
/**
|
|
1539
|
+
* Ranked list of available meeting time slots, sorted from most to least preferable. Each slot includes start/end times and categorizes participants by availability status.
|
|
1540
|
+
*/
|
|
1541
|
+
suggestions: Array<{
|
|
1542
|
+
/**
|
|
1543
|
+
* Start time in ISO 8601 format
|
|
1544
|
+
*/
|
|
1545
|
+
startAt: string;
|
|
1546
|
+
/**
|
|
1547
|
+
* End time in ISO 8601 format
|
|
1548
|
+
*/
|
|
1549
|
+
endAt: string;
|
|
1550
|
+
/**
|
|
1551
|
+
* Total number of hard event conflicts, including multiple events for one participant
|
|
1552
|
+
*/
|
|
1553
|
+
hardEventConflictCount: number;
|
|
1554
|
+
/**
|
|
1555
|
+
* Total number of soft event conflicts, including multiple events for one participant
|
|
1556
|
+
*/
|
|
1557
|
+
softEventConflictCount: number;
|
|
1558
|
+
/**
|
|
1559
|
+
* Participant emails for invitees with conflicts with this meeting time
|
|
1560
|
+
*/
|
|
1561
|
+
unavailableParticipants: Array<string>;
|
|
1562
|
+
/**
|
|
1563
|
+
* Participant emails for invitees who are available for this meeting time
|
|
1564
|
+
*/
|
|
1565
|
+
availableParticipants: Array<string>;
|
|
1566
|
+
/**
|
|
1567
|
+
* Participant emails for invitees with overlapping events whose RSVP is not firm yet
|
|
1568
|
+
*/
|
|
1569
|
+
softConflictParticipants: Array<string>;
|
|
1570
|
+
/**
|
|
1571
|
+
* Participant emails for invitees with unknown status
|
|
1572
|
+
*/
|
|
1573
|
+
unknownStatus: Array<string>;
|
|
1574
|
+
/**
|
|
1575
|
+
* Readable participant events that overlap this meeting time, including the participant and whether each event creates a hard or soft conflict
|
|
1576
|
+
*/
|
|
1577
|
+
conflictingEvents: Array<{
|
|
1578
|
+
participantEmail: string;
|
|
1579
|
+
eventId: string;
|
|
1580
|
+
summary?: string;
|
|
1581
|
+
/**
|
|
1582
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
1583
|
+
*/
|
|
1584
|
+
eventType: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
1585
|
+
/**
|
|
1586
|
+
* The calendar user's RSVP status
|
|
1587
|
+
*/
|
|
1588
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1589
|
+
conflictType: "hard" | "soft";
|
|
288
1590
|
}>;
|
|
289
1591
|
}>;
|
|
290
|
-
};
|
|
291
|
-
/**
|
|
292
|
-
* Script input for the "View coworkers' scheduled events." effect (`calendar.listCoworkersEvents`),
|
|
293
|
-
* derived from its Tool Core definition's call_function input projection.
|
|
294
|
-
*
|
|
295
|
-
* Retrieves the detailed calendar events for specific coworkers within a time range.
|
|
296
|
-
* Use this to see what meetings or events people have scheduled, including event titles, times, and details.
|
|
297
|
-
* Only works for coworkers in the same organization domain.
|
|
298
|
-
*/
|
|
299
|
-
export type ListCoworkersEventsScriptInput = {
|
|
300
|
-
/**
|
|
301
|
-
* Emails of relevant coworkers
|
|
302
|
-
*/
|
|
303
|
-
coworkerEmails: Array<string>;
|
|
304
|
-
/**
|
|
305
|
-
* Start of the time range, as an ISO 8601 date-time.
|
|
306
|
-
*/
|
|
307
|
-
timeMin: string;
|
|
308
|
-
/**
|
|
309
|
-
* End of the time range, as an ISO 8601 date-time.
|
|
310
|
-
*/
|
|
311
|
-
timeMax: string;
|
|
312
1592
|
/**
|
|
313
|
-
*
|
|
1593
|
+
* Whether one or more suggestions use a shorter duration than requested because no sufficiently conflict-free times were available at the requested duration
|
|
314
1594
|
*/
|
|
315
|
-
|
|
316
|
-
};
|
|
317
|
-
/**
|
|
318
|
-
* Canonical Tool Core output for the "View coworkers' scheduled events." effect (`calendar.listCoworkersEvents`).
|
|
319
|
-
* This is the definition's output schema; the effect's script surface may
|
|
320
|
-
* re-encode it before returning.
|
|
321
|
-
*/
|
|
322
|
-
export type ListCoworkersEventsScriptOutput = {
|
|
1595
|
+
usedFlexibleDuration: boolean;
|
|
323
1596
|
/**
|
|
324
|
-
* List of
|
|
1597
|
+
* List of participant schedules, one for each individual participant, including resolved group members. Each schedule includes basic participant information and a list of the participant's calendar events.
|
|
325
1598
|
*/
|
|
326
|
-
|
|
1599
|
+
participantSchedules?: Array<{
|
|
327
1600
|
accountId: string;
|
|
328
1601
|
coworkerEmail: string;
|
|
329
1602
|
profile?: {
|
|
@@ -332,29 +1605,16 @@ export type ListCoworkersEventsScriptOutput = {
|
|
|
332
1605
|
photoUrl?: string;
|
|
333
1606
|
};
|
|
334
1607
|
events: Array<{
|
|
335
|
-
calendar: {
|
|
336
|
-
accountId: string;
|
|
337
|
-
calendarId: string;
|
|
338
|
-
};
|
|
339
1608
|
eventId: string;
|
|
340
|
-
summary: string;
|
|
341
|
-
description?: string;
|
|
342
|
-
/**
|
|
343
|
-
* Physical location where the event takes place, or remote conference link/info.
|
|
344
|
-
*/
|
|
345
|
-
location?: string;
|
|
346
1609
|
/**
|
|
347
|
-
*
|
|
348
|
-
*/
|
|
349
|
-
recurrenceRules?: Array<string>;
|
|
350
|
-
/**
|
|
351
|
-
* The data provider this event belongs to
|
|
1610
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
352
1611
|
*/
|
|
353
|
-
|
|
1612
|
+
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
354
1613
|
/**
|
|
355
|
-
*
|
|
1614
|
+
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
356
1615
|
*/
|
|
357
|
-
|
|
1616
|
+
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
1617
|
+
summary: string;
|
|
358
1618
|
/**
|
|
359
1619
|
* When the event is happening
|
|
360
1620
|
*/
|
|
@@ -390,98 +1650,21 @@ export type ListCoworkersEventsScriptOutput = {
|
|
|
390
1650
|
};
|
|
391
1651
|
};
|
|
392
1652
|
/**
|
|
393
|
-
*
|
|
1653
|
+
* The calendar user's RSVP status
|
|
394
1654
|
*/
|
|
395
|
-
|
|
1655
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1656
|
+
colors?: {
|
|
1657
|
+
foreground?: string;
|
|
1658
|
+
background?: string;
|
|
1659
|
+
};
|
|
396
1660
|
/**
|
|
397
1661
|
* If true, the event does not block time on the calendar. This is equivalent to setting `Show me as to Available` in the Calendar UI.
|
|
398
1662
|
*/
|
|
399
1663
|
isTransparent: boolean;
|
|
400
|
-
/**
|
|
401
|
-
* Is the event an auto-blocking event created from another event? Used to create blocked events on a calendar from events on another calendar. You can ignore auto-blocked events if there are events happening at the exact same time on other calendars.
|
|
402
|
-
*/
|
|
403
|
-
isAutoBlock: boolean;
|
|
404
|
-
/**
|
|
405
|
-
* What kind of event is it? Standard, out of office, birthday...
|
|
406
|
-
*/
|
|
407
|
-
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
408
|
-
/**
|
|
409
|
-
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
410
|
-
*/
|
|
411
|
-
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
412
1664
|
/**
|
|
413
1665
|
* Whether it's a meeting, aka an event with attendees listed
|
|
414
1666
|
*/
|
|
415
1667
|
isMeeting: boolean;
|
|
416
|
-
conferencingEntryPoints?: Array<{
|
|
417
|
-
uri: string;
|
|
418
|
-
accessCode?: string;
|
|
419
|
-
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
420
|
-
label?: string;
|
|
421
|
-
meetingCode?: string;
|
|
422
|
-
passcode?: string;
|
|
423
|
-
password?: string;
|
|
424
|
-
pin?: string;
|
|
425
|
-
notes?: string;
|
|
426
|
-
signature?: string;
|
|
427
|
-
}>;
|
|
428
|
-
/**
|
|
429
|
-
* The URL to join the video conference, if available
|
|
430
|
-
*/
|
|
431
|
-
conferencingUrl?: string;
|
|
432
|
-
/**
|
|
433
|
-
* The calendar user's RSVP status
|
|
434
|
-
*/
|
|
435
|
-
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
436
|
-
creator?: {
|
|
437
|
-
/**
|
|
438
|
-
* Whether this entry represents the calendar user
|
|
439
|
-
*/
|
|
440
|
-
isSelf: boolean;
|
|
441
|
-
displayName?: string;
|
|
442
|
-
email?: string;
|
|
443
|
-
};
|
|
444
|
-
organizer?: {
|
|
445
|
-
/**
|
|
446
|
-
* Whether this entry represents the calendar user
|
|
447
|
-
*/
|
|
448
|
-
isSelf: boolean;
|
|
449
|
-
displayName?: string;
|
|
450
|
-
email?: string;
|
|
451
|
-
};
|
|
452
|
-
attendees?: Array<{
|
|
453
|
-
/**
|
|
454
|
-
* Whether this entry represents the calendar user
|
|
455
|
-
*/
|
|
456
|
-
isSelf: boolean;
|
|
457
|
-
displayName?: string;
|
|
458
|
-
email?: string;
|
|
459
|
-
isOptional: boolean;
|
|
460
|
-
isOrganizer?: boolean;
|
|
461
|
-
/**
|
|
462
|
-
* The calendar user's RSVP status
|
|
463
|
-
*/
|
|
464
|
-
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
465
|
-
}>;
|
|
466
|
-
resources?: Array<{
|
|
467
|
-
displayName?: string;
|
|
468
|
-
email?: string;
|
|
469
|
-
isOptional: boolean;
|
|
470
|
-
/**
|
|
471
|
-
* The calendar user's RSVP status
|
|
472
|
-
*/
|
|
473
|
-
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
474
|
-
}>;
|
|
475
|
-
colors?: {
|
|
476
|
-
foreground?: string;
|
|
477
|
-
background?: string;
|
|
478
|
-
};
|
|
479
|
-
attachments?: Array<{
|
|
480
|
-
url: string;
|
|
481
|
-
mimeType?: string;
|
|
482
|
-
title?: string;
|
|
483
|
-
notionWorkspaceId?: string;
|
|
484
|
-
}>;
|
|
485
1668
|
}>;
|
|
486
1669
|
}>;
|
|
487
1670
|
errors?: Array<{
|
|
@@ -496,326 +1679,458 @@ export type ListCoworkersEventsScriptOutput = {
|
|
|
496
1679
|
}>;
|
|
497
1680
|
};
|
|
498
1681
|
/**
|
|
499
|
-
* Script input for the "
|
|
1682
|
+
* Script input for the "Update calendar events." effect (`calendar.updateEvents`),
|
|
500
1683
|
* derived from its Tool Core definition's call_function input projection.
|
|
501
1684
|
*
|
|
502
|
-
*
|
|
1685
|
+
* If the event has an organizer and it's not the user, then only RSVP changes are always allowed. Some participant events may also allow updates when guests can invite others.
|
|
1686
|
+
* If the event has attendees, they will receive a notification of the changes.
|
|
503
1687
|
*/
|
|
504
|
-
export type
|
|
505
|
-
/**
|
|
506
|
-
* Start of the time range, as an ISO 8601 date-time.
|
|
507
|
-
*/
|
|
508
|
-
timeMin: string;
|
|
509
|
-
/**
|
|
510
|
-
* End of the time range, as an ISO 8601 date-time.
|
|
511
|
-
*/
|
|
512
|
-
timeMax: string;
|
|
1688
|
+
export type UpdateEventsScriptInput = {
|
|
513
1689
|
/**
|
|
514
1690
|
* Date-times of returned events will be expressed in this time-zone
|
|
515
1691
|
*/
|
|
516
1692
|
timeZone: string;
|
|
517
1693
|
/**
|
|
518
|
-
*
|
|
1694
|
+
* Event updates to apply.
|
|
519
1695
|
*/
|
|
520
|
-
|
|
521
|
-
};
|
|
522
|
-
/**
|
|
523
|
-
* Canonical Tool Core output for the "List the user's events from different calendars." effect (`calendar.listEvents`).
|
|
524
|
-
* This is the definition's output schema; the effect's script surface may
|
|
525
|
-
* re-encode it before returning.
|
|
526
|
-
*/
|
|
527
|
-
export type ListEventsScriptOutput = {
|
|
528
|
-
accounts: Array<{
|
|
529
|
-
accountId: string;
|
|
530
|
-
/**
|
|
531
|
-
* Google, Apple iCloud, Outlook, etc.
|
|
532
|
-
*/
|
|
533
|
-
providerName: string;
|
|
1696
|
+
updates: Array<{
|
|
534
1697
|
/**
|
|
535
|
-
*
|
|
1698
|
+
* Must be set to the exact string "RSVP" in upper case.
|
|
536
1699
|
*/
|
|
537
|
-
|
|
1700
|
+
updateType: "RSVP";
|
|
538
1701
|
/**
|
|
539
|
-
*
|
|
1702
|
+
* Event to update.
|
|
540
1703
|
*/
|
|
541
|
-
|
|
542
|
-
capabilities: {
|
|
1704
|
+
event: {
|
|
543
1705
|
/**
|
|
544
|
-
*
|
|
1706
|
+
* Calendar containing the event.
|
|
545
1707
|
*/
|
|
546
|
-
|
|
1708
|
+
calendar: {
|
|
1709
|
+
/**
|
|
1710
|
+
* Account that owns the event calendar.
|
|
1711
|
+
*/
|
|
1712
|
+
accountId: string;
|
|
1713
|
+
/**
|
|
1714
|
+
* Event calendar identifier within the account.
|
|
1715
|
+
*/
|
|
1716
|
+
calendarId: string;
|
|
1717
|
+
};
|
|
547
1718
|
/**
|
|
548
|
-
*
|
|
1719
|
+
* Identifier of the event to update.
|
|
549
1720
|
*/
|
|
550
|
-
|
|
1721
|
+
eventId: string;
|
|
551
1722
|
/**
|
|
552
|
-
*
|
|
1723
|
+
* Optional summary of the event, used by agent UI.
|
|
553
1724
|
*/
|
|
554
|
-
|
|
1725
|
+
eventSummary?: string;
|
|
1726
|
+
};
|
|
1727
|
+
/**
|
|
1728
|
+
* RSVP update to apply to the event.
|
|
1729
|
+
*/
|
|
1730
|
+
rsvp: {
|
|
555
1731
|
/**
|
|
556
|
-
*
|
|
1732
|
+
* The calendar user's RSVP status
|
|
557
1733
|
*/
|
|
558
|
-
|
|
1734
|
+
responseStatus: "needsAction" | "accepted" | "declined" | "tentative";
|
|
559
1735
|
/**
|
|
560
|
-
*
|
|
1736
|
+
* Optional comment accompanying the RSVP.
|
|
561
1737
|
*/
|
|
562
|
-
|
|
1738
|
+
comment?: string;
|
|
563
1739
|
};
|
|
1740
|
+
} | {
|
|
564
1741
|
/**
|
|
565
|
-
*
|
|
1742
|
+
* Must be set to the exact string "UPDATE" in upper case.
|
|
566
1743
|
*/
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
1744
|
+
updateType: "UPDATE";
|
|
1745
|
+
/**
|
|
1746
|
+
* Event to update.
|
|
1747
|
+
*/
|
|
1748
|
+
event: {
|
|
1749
|
+
/**
|
|
1750
|
+
* Calendar containing the event.
|
|
1751
|
+
*/
|
|
1752
|
+
calendar: {
|
|
1753
|
+
/**
|
|
1754
|
+
* Account that owns the event calendar.
|
|
1755
|
+
*/
|
|
1756
|
+
accountId: string;
|
|
1757
|
+
/**
|
|
1758
|
+
* Event calendar identifier within the account.
|
|
1759
|
+
*/
|
|
1760
|
+
calendarId: string;
|
|
576
1761
|
};
|
|
577
|
-
isPrimary: boolean;
|
|
578
1762
|
/**
|
|
579
|
-
*
|
|
1763
|
+
* Identifier of the event to update.
|
|
580
1764
|
*/
|
|
581
|
-
|
|
1765
|
+
eventId: string;
|
|
582
1766
|
/**
|
|
583
|
-
*
|
|
584
|
-
* Calendars that are not selected might be useful to get lower-signal events, but probably not to create events as it might not be visible to the user.
|
|
1767
|
+
* Optional summary of the event, used by agent UI.
|
|
585
1768
|
*/
|
|
586
|
-
|
|
1769
|
+
eventSummary?: string;
|
|
1770
|
+
};
|
|
1771
|
+
/**
|
|
1772
|
+
* Changes to apply to the event.
|
|
1773
|
+
*/
|
|
1774
|
+
update: {
|
|
587
1775
|
/**
|
|
588
|
-
*
|
|
589
|
-
* Hidden calendars might be useful to know what you might have access to, but keep in mind the user hid them and is most likely not aware of their content.
|
|
1776
|
+
* Updated title of the event.
|
|
590
1777
|
*/
|
|
591
|
-
|
|
1778
|
+
summary?: string;
|
|
592
1779
|
/**
|
|
593
|
-
*
|
|
1780
|
+
* Updated description of the event.
|
|
594
1781
|
*/
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
1782
|
+
description?: string;
|
|
1783
|
+
/**
|
|
1784
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
1785
|
+
*/
|
|
1786
|
+
location?: string;
|
|
1787
|
+
/**
|
|
1788
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1789
|
+
*/
|
|
1790
|
+
recurrenceRules?: Array<string>;
|
|
1791
|
+
/**
|
|
1792
|
+
* When the event is happening
|
|
1793
|
+
*/
|
|
1794
|
+
period?: {
|
|
604
1795
|
/**
|
|
605
|
-
*
|
|
1796
|
+
* Whether the updated event period uses all-day dates or date-times.
|
|
606
1797
|
*/
|
|
607
|
-
|
|
1798
|
+
type: "DATE";
|
|
608
1799
|
/**
|
|
609
|
-
*
|
|
1800
|
+
* Updated start of the event.
|
|
610
1801
|
*/
|
|
611
|
-
|
|
1802
|
+
start: {
|
|
1803
|
+
/**
|
|
1804
|
+
* Date in ISO 8601 format (no time)
|
|
1805
|
+
*/
|
|
1806
|
+
date: string;
|
|
1807
|
+
};
|
|
612
1808
|
/**
|
|
613
|
-
*
|
|
1809
|
+
* Updated end of the event.
|
|
614
1810
|
*/
|
|
615
|
-
|
|
1811
|
+
end: {
|
|
1812
|
+
/**
|
|
1813
|
+
* Date in ISO 8601 format (no time)
|
|
1814
|
+
*/
|
|
1815
|
+
date: string;
|
|
1816
|
+
};
|
|
1817
|
+
} | {
|
|
616
1818
|
/**
|
|
617
|
-
*
|
|
1819
|
+
* Whether the updated event period uses all-day dates or date-times.
|
|
618
1820
|
*/
|
|
619
|
-
|
|
1821
|
+
type: "DATE_TIME";
|
|
620
1822
|
/**
|
|
621
|
-
*
|
|
1823
|
+
* Updated start of the event.
|
|
622
1824
|
*/
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
/**
|
|
633
|
-
* Date in ISO 8601 format (no time)
|
|
634
|
-
*/
|
|
635
|
-
date: string;
|
|
636
|
-
};
|
|
637
|
-
} | {
|
|
638
|
-
type: "DATE_TIME";
|
|
639
|
-
start: {
|
|
640
|
-
/**
|
|
641
|
-
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
642
|
-
*/
|
|
643
|
-
dateTime: string;
|
|
644
|
-
timeZone?: string;
|
|
645
|
-
};
|
|
646
|
-
end: {
|
|
647
|
-
/**
|
|
648
|
-
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
649
|
-
*/
|
|
650
|
-
dateTime: string;
|
|
651
|
-
timeZone?: string;
|
|
652
|
-
};
|
|
1825
|
+
start: {
|
|
1826
|
+
/**
|
|
1827
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset, or without TZ offset if `timeZone` is specified in which case will be interpreted as local time in that timeZone
|
|
1828
|
+
*/
|
|
1829
|
+
dateTime: string;
|
|
1830
|
+
/**
|
|
1831
|
+
* IANA time zone for the updated event start date-time.
|
|
1832
|
+
*/
|
|
1833
|
+
timeZone?: string;
|
|
653
1834
|
};
|
|
654
1835
|
/**
|
|
655
|
-
*
|
|
1836
|
+
* Updated end of the event.
|
|
656
1837
|
*/
|
|
657
|
-
|
|
1838
|
+
end: {
|
|
1839
|
+
/**
|
|
1840
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset, or without TZ offset if `timeZone` is specified in which case will be interpreted as local time in that timeZone
|
|
1841
|
+
*/
|
|
1842
|
+
dateTime: string;
|
|
1843
|
+
/**
|
|
1844
|
+
* IANA time zone for the updated event end date-time.
|
|
1845
|
+
*/
|
|
1846
|
+
timeZone?: string;
|
|
1847
|
+
};
|
|
1848
|
+
};
|
|
1849
|
+
/**
|
|
1850
|
+
* Updated list of attendees for the event
|
|
1851
|
+
*/
|
|
1852
|
+
attendees?: Array<{
|
|
658
1853
|
/**
|
|
659
|
-
*
|
|
1854
|
+
* Email address of the attendee.
|
|
660
1855
|
*/
|
|
661
|
-
|
|
1856
|
+
email: string;
|
|
662
1857
|
/**
|
|
663
|
-
*
|
|
1858
|
+
* Totally optional, provide only if you are sure of the attendee's name
|
|
664
1859
|
*/
|
|
665
|
-
|
|
1860
|
+
displayName?: string;
|
|
666
1861
|
/**
|
|
667
|
-
*
|
|
1862
|
+
* Set only if the user was explicit about an attendee not being required
|
|
668
1863
|
*/
|
|
669
|
-
|
|
1864
|
+
isOptional?: boolean;
|
|
1865
|
+
}>;
|
|
1866
|
+
/**
|
|
1867
|
+
* Updated list of resources (such as rooms) for the event. Must be from the same account as `event.calendar`.
|
|
1868
|
+
*/
|
|
1869
|
+
resources?: Array<{
|
|
670
1870
|
/**
|
|
671
|
-
*
|
|
1871
|
+
* Email address of the resource.
|
|
672
1872
|
*/
|
|
673
|
-
|
|
1873
|
+
email?: string;
|
|
674
1874
|
/**
|
|
675
|
-
*
|
|
1875
|
+
* Display name of the resource.
|
|
676
1876
|
*/
|
|
677
|
-
|
|
678
|
-
conferencingEntryPoints?: Array<{
|
|
679
|
-
uri: string;
|
|
680
|
-
accessCode?: string;
|
|
681
|
-
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
682
|
-
label?: string;
|
|
683
|
-
meetingCode?: string;
|
|
684
|
-
passcode?: string;
|
|
685
|
-
password?: string;
|
|
686
|
-
pin?: string;
|
|
687
|
-
notes?: string;
|
|
688
|
-
signature?: string;
|
|
689
|
-
}>;
|
|
1877
|
+
displayName?: string;
|
|
690
1878
|
/**
|
|
691
|
-
*
|
|
1879
|
+
* Set only if the user was explicit about a resource not being required
|
|
692
1880
|
*/
|
|
693
|
-
|
|
1881
|
+
isOptional: boolean;
|
|
1882
|
+
}>;
|
|
1883
|
+
/**
|
|
1884
|
+
* Whether to add conferencing to this event. Only adds conferencing if the event has attendees and doesn't already have conferencing.
|
|
1885
|
+
*/
|
|
1886
|
+
addConferencing?: boolean;
|
|
1887
|
+
};
|
|
1888
|
+
}>;
|
|
1889
|
+
};
|
|
1890
|
+
/**
|
|
1891
|
+
* Canonical Tool Core output for the "Update calendar events." effect (`calendar.updateEvents`).
|
|
1892
|
+
* This is the definition's output schema; the effect's script surface may
|
|
1893
|
+
* re-encode it before returning.
|
|
1894
|
+
*/
|
|
1895
|
+
export type UpdateEventsScriptOutput = {
|
|
1896
|
+
updatedEvents: Array<{
|
|
1897
|
+
calendar: {
|
|
1898
|
+
accountId: string;
|
|
1899
|
+
calendarId: string;
|
|
1900
|
+
};
|
|
1901
|
+
eventId: string;
|
|
1902
|
+
summary: string;
|
|
1903
|
+
description?: string;
|
|
1904
|
+
/**
|
|
1905
|
+
* Physical location where the event takes place, or remote conference link/info.
|
|
1906
|
+
*/
|
|
1907
|
+
location?: string;
|
|
1908
|
+
/**
|
|
1909
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1910
|
+
*/
|
|
1911
|
+
recurrenceRules?: Array<string>;
|
|
1912
|
+
/**
|
|
1913
|
+
* The data provider this event belongs to
|
|
1914
|
+
*/
|
|
1915
|
+
provider?: "google" | "notion" | "icloud" | "outlook";
|
|
1916
|
+
/**
|
|
1917
|
+
* The URL to view the event in the Calendar app.
|
|
1918
|
+
*/
|
|
1919
|
+
webUrl: string;
|
|
1920
|
+
/**
|
|
1921
|
+
* When the event is happening
|
|
1922
|
+
*/
|
|
1923
|
+
period: {
|
|
1924
|
+
type: "DATE";
|
|
1925
|
+
start: {
|
|
694
1926
|
/**
|
|
695
|
-
*
|
|
1927
|
+
* Date in ISO 8601 format (no time)
|
|
696
1928
|
*/
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
1929
|
+
date: string;
|
|
1930
|
+
};
|
|
1931
|
+
end: {
|
|
1932
|
+
/**
|
|
1933
|
+
* Date in ISO 8601 format (no time)
|
|
1934
|
+
*/
|
|
1935
|
+
date: string;
|
|
1936
|
+
};
|
|
1937
|
+
} | {
|
|
1938
|
+
type: "DATE_TIME";
|
|
1939
|
+
start: {
|
|
1940
|
+
/**
|
|
1941
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1942
|
+
*/
|
|
1943
|
+
dateTime: string;
|
|
1944
|
+
timeZone?: string;
|
|
1945
|
+
};
|
|
1946
|
+
end: {
|
|
1947
|
+
/**
|
|
1948
|
+
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
1949
|
+
*/
|
|
1950
|
+
dateTime: string;
|
|
1951
|
+
timeZone?: string;
|
|
1952
|
+
};
|
|
1953
|
+
};
|
|
1954
|
+
/**
|
|
1955
|
+
* Whether it's part of a recurring event series
|
|
1956
|
+
*/
|
|
1957
|
+
isRecurring: boolean;
|
|
1958
|
+
/**
|
|
1959
|
+
* If true, the event does not block time on the calendar. This is equivalent to setting `Show me as to Available` in the Calendar UI.
|
|
1960
|
+
*/
|
|
1961
|
+
isTransparent: boolean;
|
|
1962
|
+
/**
|
|
1963
|
+
* Is the event an auto-blocking event created from another event? Used to create blocked events on a calendar from events on another calendar. You can ignore auto-blocked events if there are events happening at the exact same time on other calendars.
|
|
1964
|
+
*/
|
|
1965
|
+
isAutoBlock: boolean;
|
|
1966
|
+
/**
|
|
1967
|
+
* What kind of event is it? Standard, out of office, birthday...
|
|
1968
|
+
*/
|
|
1969
|
+
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
1970
|
+
/**
|
|
1971
|
+
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
1972
|
+
*/
|
|
1973
|
+
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
1974
|
+
/**
|
|
1975
|
+
* Whether it's a meeting, aka an event with attendees listed
|
|
1976
|
+
*/
|
|
1977
|
+
isMeeting: boolean;
|
|
1978
|
+
conferencingEntryPoints?: Array<{
|
|
1979
|
+
uri: string;
|
|
1980
|
+
accessCode?: string;
|
|
1981
|
+
entryPointType?: "video" | "phone" | "sip" | "more";
|
|
1982
|
+
label?: string;
|
|
1983
|
+
meetingCode?: string;
|
|
1984
|
+
passcode?: string;
|
|
1985
|
+
password?: string;
|
|
1986
|
+
pin?: string;
|
|
1987
|
+
notes?: string;
|
|
1988
|
+
signature?: string;
|
|
1989
|
+
}>;
|
|
1990
|
+
/**
|
|
1991
|
+
* The URL to join the video conference, if available
|
|
1992
|
+
*/
|
|
1993
|
+
conferencingUrl?: string;
|
|
1994
|
+
/**
|
|
1995
|
+
* The calendar user's RSVP status
|
|
1996
|
+
*/
|
|
1997
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
1998
|
+
creator?: {
|
|
1999
|
+
/**
|
|
2000
|
+
* Whether this entry represents the calendar user
|
|
2001
|
+
*/
|
|
2002
|
+
isSelf: boolean;
|
|
2003
|
+
displayName?: string;
|
|
2004
|
+
email?: string;
|
|
2005
|
+
};
|
|
2006
|
+
organizer?: {
|
|
2007
|
+
/**
|
|
2008
|
+
* Whether this entry represents the calendar user
|
|
2009
|
+
*/
|
|
2010
|
+
isSelf: boolean;
|
|
2011
|
+
displayName?: string;
|
|
2012
|
+
email?: string;
|
|
2013
|
+
};
|
|
2014
|
+
attendees?: Array<{
|
|
2015
|
+
/**
|
|
2016
|
+
* Whether this entry represents the calendar user
|
|
2017
|
+
*/
|
|
2018
|
+
isSelf: boolean;
|
|
2019
|
+
displayName?: string;
|
|
2020
|
+
email?: string;
|
|
2021
|
+
isOptional: boolean;
|
|
2022
|
+
isOrganizer?: boolean;
|
|
2023
|
+
/**
|
|
2024
|
+
* The calendar user's RSVP status
|
|
2025
|
+
*/
|
|
2026
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
2027
|
+
}>;
|
|
2028
|
+
resources?: Array<{
|
|
2029
|
+
displayName?: string;
|
|
2030
|
+
email?: string;
|
|
2031
|
+
isOptional: boolean;
|
|
2032
|
+
/**
|
|
2033
|
+
* The calendar user's RSVP status
|
|
2034
|
+
*/
|
|
2035
|
+
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
2036
|
+
}>;
|
|
2037
|
+
colors?: {
|
|
2038
|
+
foreground?: string;
|
|
2039
|
+
background?: string;
|
|
2040
|
+
};
|
|
2041
|
+
attachments?: Array<{
|
|
2042
|
+
url: string;
|
|
2043
|
+
mimeType?: string;
|
|
2044
|
+
title?: string;
|
|
2045
|
+
notionWorkspaceId?: string;
|
|
748
2046
|
}>;
|
|
749
2047
|
}>;
|
|
750
|
-
|
|
751
|
-
* User preferences for calendar data
|
|
752
|
-
*/
|
|
753
|
-
userPreferences: {
|
|
2048
|
+
errors?: Array<{
|
|
754
2049
|
/**
|
|
755
|
-
*
|
|
2050
|
+
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
756
2051
|
*/
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
error: string;
|
|
2052
|
+
identifier: string;
|
|
2053
|
+
/**
|
|
2054
|
+
* Description of the error that occurred
|
|
2055
|
+
*/
|
|
2056
|
+
errorMessage: string;
|
|
763
2057
|
}>;
|
|
764
2058
|
};
|
|
765
2059
|
/**
|
|
766
|
-
* Script input for the "
|
|
2060
|
+
* Script input for the "Update a scheduling link." effect (`calendar.updateSchedulingLink`),
|
|
767
2061
|
* derived from its Tool Core definition's call_function input projection.
|
|
768
2062
|
*
|
|
769
|
-
*
|
|
2063
|
+
* Update an existing active scheduling link by providing its current identity and a patch of requested changes. Omitted patch fields are left unchanged, and nullable patch fields can be cleared with null.
|
|
770
2064
|
*/
|
|
771
|
-
export type
|
|
2065
|
+
export type UpdateSchedulingLinkScriptInput = {
|
|
772
2066
|
/**
|
|
773
|
-
*
|
|
2067
|
+
* Identity of the scheduling link to update. These fields are used only to select and guard the existing link.
|
|
774
2068
|
*/
|
|
775
|
-
|
|
776
|
-
};
|
|
777
|
-
/**
|
|
778
|
-
* Canonical Tool Core output for the "List the user's scheduling links." effect (`calendar.listSchedulingLinks`).
|
|
779
|
-
* This is the definition's output schema; the effect's script surface may
|
|
780
|
-
* re-encode it before returning.
|
|
781
|
-
*/
|
|
782
|
-
export type ListSchedulingLinksScriptOutput = {
|
|
783
|
-
schedulingLinks: Array<{
|
|
2069
|
+
identity: {
|
|
784
2070
|
/**
|
|
785
|
-
*
|
|
2071
|
+
* ID of the scheduling link to update
|
|
786
2072
|
*/
|
|
787
|
-
|
|
2073
|
+
schedulingLinkId: string;
|
|
788
2074
|
/**
|
|
789
|
-
*
|
|
2075
|
+
* Current booking calendar for this scheduling link. Used to verify that the agent is updating the intended link.
|
|
790
2076
|
*/
|
|
791
|
-
|
|
2077
|
+
bookingCalendarRef: {
|
|
2078
|
+
/**
|
|
2079
|
+
* Account that owns the current booking calendar.
|
|
2080
|
+
*/
|
|
2081
|
+
accountId: string;
|
|
2082
|
+
/**
|
|
2083
|
+
* Current booking calendar identifier within the account.
|
|
2084
|
+
*/
|
|
2085
|
+
calendarId: string;
|
|
2086
|
+
};
|
|
2087
|
+
};
|
|
2088
|
+
/**
|
|
2089
|
+
* Patch of changes to apply to the scheduling link. Omitted fields are left unchanged, and nullable fields can be cleared with null.
|
|
2090
|
+
*/
|
|
2091
|
+
patch?: {
|
|
792
2092
|
/**
|
|
793
|
-
*
|
|
2093
|
+
* Replace the calendar where meetings booked through this scheduling link are created
|
|
794
2094
|
*/
|
|
795
|
-
|
|
2095
|
+
bookingCalendar?: {
|
|
2096
|
+
/**
|
|
2097
|
+
* Account that owns the replacement booking calendar.
|
|
2098
|
+
*/
|
|
796
2099
|
accountId: string;
|
|
2100
|
+
/**
|
|
2101
|
+
* Replacement booking calendar identifier within the account.
|
|
2102
|
+
*/
|
|
797
2103
|
calendarId: string;
|
|
798
2104
|
};
|
|
799
2105
|
/**
|
|
800
|
-
*
|
|
2106
|
+
* Replace the calendars checked for conflicts when determining availability
|
|
801
2107
|
*/
|
|
802
|
-
|
|
2108
|
+
conflictCalendars?: Array<{
|
|
2109
|
+
/**
|
|
2110
|
+
* Account that owns the replacement conflict calendar.
|
|
2111
|
+
*/
|
|
2112
|
+
accountId: string;
|
|
2113
|
+
/**
|
|
2114
|
+
* Replacement conflict calendar identifier within the account.
|
|
2115
|
+
*/
|
|
2116
|
+
calendarId: string;
|
|
2117
|
+
}>;
|
|
803
2118
|
/**
|
|
804
|
-
*
|
|
2119
|
+
* Update the scheduling link title. Use null to clear it.
|
|
805
2120
|
*/
|
|
806
|
-
|
|
2121
|
+
title?: string | null;
|
|
807
2122
|
/**
|
|
808
|
-
*
|
|
2123
|
+
* Update the scheduling link description. Use null to clear it.
|
|
2124
|
+
*/
|
|
2125
|
+
description?: string | null;
|
|
2126
|
+
/**
|
|
2127
|
+
* Update the meeting duration in minutes
|
|
809
2128
|
*/
|
|
810
|
-
status: string;
|
|
811
|
-
title?: string;
|
|
812
|
-
description?: string;
|
|
813
2129
|
duration?: number;
|
|
814
2130
|
/**
|
|
815
|
-
*
|
|
2131
|
+
* Replace the scheduling link availability windows
|
|
816
2132
|
*/
|
|
817
|
-
|
|
818
|
-
timeRanges: Array<{
|
|
2133
|
+
timeRanges?: Array<{
|
|
819
2134
|
/**
|
|
820
2135
|
* Start of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T09:00:00-04:00'
|
|
821
2136
|
*/
|
|
@@ -828,189 +2143,96 @@ export type ListSchedulingLinksScriptOutput = {
|
|
|
828
2143
|
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
829
2144
|
*/
|
|
830
2145
|
recurrence?: Array<string>;
|
|
831
|
-
/**
|
|
832
|
-
* Unique identifier for this time range
|
|
833
|
-
*/
|
|
834
|
-
id: string;
|
|
835
2146
|
}>;
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
*/
|
|
862
|
-
timeMax: string;
|
|
863
|
-
/**
|
|
864
|
-
* Maximum number of suggestions to return (default: 10)
|
|
865
|
-
*/
|
|
866
|
-
maxCount?: number;
|
|
867
|
-
/**
|
|
868
|
-
* Date-times of returned events will be expressed in this time-zone
|
|
869
|
-
*/
|
|
870
|
-
timeZone: string;
|
|
871
|
-
/**
|
|
872
|
-
* Whether to include participant event schedules in the response
|
|
873
|
-
*/
|
|
874
|
-
includeParticipantSchedules?: boolean;
|
|
2147
|
+
/**
|
|
2148
|
+
* Update the scheduling link type. If omitted while timeRanges are updated, the type is inferred from the new timeRanges.
|
|
2149
|
+
*/
|
|
2150
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
2151
|
+
/**
|
|
2152
|
+
* Update the custom URL slug for the scheduling link. Must be between 1 and 32 characters.
|
|
2153
|
+
*/
|
|
2154
|
+
alias?: string;
|
|
2155
|
+
/**
|
|
2156
|
+
* If true, apply the default conferencing for the effective booking calendar account. If false, clear conferencing.
|
|
2157
|
+
*/
|
|
2158
|
+
useDefaultConferencing?: boolean;
|
|
2159
|
+
/**
|
|
2160
|
+
* Update the minimum lead time in minutes. Must be 0 or greater and less than maxLeadTime when both are set. Use null to clear it.
|
|
2161
|
+
*/
|
|
2162
|
+
minLeadTime?: number | null;
|
|
2163
|
+
/**
|
|
2164
|
+
* Update the maximum lead time in minutes. Must be greater than 0 and greater than minLeadTime when both are set. Use null to clear it.
|
|
2165
|
+
*/
|
|
2166
|
+
maxLeadTime?: number | null;
|
|
2167
|
+
/**
|
|
2168
|
+
* Update the expiration date for the scheduling link. Must be in the future when provided. Use null to clear it.
|
|
2169
|
+
*/
|
|
2170
|
+
expirationDate?: string | null;
|
|
2171
|
+
};
|
|
875
2172
|
};
|
|
876
2173
|
/**
|
|
877
|
-
* Canonical Tool Core output for the "
|
|
2174
|
+
* Canonical Tool Core output for the "Update a scheduling link." effect (`calendar.updateSchedulingLink`).
|
|
878
2175
|
* This is the definition's output schema; the effect's script surface may
|
|
879
2176
|
* re-encode it before returning.
|
|
880
2177
|
*/
|
|
881
|
-
export type
|
|
2178
|
+
export type UpdateSchedulingLinkScriptOutput = {
|
|
882
2179
|
/**
|
|
883
|
-
*
|
|
2180
|
+
* The updated scheduling link
|
|
884
2181
|
*/
|
|
885
|
-
|
|
886
|
-
/**
|
|
887
|
-
* Start time in ISO 8601 format
|
|
888
|
-
*/
|
|
889
|
-
startAt: string;
|
|
890
|
-
/**
|
|
891
|
-
* End time in ISO 8601 format
|
|
892
|
-
*/
|
|
893
|
-
endAt: string;
|
|
2182
|
+
schedulingLink?: {
|
|
894
2183
|
/**
|
|
895
|
-
*
|
|
2184
|
+
* Unique ID of the created scheduling link
|
|
896
2185
|
*/
|
|
897
|
-
|
|
2186
|
+
id: string;
|
|
898
2187
|
/**
|
|
899
|
-
*
|
|
2188
|
+
* Short ID used in the scheduling link URL
|
|
900
2189
|
*/
|
|
901
|
-
|
|
2190
|
+
shortId: string;
|
|
902
2191
|
/**
|
|
903
|
-
*
|
|
2192
|
+
* Current booking calendar for this scheduling link
|
|
904
2193
|
*/
|
|
905
|
-
|
|
2194
|
+
bookingCalendarRef: {
|
|
2195
|
+
accountId: string;
|
|
2196
|
+
calendarId: string;
|
|
2197
|
+
};
|
|
906
2198
|
/**
|
|
907
|
-
*
|
|
2199
|
+
* Custom URL slug for the scheduling link
|
|
908
2200
|
*/
|
|
909
|
-
|
|
2201
|
+
alias?: string;
|
|
910
2202
|
/**
|
|
911
|
-
*
|
|
2203
|
+
* The resolved type of the link
|
|
912
2204
|
*/
|
|
913
|
-
|
|
2205
|
+
type?: "singleUse" | "multiUse" | "recurring";
|
|
914
2206
|
/**
|
|
915
|
-
*
|
|
2207
|
+
* Status of the scheduling link
|
|
916
2208
|
*/
|
|
917
|
-
|
|
2209
|
+
status: string;
|
|
2210
|
+
title?: string;
|
|
2211
|
+
description?: string;
|
|
2212
|
+
duration?: number;
|
|
918
2213
|
/**
|
|
919
|
-
*
|
|
2214
|
+
* Full URL where invitees can book a meeting
|
|
920
2215
|
*/
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
eventId: string;
|
|
924
|
-
summary?: string;
|
|
925
|
-
/**
|
|
926
|
-
* What kind of event is it? Standard, out of office, birthday...
|
|
927
|
-
*/
|
|
928
|
-
eventType: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
929
|
-
/**
|
|
930
|
-
* The calendar user's RSVP status
|
|
931
|
-
*/
|
|
932
|
-
responseStatus?: "needsAction" | "accepted" | "declined" | "tentative";
|
|
933
|
-
conflictType: "hard" | "soft";
|
|
934
|
-
}>;
|
|
935
|
-
}>;
|
|
936
|
-
/**
|
|
937
|
-
* Whether one or more suggestions use a shorter duration than requested because no sufficiently conflict-free times were available at the requested duration
|
|
938
|
-
*/
|
|
939
|
-
usedFlexibleDuration: boolean;
|
|
940
|
-
/**
|
|
941
|
-
* List of participant schedules, one for each individual participant, including resolved group members. Each schedule includes basic participant information and a list of the participant's calendar events.
|
|
942
|
-
*/
|
|
943
|
-
participantSchedules?: Array<{
|
|
944
|
-
accountId: string;
|
|
945
|
-
coworkerEmail: string;
|
|
946
|
-
profile?: {
|
|
947
|
-
displayName?: string;
|
|
948
|
-
email?: string;
|
|
949
|
-
photoUrl?: string;
|
|
950
|
-
};
|
|
951
|
-
events: Array<{
|
|
952
|
-
eventId: string;
|
|
953
|
-
/**
|
|
954
|
-
* What kind of event is it? Standard, out of office, birthday...
|
|
955
|
-
*/
|
|
956
|
-
eventType?: "fromGmail" | "default" | "focusTime" | "outOfOffice" | "birthday" | "availability";
|
|
957
|
-
/**
|
|
958
|
-
* Is an event confirmed, tentative or cancelled? This is different from the user's RSVP
|
|
959
|
-
*/
|
|
960
|
-
eventStatus?: "confirmed" | "tentative" | "cancelled";
|
|
961
|
-
summary: string;
|
|
2216
|
+
schedulingLinkUrl?: string;
|
|
2217
|
+
timeRanges: Array<{
|
|
962
2218
|
/**
|
|
963
|
-
*
|
|
2219
|
+
* Start of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T09:00:00-04:00'
|
|
964
2220
|
*/
|
|
965
|
-
|
|
966
|
-
type: "DATE";
|
|
967
|
-
start: {
|
|
968
|
-
/**
|
|
969
|
-
* Date in ISO 8601 format (no time)
|
|
970
|
-
*/
|
|
971
|
-
date: string;
|
|
972
|
-
};
|
|
973
|
-
end: {
|
|
974
|
-
/**
|
|
975
|
-
* Date in ISO 8601 format (no time)
|
|
976
|
-
*/
|
|
977
|
-
date: string;
|
|
978
|
-
};
|
|
979
|
-
} | {
|
|
980
|
-
type: "DATE_TIME";
|
|
981
|
-
start: {
|
|
982
|
-
/**
|
|
983
|
-
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
984
|
-
*/
|
|
985
|
-
dateTime: string;
|
|
986
|
-
timeZone?: string;
|
|
987
|
-
};
|
|
988
|
-
end: {
|
|
989
|
-
/**
|
|
990
|
-
* Date-time in ISO 8601 format, in UTC (ending with Z), or with TZ offset
|
|
991
|
-
*/
|
|
992
|
-
dateTime: string;
|
|
993
|
-
timeZone?: string;
|
|
994
|
-
};
|
|
995
|
-
};
|
|
2221
|
+
startDate: string;
|
|
996
2222
|
/**
|
|
997
|
-
*
|
|
2223
|
+
* End of availability window in ISO 8601 format with timezone offset, e.g. '2024-08-22T17:00:00-04:00'
|
|
998
2224
|
*/
|
|
999
|
-
|
|
1000
|
-
colors?: {
|
|
1001
|
-
foreground?: string;
|
|
1002
|
-
background?: string;
|
|
1003
|
-
};
|
|
2225
|
+
endDate: string;
|
|
1004
2226
|
/**
|
|
1005
|
-
*
|
|
2227
|
+
* Recurrence rules in RRULE format (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10']). Can also include EXDATE for exception dates (e.g., ['RRULE:FREQ=WEEKLY;COUNT=10', 'EXDATE:2026-03-24T13:00:00']).
|
|
1006
2228
|
*/
|
|
1007
|
-
|
|
2229
|
+
recurrence?: Array<string>;
|
|
1008
2230
|
/**
|
|
1009
|
-
*
|
|
2231
|
+
* Unique identifier for this time range
|
|
1010
2232
|
*/
|
|
1011
|
-
|
|
2233
|
+
id: string;
|
|
1012
2234
|
}>;
|
|
1013
|
-
}
|
|
2235
|
+
};
|
|
1014
2236
|
errors?: Array<{
|
|
1015
2237
|
/**
|
|
1016
2238
|
* An identifier for the item that failed (e.g., event summary for creation, event ID for updates/cancellations)
|
|
@@ -1025,6 +2247,10 @@ export type SuggestMeetingTimesScriptOutput = {
|
|
|
1025
2247
|
export declare class CalendarConnectionClient {
|
|
1026
2248
|
private readonly invoke;
|
|
1027
2249
|
constructor(invoke: ConnectionActionInvoker);
|
|
2250
|
+
cancelEvents(args: CancelEventsScriptInput): Promise<CancelEventsScriptOutput>;
|
|
2251
|
+
createEvents(args: CreateEventsScriptInput): Promise<CreateEventsScriptOutput>;
|
|
2252
|
+
createSchedulingLink(args: CreateSchedulingLinkScriptInput): Promise<CreateSchedulingLinkScriptOutput>;
|
|
2253
|
+
deleteSchedulingLinks(args: DeleteSchedulingLinksScriptInput): Promise<DeleteSchedulingLinksScriptOutput>;
|
|
1028
2254
|
listCalendarResources(args: ListCalendarResourcesScriptInput): Promise<ListCalendarResourcesScriptOutput>;
|
|
1029
2255
|
listCalendars(args: ListCalendarsScriptInput): Promise<ListCalendarsScriptOutput>;
|
|
1030
2256
|
listContacts(args: ListContactsScriptInput): Promise<ListContactsScriptOutput>;
|
|
@@ -1032,5 +2258,7 @@ export declare class CalendarConnectionClient {
|
|
|
1032
2258
|
listEvents(args: ListEventsScriptInput): Promise<ListEventsScriptOutput>;
|
|
1033
2259
|
listSchedulingLinks(args: ListSchedulingLinksScriptInput): Promise<ListSchedulingLinksScriptOutput>;
|
|
1034
2260
|
suggestMeetingTimes(args: SuggestMeetingTimesScriptInput): Promise<SuggestMeetingTimesScriptOutput>;
|
|
2261
|
+
updateEvents(args: UpdateEventsScriptInput): Promise<UpdateEventsScriptOutput>;
|
|
2262
|
+
updateSchedulingLink(args: UpdateSchedulingLinkScriptInput): Promise<UpdateSchedulingLinkScriptOutput>;
|
|
1035
2263
|
}
|
|
1036
2264
|
//# sourceMappingURL=calendar.generated.d.ts.map
|