recal-sdk 1.0.1 → 1.2.0

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.
Files changed (46) hide show
  1. package/README.md +102 -21
  2. package/dist/client/sdk.gen.d.ts +41 -41
  3. package/dist/client/sdk.gen.d.ts.map +1 -1
  4. package/dist/client/sdk.gen.js +131 -131
  5. package/dist/client/sdk.gen.js.map +1 -1
  6. package/dist/client/transformers.gen.d.ts +25 -25
  7. package/dist/client/transformers.gen.d.ts.map +1 -1
  8. package/dist/client/transformers.gen.js +51 -26
  9. package/dist/client/transformers.gen.js.map +1 -1
  10. package/dist/client/types.gen.d.ts +830 -238
  11. package/dist/client/types.gen.d.ts.map +1 -1
  12. package/dist/client/zod.gen.d.ts +357 -118
  13. package/dist/client/zod.gen.d.ts.map +1 -1
  14. package/dist/client/zod.gen.js +235 -180
  15. package/dist/client/zod.gen.js.map +1 -1
  16. package/dist/services/calendar.service.d.ts +12 -5
  17. package/dist/services/calendar.service.d.ts.map +1 -1
  18. package/dist/services/calendar.service.js +10 -6
  19. package/dist/services/calendar.service.js.map +1 -1
  20. package/dist/services/events.service.d.ts +2 -2
  21. package/dist/services/events.service.d.ts.map +1 -1
  22. package/dist/services/events.service.js +8 -8
  23. package/dist/services/events.service.js.map +1 -1
  24. package/dist/services/oauth.service.d.ts +7 -7
  25. package/dist/services/oauth.service.d.ts.map +1 -1
  26. package/dist/services/oauth.service.js +8 -8
  27. package/dist/services/oauth.service.js.map +1 -1
  28. package/dist/services/organizations.service.d.ts +35 -17
  29. package/dist/services/organizations.service.d.ts.map +1 -1
  30. package/dist/services/organizations.service.js +23 -11
  31. package/dist/services/organizations.service.js.map +1 -1
  32. package/dist/services/scheduling.service.d.ts +15 -7
  33. package/dist/services/scheduling.service.d.ts.map +1 -1
  34. package/dist/services/scheduling.service.js +34 -3
  35. package/dist/services/scheduling.service.js.map +1 -1
  36. package/dist/services/users.service.d.ts +2 -2
  37. package/dist/services/users.service.d.ts.map +1 -1
  38. package/dist/services/users.service.js +4 -4
  39. package/dist/services/users.service.js.map +1 -1
  40. package/dist/types.d.ts +27 -5
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/utils/response.d.ts +10 -0
  43. package/dist/utils/response.d.ts.map +1 -1
  44. package/dist/utils/response.js +20 -0
  45. package/dist/utils/response.js.map +1 -1
  46. package/package.json +3 -3
@@ -26,6 +26,7 @@ export type AuthConnection = {
26
26
  expiresAt: Date | null;
27
27
  provider: 'google' | 'microsoft';
28
28
  scope: Array<string>;
29
+ type: string;
29
30
  accessToken?: unknown;
30
31
  refreshToken?: unknown;
31
32
  };
@@ -42,6 +43,28 @@ export type TimeRange = {
42
43
  */
43
44
  start: Date;
44
45
  };
46
+ /**
47
+ * Why a calendar or a user could not be read. What each value means and how to resolve it: https://docs.recal.dev/core/troubleshooting
48
+ */
49
+ export type FreeBusyFailureReason = 'accessDenied' | 'authorizationInvalid' | 'insufficientScopes' | 'invalidCalendarId' | 'mailboxUnavailable' | 'notFound' | 'providerError' | 'providerNotConfigured' | 'rateLimited' | 'tooManyCalendars';
50
+ /**
51
+ * A calendar that could not be read
52
+ */
53
+ export type FailedCalendar = {
54
+ calendarId: string;
55
+ message: string;
56
+ provider: 'google' | 'microsoft';
57
+ reason: FreeBusyFailureReason;
58
+ };
59
+ /**
60
+ * A user whose busy times are missing (failedCalendars empty) or incomplete (failedCalendars names the gaps)
61
+ */
62
+ export type FailedFreeBusyUser = {
63
+ customId: string;
64
+ failedCalendars: Array<FailedCalendar>;
65
+ message: string;
66
+ reason: FreeBusyFailureReason;
67
+ };
45
68
  /**
46
69
  * Recal Normalized Calendar
47
70
  */
@@ -52,10 +75,11 @@ export type Calendar = {
52
75
  accessRole?: 'freeBusyReader' | 'owner' | 'reader' | 'writer';
53
76
  backgroundColor?: string;
54
77
  foregroundColor?: string;
78
+ primary?: boolean;
55
79
  selected?: boolean;
56
80
  subject?: string;
57
81
  /**
58
- * A valid IANA timezone identifier
82
+ * a valid IANA timezone identifier
59
83
  */
60
84
  timeZone?: string;
61
85
  };
@@ -199,7 +223,7 @@ export type GetV1OrganizationsResponses = {
199
223
  };
200
224
  export type GetV1OrganizationsResponse = GetV1OrganizationsResponses[keyof GetV1OrganizationsResponses];
201
225
  export type PostV1OrganizationsData = {
202
- body?: {
226
+ body: {
203
227
  name: string | null;
204
228
  slug: string;
205
229
  };
@@ -208,6 +232,13 @@ export type PostV1OrganizationsData = {
208
232
  url: '/v1/organizations';
209
233
  };
210
234
  export type PostV1OrganizationsErrors = {
235
+ /**
236
+ * Validation Error
237
+ */
238
+ 400: {
239
+ error: string;
240
+ data: null;
241
+ };
211
242
  /**
212
243
  * Organization with slug already exists
213
244
  */
@@ -226,7 +257,7 @@ export type PostV1OrganizationsResponses = {
226
257
  };
227
258
  };
228
259
  export type PostV1OrganizationsResponse = PostV1OrganizationsResponses[keyof PostV1OrganizationsResponses];
229
- export type DeleteV1OrganizationsOrgSlugData = {
260
+ export type DeleteV1OrganizationsByOrgSlugData = {
230
261
  body?: never;
231
262
  path: {
232
263
  orgSlug: string;
@@ -234,7 +265,14 @@ export type DeleteV1OrganizationsOrgSlugData = {
234
265
  query?: never;
235
266
  url: '/v1/organizations/{orgSlug}';
236
267
  };
237
- export type DeleteV1OrganizationsOrgSlugErrors = {
268
+ export type DeleteV1OrganizationsByOrgSlugErrors = {
269
+ /**
270
+ * Validation Error
271
+ */
272
+ 400: {
273
+ error: string;
274
+ data: null;
275
+ };
238
276
  /**
239
277
  * Organization not found
240
278
  */
@@ -243,8 +281,8 @@ export type DeleteV1OrganizationsOrgSlugErrors = {
243
281
  error: string;
244
282
  };
245
283
  };
246
- export type DeleteV1OrganizationsOrgSlugError = DeleteV1OrganizationsOrgSlugErrors[keyof DeleteV1OrganizationsOrgSlugErrors];
247
- export type DeleteV1OrganizationsOrgSlugResponses = {
284
+ export type DeleteV1OrganizationsByOrgSlugError = DeleteV1OrganizationsByOrgSlugErrors[keyof DeleteV1OrganizationsByOrgSlugErrors];
285
+ export type DeleteV1OrganizationsByOrgSlugResponses = {
248
286
  /**
249
287
  * Deleted organization
250
288
  */
@@ -252,8 +290,8 @@ export type DeleteV1OrganizationsOrgSlugResponses = {
252
290
  data: Organization;
253
291
  };
254
292
  };
255
- export type DeleteV1OrganizationsOrgSlugResponse = DeleteV1OrganizationsOrgSlugResponses[keyof DeleteV1OrganizationsOrgSlugResponses];
256
- export type GetV1OrganizationsOrgSlugData = {
293
+ export type DeleteV1OrganizationsByOrgSlugResponse = DeleteV1OrganizationsByOrgSlugResponses[keyof DeleteV1OrganizationsByOrgSlugResponses];
294
+ export type GetV1OrganizationsByOrgSlugData = {
257
295
  body?: never;
258
296
  path: {
259
297
  orgSlug: string;
@@ -261,7 +299,14 @@ export type GetV1OrganizationsOrgSlugData = {
261
299
  query?: never;
262
300
  url: '/v1/organizations/{orgSlug}';
263
301
  };
264
- export type GetV1OrganizationsOrgSlugErrors = {
302
+ export type GetV1OrganizationsByOrgSlugErrors = {
303
+ /**
304
+ * Validation Error
305
+ */
306
+ 400: {
307
+ error: string;
308
+ data: null;
309
+ };
265
310
  /**
266
311
  * Organization not found
267
312
  */
@@ -270,8 +315,8 @@ export type GetV1OrganizationsOrgSlugErrors = {
270
315
  error: string;
271
316
  };
272
317
  };
273
- export type GetV1OrganizationsOrgSlugError = GetV1OrganizationsOrgSlugErrors[keyof GetV1OrganizationsOrgSlugErrors];
274
- export type GetV1OrganizationsOrgSlugResponses = {
318
+ export type GetV1OrganizationsByOrgSlugError = GetV1OrganizationsByOrgSlugErrors[keyof GetV1OrganizationsByOrgSlugErrors];
319
+ export type GetV1OrganizationsByOrgSlugResponses = {
275
320
  /**
276
321
  * Organization
277
322
  */
@@ -279,9 +324,9 @@ export type GetV1OrganizationsOrgSlugResponses = {
279
324
  data: Organization;
280
325
  };
281
326
  };
282
- export type GetV1OrganizationsOrgSlugResponse = GetV1OrganizationsOrgSlugResponses[keyof GetV1OrganizationsOrgSlugResponses];
283
- export type PutV1OrganizationsOrgSlugData = {
284
- body?: {
327
+ export type GetV1OrganizationsByOrgSlugResponse = GetV1OrganizationsByOrgSlugResponses[keyof GetV1OrganizationsByOrgSlugResponses];
328
+ export type PutV1OrganizationsByOrgSlugData = {
329
+ body: {
285
330
  name: string | null;
286
331
  slug: string;
287
332
  };
@@ -291,7 +336,14 @@ export type PutV1OrganizationsOrgSlugData = {
291
336
  query?: never;
292
337
  url: '/v1/organizations/{orgSlug}';
293
338
  };
294
- export type PutV1OrganizationsOrgSlugErrors = {
339
+ export type PutV1OrganizationsByOrgSlugErrors = {
340
+ /**
341
+ * Validation Error
342
+ */
343
+ 400: {
344
+ error: string;
345
+ data: null;
346
+ };
295
347
  /**
296
348
  * Organization not found
297
349
  */
@@ -300,8 +352,8 @@ export type PutV1OrganizationsOrgSlugErrors = {
300
352
  error: string;
301
353
  };
302
354
  };
303
- export type PutV1OrganizationsOrgSlugError = PutV1OrganizationsOrgSlugErrors[keyof PutV1OrganizationsOrgSlugErrors];
304
- export type PutV1OrganizationsOrgSlugResponses = {
355
+ export type PutV1OrganizationsByOrgSlugError = PutV1OrganizationsByOrgSlugErrors[keyof PutV1OrganizationsByOrgSlugErrors];
356
+ export type PutV1OrganizationsByOrgSlugResponses = {
305
357
  /**
306
358
  * Updated organization
307
359
  */
@@ -309,9 +361,9 @@ export type PutV1OrganizationsOrgSlugResponses = {
309
361
  data: Organization;
310
362
  };
311
363
  };
312
- export type PutV1OrganizationsOrgSlugResponse = PutV1OrganizationsOrgSlugResponses[keyof PutV1OrganizationsOrgSlugResponses];
313
- export type DeleteV1OrganizationsOrgSlugMembersData = {
314
- body?: {
364
+ export type PutV1OrganizationsByOrgSlugResponse = PutV1OrganizationsByOrgSlugResponses[keyof PutV1OrganizationsByOrgSlugResponses];
365
+ export type DeleteV1OrganizationsByOrgSlugMembersData = {
366
+ body: {
315
367
  userIds: Array<string>;
316
368
  };
317
369
  path: {
@@ -320,7 +372,14 @@ export type DeleteV1OrganizationsOrgSlugMembersData = {
320
372
  query?: never;
321
373
  url: '/v1/organizations/{orgSlug}/members';
322
374
  };
323
- export type DeleteV1OrganizationsOrgSlugMembersErrors = {
375
+ export type DeleteV1OrganizationsByOrgSlugMembersErrors = {
376
+ /**
377
+ * Validation Error
378
+ */
379
+ 400: {
380
+ error: string;
381
+ data: null;
382
+ };
324
383
  /**
325
384
  * Organization not found
326
385
  */
@@ -329,14 +388,14 @@ export type DeleteV1OrganizationsOrgSlugMembersErrors = {
329
388
  error: string;
330
389
  };
331
390
  };
332
- export type DeleteV1OrganizationsOrgSlugMembersError = DeleteV1OrganizationsOrgSlugMembersErrors[keyof DeleteV1OrganizationsOrgSlugMembersErrors];
333
- export type DeleteV1OrganizationsOrgSlugMembersResponses = {
391
+ export type DeleteV1OrganizationsByOrgSlugMembersError = DeleteV1OrganizationsByOrgSlugMembersErrors[keyof DeleteV1OrganizationsByOrgSlugMembersErrors];
392
+ export type DeleteV1OrganizationsByOrgSlugMembersResponses = {
334
393
  200: {
335
394
  data: string;
336
395
  };
337
396
  };
338
- export type DeleteV1OrganizationsOrgSlugMembersResponse = DeleteV1OrganizationsOrgSlugMembersResponses[keyof DeleteV1OrganizationsOrgSlugMembersResponses];
339
- export type GetV1OrganizationsOrgSlugMembersData = {
397
+ export type DeleteV1OrganizationsByOrgSlugMembersResponse = DeleteV1OrganizationsByOrgSlugMembersResponses[keyof DeleteV1OrganizationsByOrgSlugMembersResponses];
398
+ export type GetV1OrganizationsByOrgSlugMembersData = {
340
399
  body?: never;
341
400
  path: {
342
401
  orgSlug: string;
@@ -346,7 +405,14 @@ export type GetV1OrganizationsOrgSlugMembersData = {
346
405
  };
347
406
  url: '/v1/organizations/{orgSlug}/members';
348
407
  };
349
- export type GetV1OrganizationsOrgSlugMembersErrors = {
408
+ export type GetV1OrganizationsByOrgSlugMembersErrors = {
409
+ /**
410
+ * Validation Error
411
+ */
412
+ 400: {
413
+ error: string;
414
+ data: null;
415
+ };
350
416
  /**
351
417
  * Organization not found
352
418
  */
@@ -355,8 +421,8 @@ export type GetV1OrganizationsOrgSlugMembersErrors = {
355
421
  error: string;
356
422
  };
357
423
  };
358
- export type GetV1OrganizationsOrgSlugMembersError = GetV1OrganizationsOrgSlugMembersErrors[keyof GetV1OrganizationsOrgSlugMembersErrors];
359
- export type GetV1OrganizationsOrgSlugMembersResponses = {
424
+ export type GetV1OrganizationsByOrgSlugMembersError = GetV1OrganizationsByOrgSlugMembersErrors[keyof GetV1OrganizationsByOrgSlugMembersErrors];
425
+ export type GetV1OrganizationsByOrgSlugMembersResponses = {
360
426
  /**
361
427
  * All members of an organization
362
428
  */
@@ -369,9 +435,9 @@ export type GetV1OrganizationsOrgSlugMembersResponses = {
369
435
  }>;
370
436
  };
371
437
  };
372
- export type GetV1OrganizationsOrgSlugMembersResponse = GetV1OrganizationsOrgSlugMembersResponses[keyof GetV1OrganizationsOrgSlugMembersResponses];
373
- export type PostV1OrganizationsOrgSlugMembersData = {
374
- body?: {
438
+ export type GetV1OrganizationsByOrgSlugMembersResponse = GetV1OrganizationsByOrgSlugMembersResponses[keyof GetV1OrganizationsByOrgSlugMembersResponses];
439
+ export type PostV1OrganizationsByOrgSlugMembersData = {
440
+ body: {
375
441
  userIds: Array<string>;
376
442
  };
377
443
  path: {
@@ -380,7 +446,14 @@ export type PostV1OrganizationsOrgSlugMembersData = {
380
446
  query?: never;
381
447
  url: '/v1/organizations/{orgSlug}/members';
382
448
  };
383
- export type PostV1OrganizationsOrgSlugMembersErrors = {
449
+ export type PostV1OrganizationsByOrgSlugMembersErrors = {
450
+ /**
451
+ * Validation Error
452
+ */
453
+ 400: {
454
+ error: string;
455
+ data: null;
456
+ };
384
457
  /**
385
458
  * Organization not found
386
459
  */
@@ -389,8 +462,8 @@ export type PostV1OrganizationsOrgSlugMembersErrors = {
389
462
  error: string;
390
463
  };
391
464
  };
392
- export type PostV1OrganizationsOrgSlugMembersError = PostV1OrganizationsOrgSlugMembersErrors[keyof PostV1OrganizationsOrgSlugMembersErrors];
393
- export type PostV1OrganizationsOrgSlugMembersResponses = {
465
+ export type PostV1OrganizationsByOrgSlugMembersError = PostV1OrganizationsByOrgSlugMembersErrors[keyof PostV1OrganizationsByOrgSlugMembersErrors];
466
+ export type PostV1OrganizationsByOrgSlugMembersResponses = {
394
467
  /**
395
468
  * All users are already members of the organization
396
469
  */
@@ -404,8 +477,8 @@ export type PostV1OrganizationsOrgSlugMembersResponses = {
404
477
  data: string;
405
478
  };
406
479
  };
407
- export type PostV1OrganizationsOrgSlugMembersResponse = PostV1OrganizationsOrgSlugMembersResponses[keyof PostV1OrganizationsOrgSlugMembersResponses];
408
- export type GetV1OrganizationsOrgSlugCalendarBusyData = {
480
+ export type PostV1OrganizationsByOrgSlugMembersResponse = PostV1OrganizationsByOrgSlugMembersResponses[keyof PostV1OrganizationsByOrgSlugMembersResponses];
481
+ export type GetV1OrganizationsByOrgSlugCalendarBusyData = {
409
482
  body?: never;
410
483
  path: {
411
484
  orgSlug: string;
@@ -421,7 +494,14 @@ export type GetV1OrganizationsOrgSlugCalendarBusyData = {
421
494
  };
422
495
  url: '/v1/organizations/{orgSlug}/calendar/busy';
423
496
  };
424
- export type GetV1OrganizationsOrgSlugCalendarBusyErrors = {
497
+ export type GetV1OrganizationsByOrgSlugCalendarBusyErrors = {
498
+ /**
499
+ * Bad request
500
+ */
501
+ 400: {
502
+ error: string;
503
+ data: null;
504
+ };
425
505
  /**
426
506
  * Organization not found
427
507
  */
@@ -430,17 +510,18 @@ export type GetV1OrganizationsOrgSlugCalendarBusyErrors = {
430
510
  error: string;
431
511
  };
432
512
  };
433
- export type GetV1OrganizationsOrgSlugCalendarBusyError = GetV1OrganizationsOrgSlugCalendarBusyErrors[keyof GetV1OrganizationsOrgSlugCalendarBusyErrors];
434
- export type GetV1OrganizationsOrgSlugCalendarBusyResponses = {
513
+ export type GetV1OrganizationsByOrgSlugCalendarBusyError = GetV1OrganizationsByOrgSlugCalendarBusyErrors[keyof GetV1OrganizationsByOrgSlugCalendarBusyErrors];
514
+ export type GetV1OrganizationsByOrgSlugCalendarBusyResponses = {
435
515
  /**
436
- * Busy times of all users of an organization
516
+ * Busy times of all users of an organization, plus the users that could not be read
437
517
  */
438
518
  200: {
439
519
  data: Array<TimeRange>;
520
+ failedUsers: Array<FailedFreeBusyUser>;
440
521
  };
441
522
  };
442
- export type GetV1OrganizationsOrgSlugCalendarBusyResponse = GetV1OrganizationsOrgSlugCalendarBusyResponses[keyof GetV1OrganizationsOrgSlugCalendarBusyResponses];
443
- export type GetV1OrganizationsOrgSlugSchedulingData = {
523
+ export type GetV1OrganizationsByOrgSlugCalendarBusyResponse = GetV1OrganizationsByOrgSlugCalendarBusyResponses[keyof GetV1OrganizationsByOrgSlugCalendarBusyResponses];
524
+ export type GetV1OrganizationsByOrgSlugSchedulingData = {
444
525
  body?: never;
445
526
  path: {
446
527
  orgSlug: string;
@@ -450,14 +531,6 @@ export type GetV1OrganizationsOrgSlugSchedulingData = {
450
531
  * End time of the time range in ISO format
451
532
  */
452
533
  end: string;
453
- /**
454
- * Padding in minutes to add before and after busy times
455
- */
456
- padding: string | unknown;
457
- /**
458
- * Duration of each slot in minutes
459
- */
460
- slotDuration: string | unknown;
461
534
  /**
462
535
  * Start time of the time range in ISO format
463
536
  */
@@ -471,26 +544,41 @@ export type GetV1OrganizationsOrgSlugSchedulingData = {
471
544
  */
472
545
  latestTimeEachDay?: string;
473
546
  /**
474
- * An integer >= 0 (default: 0)
547
+ * an integer >= 0 (default: 0)
548
+ */
549
+ maxOverlaps?: string;
550
+ /**
551
+ * Padding in minutes to add before and after busy times
475
552
  */
476
- maxOverlaps?: string | unknown;
553
+ padding?: string;
477
554
  provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
555
+ /**
556
+ * Duration of each slot in minutes
557
+ */
558
+ slotDuration?: string;
478
559
  };
479
560
  url: '/v1/organizations/{orgSlug}/scheduling';
480
561
  };
481
- export type GetV1OrganizationsOrgSlugSchedulingErrors = {
562
+ export type GetV1OrganizationsByOrgSlugSchedulingErrors = {
482
563
  /**
483
- * Organization not found
564
+ * Validation Error
565
+ */
566
+ 400: {
567
+ error: string;
568
+ data: null;
569
+ };
570
+ /**
571
+ * Organization not found, or it has no members
484
572
  */
485
573
  404: {
486
574
  data: null;
487
575
  error: string;
488
576
  };
489
577
  };
490
- export type GetV1OrganizationsOrgSlugSchedulingError = GetV1OrganizationsOrgSlugSchedulingErrors[keyof GetV1OrganizationsOrgSlugSchedulingErrors];
491
- export type GetV1OrganizationsOrgSlugSchedulingResponses = {
578
+ export type GetV1OrganizationsByOrgSlugSchedulingError = GetV1OrganizationsByOrgSlugSchedulingErrors[keyof GetV1OrganizationsByOrgSlugSchedulingErrors];
579
+ export type GetV1OrganizationsByOrgSlugSchedulingResponses = {
492
580
  /**
493
- * Available time slots
581
+ * Available time slots, plus the users that could not be read
494
582
  */
495
583
  200: {
496
584
  data: {
@@ -533,9 +621,10 @@ export type GetV1OrganizationsOrgSlugSchedulingResponses = {
533
621
  latestTimeEachDay?: string;
534
622
  };
535
623
  };
624
+ failedUsers: Array<FailedFreeBusyUser>;
536
625
  };
537
626
  };
538
- export type GetV1OrganizationsOrgSlugSchedulingResponse = GetV1OrganizationsOrgSlugSchedulingResponses[keyof GetV1OrganizationsOrgSlugSchedulingResponses];
627
+ export type GetV1OrganizationsByOrgSlugSchedulingResponse = GetV1OrganizationsByOrgSlugSchedulingResponses[keyof GetV1OrganizationsByOrgSlugSchedulingResponses];
539
628
  export type GetV1UsersData = {
540
629
  body?: never;
541
630
  path?: never;
@@ -557,7 +646,7 @@ export type GetV1UsersResponses = {
557
646
  };
558
647
  export type GetV1UsersResponse = GetV1UsersResponses[keyof GetV1UsersResponses];
559
648
  export type PostV1UsersData = {
560
- body?: {
649
+ body: {
561
650
  id: string;
562
651
  organizationSlugs?: Array<string>;
563
652
  };
@@ -566,6 +655,13 @@ export type PostV1UsersData = {
566
655
  url: '/v1/users';
567
656
  };
568
657
  export type PostV1UsersErrors = {
658
+ /**
659
+ * Validation Error
660
+ */
661
+ 400: {
662
+ error: string;
663
+ data: null;
664
+ };
569
665
  /**
570
666
  * Organization not found
571
667
  */
@@ -596,7 +692,7 @@ export type PostV1UsersResponses = {
596
692
  };
597
693
  };
598
694
  export type PostV1UsersResponse = PostV1UsersResponses[keyof PostV1UsersResponses];
599
- export type DeleteV1UsersUserIdData = {
695
+ export type DeleteV1UsersByUserIdData = {
600
696
  body?: never;
601
697
  path: {
602
698
  userId: string;
@@ -604,7 +700,14 @@ export type DeleteV1UsersUserIdData = {
604
700
  query?: never;
605
701
  url: '/v1/users/{userId}';
606
702
  };
607
- export type DeleteV1UsersUserIdErrors = {
703
+ export type DeleteV1UsersByUserIdErrors = {
704
+ /**
705
+ * Validation Error
706
+ */
707
+ 400: {
708
+ error: string;
709
+ data: null;
710
+ };
608
711
  /**
609
712
  * User not found
610
713
  */
@@ -613,8 +716,8 @@ export type DeleteV1UsersUserIdErrors = {
613
716
  error: string;
614
717
  };
615
718
  };
616
- export type DeleteV1UsersUserIdError = DeleteV1UsersUserIdErrors[keyof DeleteV1UsersUserIdErrors];
617
- export type DeleteV1UsersUserIdResponses = {
719
+ export type DeleteV1UsersByUserIdError = DeleteV1UsersByUserIdErrors[keyof DeleteV1UsersByUserIdErrors];
720
+ export type DeleteV1UsersByUserIdResponses = {
618
721
  /**
619
722
  * User
620
723
  */
@@ -627,8 +730,8 @@ export type DeleteV1UsersUserIdResponses = {
627
730
  };
628
731
  };
629
732
  };
630
- export type DeleteV1UsersUserIdResponse = DeleteV1UsersUserIdResponses[keyof DeleteV1UsersUserIdResponses];
631
- export type GetV1UsersUserIdData = {
733
+ export type DeleteV1UsersByUserIdResponse = DeleteV1UsersByUserIdResponses[keyof DeleteV1UsersByUserIdResponses];
734
+ export type GetV1UsersByUserIdData = {
632
735
  body?: never;
633
736
  path: {
634
737
  userId: string;
@@ -638,7 +741,14 @@ export type GetV1UsersUserIdData = {
638
741
  };
639
742
  url: '/v1/users/{userId}';
640
743
  };
641
- export type GetV1UsersUserIdErrors = {
744
+ export type GetV1UsersByUserIdErrors = {
745
+ /**
746
+ * Validation Error
747
+ */
748
+ 400: {
749
+ error: string;
750
+ data: null;
751
+ };
642
752
  /**
643
753
  * User not found
644
754
  */
@@ -647,8 +757,8 @@ export type GetV1UsersUserIdErrors = {
647
757
  error: string;
648
758
  };
649
759
  };
650
- export type GetV1UsersUserIdError = GetV1UsersUserIdErrors[keyof GetV1UsersUserIdErrors];
651
- export type GetV1UsersUserIdResponses = {
760
+ export type GetV1UsersByUserIdError = GetV1UsersByUserIdErrors[keyof GetV1UsersByUserIdErrors];
761
+ export type GetV1UsersByUserIdResponses = {
652
762
  /**
653
763
  * User
654
764
  */
@@ -661,9 +771,9 @@ export type GetV1UsersUserIdResponses = {
661
771
  };
662
772
  };
663
773
  };
664
- export type GetV1UsersUserIdResponse = GetV1UsersUserIdResponses[keyof GetV1UsersUserIdResponses];
665
- export type PutV1UsersUserIdData = {
666
- body?: {
774
+ export type GetV1UsersByUserIdResponse = GetV1UsersByUserIdResponses[keyof GetV1UsersByUserIdResponses];
775
+ export type PutV1UsersByUserIdData = {
776
+ body: {
667
777
  userId: string;
668
778
  };
669
779
  path: {
@@ -672,7 +782,14 @@ export type PutV1UsersUserIdData = {
672
782
  query?: never;
673
783
  url: '/v1/users/{userId}';
674
784
  };
675
- export type PutV1UsersUserIdErrors = {
785
+ export type PutV1UsersByUserIdErrors = {
786
+ /**
787
+ * Validation Error
788
+ */
789
+ 400: {
790
+ error: string;
791
+ data: null;
792
+ };
676
793
  /**
677
794
  * User not found
678
795
  */
@@ -688,8 +805,8 @@ export type PutV1UsersUserIdErrors = {
688
805
  error: string;
689
806
  };
690
807
  };
691
- export type PutV1UsersUserIdError = PutV1UsersUserIdErrors[keyof PutV1UsersUserIdErrors];
692
- export type PutV1UsersUserIdResponses = {
808
+ export type PutV1UsersByUserIdError = PutV1UsersByUserIdErrors[keyof PutV1UsersByUserIdErrors];
809
+ export type PutV1UsersByUserIdResponses = {
693
810
  /**
694
811
  * User
695
812
  */
@@ -702,8 +819,8 @@ export type PutV1UsersUserIdResponses = {
702
819
  };
703
820
  };
704
821
  };
705
- export type PutV1UsersUserIdResponse = PutV1UsersUserIdResponses[keyof PutV1UsersUserIdResponses];
706
- export type GetV1UsersUserIdOrganizationsData = {
822
+ export type PutV1UsersByUserIdResponse = PutV1UsersByUserIdResponses[keyof PutV1UsersByUserIdResponses];
823
+ export type GetV1UsersByUserIdOrganizationsData = {
707
824
  body?: never;
708
825
  path: {
709
826
  userId: string;
@@ -711,7 +828,14 @@ export type GetV1UsersUserIdOrganizationsData = {
711
828
  query?: never;
712
829
  url: '/v1/users/{userId}/organizations';
713
830
  };
714
- export type GetV1UsersUserIdOrganizationsErrors = {
831
+ export type GetV1UsersByUserIdOrganizationsErrors = {
832
+ /**
833
+ * Validation Error
834
+ */
835
+ 400: {
836
+ error: string;
837
+ data: null;
838
+ };
715
839
  /**
716
840
  * User not found
717
841
  */
@@ -720,8 +844,8 @@ export type GetV1UsersUserIdOrganizationsErrors = {
720
844
  error: string;
721
845
  };
722
846
  };
723
- export type GetV1UsersUserIdOrganizationsError = GetV1UsersUserIdOrganizationsErrors[keyof GetV1UsersUserIdOrganizationsErrors];
724
- export type GetV1UsersUserIdOrganizationsResponses = {
847
+ export type GetV1UsersByUserIdOrganizationsError = GetV1UsersByUserIdOrganizationsErrors[keyof GetV1UsersByUserIdOrganizationsErrors];
848
+ export type GetV1UsersByUserIdOrganizationsResponses = {
725
849
  /**
726
850
  * List of organizations
727
851
  */
@@ -729,8 +853,8 @@ export type GetV1UsersUserIdOrganizationsResponses = {
729
853
  data: Array<Organization>;
730
854
  };
731
855
  };
732
- export type GetV1UsersUserIdOrganizationsResponse = GetV1UsersUserIdOrganizationsResponses[keyof GetV1UsersUserIdOrganizationsResponses];
733
- export type GetV1UsersUserIdCalendarData = {
856
+ export type GetV1UsersByUserIdOrganizationsResponse = GetV1UsersByUserIdOrganizationsResponses[keyof GetV1UsersByUserIdOrganizationsResponses];
857
+ export type GetV1UsersByUserIdCalendarData = {
734
858
  body?: never;
735
859
  path: {
736
860
  userId: string;
@@ -740,11 +864,25 @@ export type GetV1UsersUserIdCalendarData = {
740
864
  };
741
865
  url: '/v1/users/{userId}/calendar';
742
866
  };
743
- export type GetV1UsersUserIdCalendarErrors = {
867
+ export type GetV1UsersByUserIdCalendarErrors = {
744
868
  /**
745
869
  * Bad request
746
870
  */
747
871
  400: {
872
+ error: string;
873
+ data: null;
874
+ };
875
+ /**
876
+ * Calendar provider rejected the stored access token
877
+ */
878
+ 401: {
879
+ data: null;
880
+ error: string;
881
+ };
882
+ /**
883
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
884
+ */
885
+ 403: {
748
886
  data: null;
749
887
  error: string;
750
888
  };
@@ -755,9 +893,23 @@ export type GetV1UsersUserIdCalendarErrors = {
755
893
  data: null;
756
894
  error: string;
757
895
  };
896
+ /**
897
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
898
+ */
899
+ 429: {
900
+ data: null;
901
+ error: string;
902
+ };
903
+ /**
904
+ * Calendar provider unreachable or returned an unreadable response
905
+ */
906
+ 502: {
907
+ data: null;
908
+ error: string;
909
+ };
758
910
  };
759
- export type GetV1UsersUserIdCalendarError = GetV1UsersUserIdCalendarErrors[keyof GetV1UsersUserIdCalendarErrors];
760
- export type GetV1UsersUserIdCalendarResponses = {
911
+ export type GetV1UsersByUserIdCalendarError = GetV1UsersByUserIdCalendarErrors[keyof GetV1UsersByUserIdCalendarErrors];
912
+ export type GetV1UsersByUserIdCalendarResponses = {
761
913
  /**
762
914
  * List of calendars
763
915
  */
@@ -765,8 +917,8 @@ export type GetV1UsersUserIdCalendarResponses = {
765
917
  data: Array<Calendar>;
766
918
  };
767
919
  };
768
- export type GetV1UsersUserIdCalendarResponse = GetV1UsersUserIdCalendarResponses[keyof GetV1UsersUserIdCalendarResponses];
769
- export type GetV1UsersUserIdCalendarBusyData = {
920
+ export type GetV1UsersByUserIdCalendarResponse = GetV1UsersByUserIdCalendarResponses[keyof GetV1UsersByUserIdCalendarResponses];
921
+ export type GetV1UsersByUserIdCalendarBusyData = {
770
922
  body?: never;
771
923
  path: {
772
924
  userId: string;
@@ -780,38 +932,67 @@ export type GetV1UsersUserIdCalendarBusyData = {
780
932
  * Start time of the time range in ISO format
781
933
  */
782
934
  start: string;
783
- calendarIds?: Array<string>;
935
+ calendarIds?: string | Array<string>;
784
936
  provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
785
937
  };
786
938
  url: '/v1/users/{userId}/calendar/busy';
787
939
  };
788
- export type GetV1UsersUserIdCalendarBusyErrors = {
940
+ export type GetV1UsersByUserIdCalendarBusyErrors = {
789
941
  /**
790
- * Bad request
942
+ * Bad request, more calendars requested than the limit allows, or every requested calendar id is invalid
791
943
  */
792
944
  400: {
945
+ error: string;
946
+ data: null;
947
+ };
948
+ /**
949
+ * Calendar provider rejected the stored access token
950
+ */
951
+ 401: {
793
952
  data: null;
794
953
  error: string;
795
954
  };
796
955
  /**
797
- * User not found
956
+ * Every requested calendar was denied by the provider, has no mailbox behind it, or the authorization does not cover busy times
957
+ */
958
+ 403: {
959
+ data: null;
960
+ error: string;
961
+ };
962
+ /**
963
+ * User not found, or none of the requested calendars exists
798
964
  */
799
965
  404: {
800
966
  data: null;
801
967
  error: string;
802
968
  };
969
+ /**
970
+ * The calendar provider throttled every requested calendar
971
+ */
972
+ 429: {
973
+ data: null;
974
+ error: string;
975
+ };
976
+ /**
977
+ * Every requested calendar could not be read
978
+ */
979
+ 502: {
980
+ data: null;
981
+ error: string;
982
+ };
803
983
  };
804
- export type GetV1UsersUserIdCalendarBusyError = GetV1UsersUserIdCalendarBusyErrors[keyof GetV1UsersUserIdCalendarBusyErrors];
805
- export type GetV1UsersUserIdCalendarBusyResponses = {
984
+ export type GetV1UsersByUserIdCalendarBusyError = GetV1UsersByUserIdCalendarBusyErrors[keyof GetV1UsersByUserIdCalendarBusyErrors];
985
+ export type GetV1UsersByUserIdCalendarBusyResponses = {
806
986
  /**
807
- * List of busy intervals
987
+ * List of busy intervals, plus the calendars that could not be read
808
988
  */
809
989
  200: {
810
990
  data: Array<TimeRange>;
991
+ failedCalendars: Array<FailedCalendar>;
811
992
  };
812
993
  };
813
- export type GetV1UsersUserIdCalendarBusyResponse = GetV1UsersUserIdCalendarBusyResponses[keyof GetV1UsersUserIdCalendarBusyResponses];
814
- export type GetV1UsersUserIdCalendarEventsData = {
994
+ export type GetV1UsersByUserIdCalendarBusyResponse = GetV1UsersByUserIdCalendarBusyResponses[keyof GetV1UsersByUserIdCalendarBusyResponses];
995
+ export type GetV1UsersByUserIdCalendarEventsData = {
815
996
  body?: never;
816
997
  path: {
817
998
  userId: string;
@@ -825,16 +1006,30 @@ export type GetV1UsersUserIdCalendarEventsData = {
825
1006
  * Start time of the time range in ISO format
826
1007
  */
827
1008
  start: string;
828
- calendarIds?: Array<string>;
1009
+ calendarIds?: string | Array<string>;
829
1010
  provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
830
1011
  };
831
1012
  url: '/v1/users/{userId}/calendar/events';
832
1013
  };
833
- export type GetV1UsersUserIdCalendarEventsErrors = {
1014
+ export type GetV1UsersByUserIdCalendarEventsErrors = {
834
1015
  /**
835
1016
  * Bad request
836
1017
  */
837
1018
  400: {
1019
+ error: string;
1020
+ data: null;
1021
+ };
1022
+ /**
1023
+ * Calendar provider rejected the stored access token
1024
+ */
1025
+ 401: {
1026
+ data: null;
1027
+ error: string;
1028
+ };
1029
+ /**
1030
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1031
+ */
1032
+ 403: {
838
1033
  data: null;
839
1034
  error: string;
840
1035
  };
@@ -845,9 +1040,23 @@ export type GetV1UsersUserIdCalendarEventsErrors = {
845
1040
  data: null;
846
1041
  error: string;
847
1042
  };
1043
+ /**
1044
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1045
+ */
1046
+ 429: {
1047
+ data: null;
1048
+ error: string;
1049
+ };
1050
+ /**
1051
+ * Calendar provider unreachable or returned an unreadable response
1052
+ */
1053
+ 502: {
1054
+ data: null;
1055
+ error: string;
1056
+ };
848
1057
  };
849
- export type GetV1UsersUserIdCalendarEventsError = GetV1UsersUserIdCalendarEventsErrors[keyof GetV1UsersUserIdCalendarEventsErrors];
850
- export type GetV1UsersUserIdCalendarEventsResponses = {
1058
+ export type GetV1UsersByUserIdCalendarEventsError = GetV1UsersByUserIdCalendarEventsErrors[keyof GetV1UsersByUserIdCalendarEventsErrors];
1059
+ export type GetV1UsersByUserIdCalendarEventsResponses = {
851
1060
  /**
852
1061
  * List of events
853
1062
  */
@@ -855,9 +1064,9 @@ export type GetV1UsersUserIdCalendarEventsResponses = {
855
1064
  data: Array<Event>;
856
1065
  };
857
1066
  };
858
- export type GetV1UsersUserIdCalendarEventsResponse = GetV1UsersUserIdCalendarEventsResponses[keyof GetV1UsersUserIdCalendarEventsResponses];
859
- export type PostV1UsersUserIdCalendarEventsMetaData = {
860
- body?: CreateMetaEvent;
1067
+ export type GetV1UsersByUserIdCalendarEventsResponse = GetV1UsersByUserIdCalendarEventsResponses[keyof GetV1UsersByUserIdCalendarEventsResponses];
1068
+ export type PostV1UsersByUserIdCalendarEventsMetaData = {
1069
+ body: CreateMetaEvent;
861
1070
  path: {
862
1071
  userId: string;
863
1072
  };
@@ -866,11 +1075,25 @@ export type PostV1UsersUserIdCalendarEventsMetaData = {
866
1075
  };
867
1076
  url: '/v1/users/{userId}/calendar/events/meta';
868
1077
  };
869
- export type PostV1UsersUserIdCalendarEventsMetaErrors = {
1078
+ export type PostV1UsersByUserIdCalendarEventsMetaErrors = {
870
1079
  /**
871
1080
  * Bad request
872
1081
  */
873
1082
  400: {
1083
+ error: string;
1084
+ data: null;
1085
+ };
1086
+ /**
1087
+ * Calendar provider rejected the stored access token
1088
+ */
1089
+ 401: {
1090
+ data: null;
1091
+ error: string;
1092
+ };
1093
+ /**
1094
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1095
+ */
1096
+ 403: {
874
1097
  data: null;
875
1098
  error: string;
876
1099
  };
@@ -881,9 +1104,30 @@ export type PostV1UsersUserIdCalendarEventsMetaErrors = {
881
1104
  data: null;
882
1105
  error: string;
883
1106
  };
1107
+ /**
1108
+ * The provider created the event, but it could not be read back into the Recal event shape
1109
+ */
1110
+ 422: {
1111
+ data: null;
1112
+ error: string;
1113
+ };
1114
+ /**
1115
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1116
+ */
1117
+ 429: {
1118
+ data: null;
1119
+ error: string;
1120
+ };
1121
+ /**
1122
+ * Calendar provider unreachable or returned an unreadable response
1123
+ */
1124
+ 502: {
1125
+ data: null;
1126
+ error: string;
1127
+ };
884
1128
  };
885
- export type PostV1UsersUserIdCalendarEventsMetaError = PostV1UsersUserIdCalendarEventsMetaErrors[keyof PostV1UsersUserIdCalendarEventsMetaErrors];
886
- export type PostV1UsersUserIdCalendarEventsMetaResponses = {
1129
+ export type PostV1UsersByUserIdCalendarEventsMetaError = PostV1UsersByUserIdCalendarEventsMetaErrors[keyof PostV1UsersByUserIdCalendarEventsMetaErrors];
1130
+ export type PostV1UsersByUserIdCalendarEventsMetaResponses = {
887
1131
  /**
888
1132
  * Meta event created
889
1133
  */
@@ -891,8 +1135,8 @@ export type PostV1UsersUserIdCalendarEventsMetaResponses = {
891
1135
  data: MetaEvent;
892
1136
  };
893
1137
  };
894
- export type PostV1UsersUserIdCalendarEventsMetaResponse = PostV1UsersUserIdCalendarEventsMetaResponses[keyof PostV1UsersUserIdCalendarEventsMetaResponses];
895
- export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdData = {
1138
+ export type PostV1UsersByUserIdCalendarEventsMetaResponse = PostV1UsersByUserIdCalendarEventsMetaResponses[keyof PostV1UsersByUserIdCalendarEventsMetaResponses];
1139
+ export type DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdData = {
896
1140
  body?: never;
897
1141
  path: {
898
1142
  metaId: string;
@@ -903,11 +1147,25 @@ export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdData = {
903
1147
  };
904
1148
  url: '/v1/users/{userId}/calendar/events/meta/{metaId}';
905
1149
  };
906
- export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
1150
+ export type DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdErrors = {
907
1151
  /**
908
1152
  * Bad request
909
1153
  */
910
1154
  400: {
1155
+ error: string;
1156
+ data: null;
1157
+ };
1158
+ /**
1159
+ * Calendar provider rejected the stored access token
1160
+ */
1161
+ 401: {
1162
+ data: null;
1163
+ error: string;
1164
+ };
1165
+ /**
1166
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1167
+ */
1168
+ 403: {
911
1169
  data: null;
912
1170
  error: string;
913
1171
  };
@@ -918,9 +1176,23 @@ export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
918
1176
  data: null;
919
1177
  error: string;
920
1178
  };
1179
+ /**
1180
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1181
+ */
1182
+ 429: {
1183
+ data: null;
1184
+ error: string;
1185
+ };
1186
+ /**
1187
+ * Calendar provider unreachable or returned an unreadable response
1188
+ */
1189
+ 502: {
1190
+ data: null;
1191
+ error: string;
1192
+ };
921
1193
  };
922
- export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdError = DeleteV1UsersUserIdCalendarEventsMetaMetaIdErrors[keyof DeleteV1UsersUserIdCalendarEventsMetaMetaIdErrors];
923
- export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
1194
+ export type DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdError = DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdErrors[keyof DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdErrors];
1195
+ export type DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdResponses = {
924
1196
  /**
925
1197
  * Meta event deleted
926
1198
  */
@@ -930,8 +1202,8 @@ export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
930
1202
  };
931
1203
  };
932
1204
  };
933
- export type DeleteV1UsersUserIdCalendarEventsMetaMetaIdResponse = DeleteV1UsersUserIdCalendarEventsMetaMetaIdResponses[keyof DeleteV1UsersUserIdCalendarEventsMetaMetaIdResponses];
934
- export type GetV1UsersUserIdCalendarEventsMetaMetaIdData = {
1205
+ export type DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdResponse = DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdResponses[keyof DeleteV1UsersByUserIdCalendarEventsMetaByMetaIdResponses];
1206
+ export type GetV1UsersByUserIdCalendarEventsMetaByMetaIdData = {
935
1207
  body?: never;
936
1208
  path: {
937
1209
  metaId: string;
@@ -942,11 +1214,25 @@ export type GetV1UsersUserIdCalendarEventsMetaMetaIdData = {
942
1214
  };
943
1215
  url: '/v1/users/{userId}/calendar/events/meta/{metaId}';
944
1216
  };
945
- export type GetV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
1217
+ export type GetV1UsersByUserIdCalendarEventsMetaByMetaIdErrors = {
946
1218
  /**
947
1219
  * Bad request
948
1220
  */
949
1221
  400: {
1222
+ error: string;
1223
+ data: null;
1224
+ };
1225
+ /**
1226
+ * Calendar provider rejected the stored access token
1227
+ */
1228
+ 401: {
1229
+ data: null;
1230
+ error: string;
1231
+ };
1232
+ /**
1233
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1234
+ */
1235
+ 403: {
950
1236
  data: null;
951
1237
  error: string;
952
1238
  };
@@ -957,9 +1243,23 @@ export type GetV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
957
1243
  data: null;
958
1244
  error: string;
959
1245
  };
1246
+ /**
1247
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1248
+ */
1249
+ 429: {
1250
+ data: null;
1251
+ error: string;
1252
+ };
1253
+ /**
1254
+ * Calendar provider unreachable or returned an unreadable response
1255
+ */
1256
+ 502: {
1257
+ data: null;
1258
+ error: string;
1259
+ };
960
1260
  };
961
- export type GetV1UsersUserIdCalendarEventsMetaMetaIdError = GetV1UsersUserIdCalendarEventsMetaMetaIdErrors[keyof GetV1UsersUserIdCalendarEventsMetaMetaIdErrors];
962
- export type GetV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
1261
+ export type GetV1UsersByUserIdCalendarEventsMetaByMetaIdError = GetV1UsersByUserIdCalendarEventsMetaByMetaIdErrors[keyof GetV1UsersByUserIdCalendarEventsMetaByMetaIdErrors];
1262
+ export type GetV1UsersByUserIdCalendarEventsMetaByMetaIdResponses = {
963
1263
  /**
964
1264
  * Event
965
1265
  */
@@ -967,9 +1267,9 @@ export type GetV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
967
1267
  data: MetaEvent;
968
1268
  };
969
1269
  };
970
- export type GetV1UsersUserIdCalendarEventsMetaMetaIdResponse = GetV1UsersUserIdCalendarEventsMetaMetaIdResponses[keyof GetV1UsersUserIdCalendarEventsMetaMetaIdResponses];
971
- export type PutV1UsersUserIdCalendarEventsMetaMetaIdData = {
972
- body?: UpdateMetaEvent;
1270
+ export type GetV1UsersByUserIdCalendarEventsMetaByMetaIdResponse = GetV1UsersByUserIdCalendarEventsMetaByMetaIdResponses[keyof GetV1UsersByUserIdCalendarEventsMetaByMetaIdResponses];
1271
+ export type PutV1UsersByUserIdCalendarEventsMetaByMetaIdData = {
1272
+ body: UpdateMetaEvent;
973
1273
  path: {
974
1274
  metaId: string;
975
1275
  userId: string;
@@ -979,11 +1279,25 @@ export type PutV1UsersUserIdCalendarEventsMetaMetaIdData = {
979
1279
  };
980
1280
  url: '/v1/users/{userId}/calendar/events/meta/{metaId}';
981
1281
  };
982
- export type PutV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
1282
+ export type PutV1UsersByUserIdCalendarEventsMetaByMetaIdErrors = {
983
1283
  /**
984
1284
  * Bad request
985
1285
  */
986
1286
  400: {
1287
+ error: string;
1288
+ data: null;
1289
+ };
1290
+ /**
1291
+ * Calendar provider rejected the stored access token
1292
+ */
1293
+ 401: {
1294
+ data: null;
1295
+ error: string;
1296
+ };
1297
+ /**
1298
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1299
+ */
1300
+ 403: {
987
1301
  data: null;
988
1302
  error: string;
989
1303
  };
@@ -994,9 +1308,30 @@ export type PutV1UsersUserIdCalendarEventsMetaMetaIdErrors = {
994
1308
  data: null;
995
1309
  error: string;
996
1310
  };
1311
+ /**
1312
+ * The provider applied the update, but the event could not be read back into the Recal event shape
1313
+ */
1314
+ 422: {
1315
+ data: null;
1316
+ error: string;
1317
+ };
1318
+ /**
1319
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1320
+ */
1321
+ 429: {
1322
+ data: null;
1323
+ error: string;
1324
+ };
1325
+ /**
1326
+ * Calendar provider unreachable or returned an unreadable response
1327
+ */
1328
+ 502: {
1329
+ data: null;
1330
+ error: string;
1331
+ };
997
1332
  };
998
- export type PutV1UsersUserIdCalendarEventsMetaMetaIdError = PutV1UsersUserIdCalendarEventsMetaMetaIdErrors[keyof PutV1UsersUserIdCalendarEventsMetaMetaIdErrors];
999
- export type PutV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
1333
+ export type PutV1UsersByUserIdCalendarEventsMetaByMetaIdError = PutV1UsersByUserIdCalendarEventsMetaByMetaIdErrors[keyof PutV1UsersByUserIdCalendarEventsMetaByMetaIdErrors];
1334
+ export type PutV1UsersByUserIdCalendarEventsMetaByMetaIdResponses = {
1000
1335
  /**
1001
1336
  * Meta event updated
1002
1337
  */
@@ -1004,9 +1339,9 @@ export type PutV1UsersUserIdCalendarEventsMetaMetaIdResponses = {
1004
1339
  data: MetaEvent;
1005
1340
  };
1006
1341
  };
1007
- export type PutV1UsersUserIdCalendarEventsMetaMetaIdResponse = PutV1UsersUserIdCalendarEventsMetaMetaIdResponses[keyof PutV1UsersUserIdCalendarEventsMetaMetaIdResponses];
1008
- export type PostV1UsersUserIdCalendarEventsProviderCalendarIdData = {
1009
- body?: CreateEvent;
1342
+ export type PutV1UsersByUserIdCalendarEventsMetaByMetaIdResponse = PutV1UsersByUserIdCalendarEventsMetaByMetaIdResponses[keyof PutV1UsersByUserIdCalendarEventsMetaByMetaIdResponses];
1343
+ export type PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdData = {
1344
+ body: CreateEvent;
1010
1345
  path: {
1011
1346
  calendarId: string;
1012
1347
  provider: 'google' | 'microsoft';
@@ -1015,11 +1350,25 @@ export type PostV1UsersUserIdCalendarEventsProviderCalendarIdData = {
1015
1350
  query?: never;
1016
1351
  url: '/v1/users/{userId}/calendar/events/{provider}/{calendarId}';
1017
1352
  };
1018
- export type PostV1UsersUserIdCalendarEventsProviderCalendarIdErrors = {
1353
+ export type PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdErrors = {
1019
1354
  /**
1020
1355
  * Bad request
1021
1356
  */
1022
1357
  400: {
1358
+ error: string;
1359
+ data: null;
1360
+ };
1361
+ /**
1362
+ * Calendar provider rejected the stored access token
1363
+ */
1364
+ 401: {
1365
+ data: null;
1366
+ error: string;
1367
+ };
1368
+ /**
1369
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1370
+ */
1371
+ 403: {
1023
1372
  data: null;
1024
1373
  error: string;
1025
1374
  };
@@ -1030,9 +1379,37 @@ export type PostV1UsersUserIdCalendarEventsProviderCalendarIdErrors = {
1030
1379
  data: null;
1031
1380
  error: string;
1032
1381
  };
1382
+ /**
1383
+ * The `id` supplied for the new event is already taken on that calendar. Google only: the Microsoft path never forwards a caller-supplied id
1384
+ */
1385
+ 409: {
1386
+ data: null;
1387
+ error: string;
1388
+ };
1389
+ /**
1390
+ * The provider created the event, but it could not be read back into the Recal event shape
1391
+ */
1392
+ 422: {
1393
+ data: null;
1394
+ error: string;
1395
+ };
1396
+ /**
1397
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1398
+ */
1399
+ 429: {
1400
+ data: null;
1401
+ error: string;
1402
+ };
1403
+ /**
1404
+ * Calendar provider unreachable or returned an unreadable response
1405
+ */
1406
+ 502: {
1407
+ data: null;
1408
+ error: string;
1409
+ };
1033
1410
  };
1034
- export type PostV1UsersUserIdCalendarEventsProviderCalendarIdError = PostV1UsersUserIdCalendarEventsProviderCalendarIdErrors[keyof PostV1UsersUserIdCalendarEventsProviderCalendarIdErrors];
1035
- export type PostV1UsersUserIdCalendarEventsProviderCalendarIdResponses = {
1411
+ export type PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdError = PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdErrors[keyof PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdErrors];
1412
+ export type PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdResponses = {
1036
1413
  /**
1037
1414
  * Event created
1038
1415
  */
@@ -1040,8 +1417,8 @@ export type PostV1UsersUserIdCalendarEventsProviderCalendarIdResponses = {
1040
1417
  data: Event;
1041
1418
  };
1042
1419
  };
1043
- export type PostV1UsersUserIdCalendarEventsProviderCalendarIdResponse = PostV1UsersUserIdCalendarEventsProviderCalendarIdResponses[keyof PostV1UsersUserIdCalendarEventsProviderCalendarIdResponses];
1044
- export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1420
+ export type PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdResponse = PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdResponses[keyof PostV1UsersByUserIdCalendarEventsByProviderByCalendarIdResponses];
1421
+ export type DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdData = {
1045
1422
  body?: never;
1046
1423
  path: {
1047
1424
  calendarId: string;
@@ -1052,11 +1429,25 @@ export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1052
1429
  query?: never;
1053
1430
  url: '/v1/users/{userId}/calendar/events/{provider}/{calendarId}/{eventId}';
1054
1431
  };
1055
- export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1432
+ export type DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors = {
1056
1433
  /**
1057
1434
  * Bad request
1058
1435
  */
1059
1436
  400: {
1437
+ error: string;
1438
+ data: null;
1439
+ };
1440
+ /**
1441
+ * Calendar provider rejected the stored access token
1442
+ */
1443
+ 401: {
1444
+ data: null;
1445
+ error: string;
1446
+ };
1447
+ /**
1448
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1449
+ */
1450
+ 403: {
1060
1451
  data: null;
1061
1452
  error: string;
1062
1453
  };
@@ -1067,9 +1458,23 @@ export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1067
1458
  data: null;
1068
1459
  error: string;
1069
1460
  };
1461
+ /**
1462
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1463
+ */
1464
+ 429: {
1465
+ data: null;
1466
+ error: string;
1467
+ };
1468
+ /**
1469
+ * Calendar provider unreachable or returned an unreadable response
1470
+ */
1471
+ 502: {
1472
+ data: null;
1473
+ error: string;
1474
+ };
1070
1475
  };
1071
- export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdError = DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors[keyof DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors];
1072
- export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses = {
1476
+ export type DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdError = DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors[keyof DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors];
1477
+ export type DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses = {
1073
1478
  /**
1074
1479
  * Event deleted
1075
1480
  */
@@ -1079,8 +1484,8 @@ export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses
1079
1484
  };
1080
1485
  };
1081
1486
  };
1082
- export type DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponse = DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses[keyof DeleteV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses];
1083
- export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1487
+ export type DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponse = DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses[keyof DeleteV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses];
1488
+ export type GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdData = {
1084
1489
  body?: never;
1085
1490
  path: {
1086
1491
  calendarId: string;
@@ -1091,11 +1496,25 @@ export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1091
1496
  query?: never;
1092
1497
  url: '/v1/users/{userId}/calendar/events/{provider}/{calendarId}/{eventId}';
1093
1498
  };
1094
- export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1499
+ export type GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors = {
1095
1500
  /**
1096
1501
  * Bad request
1097
1502
  */
1098
1503
  400: {
1504
+ error: string;
1505
+ data: null;
1506
+ };
1507
+ /**
1508
+ * Calendar provider rejected the stored access token
1509
+ */
1510
+ 401: {
1511
+ data: null;
1512
+ error: string;
1513
+ };
1514
+ /**
1515
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1516
+ */
1517
+ 403: {
1099
1518
  data: null;
1100
1519
  error: string;
1101
1520
  };
@@ -1106,9 +1525,23 @@ export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1106
1525
  data: null;
1107
1526
  error: string;
1108
1527
  };
1528
+ /**
1529
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1530
+ */
1531
+ 429: {
1532
+ data: null;
1533
+ error: string;
1534
+ };
1535
+ /**
1536
+ * Calendar provider unreachable or returned an unreadable response
1537
+ */
1538
+ 502: {
1539
+ data: null;
1540
+ error: string;
1541
+ };
1109
1542
  };
1110
- export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdError = GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors[keyof GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors];
1111
- export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses = {
1543
+ export type GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdError = GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors[keyof GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors];
1544
+ export type GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses = {
1112
1545
  /**
1113
1546
  * Event found
1114
1547
  */
@@ -1116,9 +1549,9 @@ export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses = {
1116
1549
  data: Event;
1117
1550
  };
1118
1551
  };
1119
- export type GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponse = GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses[keyof GetV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses];
1120
- export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1121
- body?: UpdateEvent;
1552
+ export type GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponse = GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses[keyof GetV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses];
1553
+ export type PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdData = {
1554
+ body: UpdateEvent;
1122
1555
  path: {
1123
1556
  calendarId: string;
1124
1557
  eventId: string;
@@ -1128,11 +1561,25 @@ export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdData = {
1128
1561
  query?: never;
1129
1562
  url: '/v1/users/{userId}/calendar/events/{provider}/{calendarId}/{eventId}';
1130
1563
  };
1131
- export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1564
+ export type PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors = {
1132
1565
  /**
1133
1566
  * Bad request
1134
1567
  */
1135
1568
  400: {
1569
+ error: string;
1570
+ data: null;
1571
+ };
1572
+ /**
1573
+ * Calendar provider rejected the stored access token
1574
+ */
1575
+ 401: {
1576
+ data: null;
1577
+ error: string;
1578
+ };
1579
+ /**
1580
+ * The calendar authorization does not cover the operation. A scope refusal also carries `operation` alongside the envelope, plus `validScopes` when Recal's own pre-flight raised it; a flat denial from the provider carries neither
1581
+ */
1582
+ 403: {
1136
1583
  data: null;
1137
1584
  error: string;
1138
1585
  };
@@ -1143,9 +1590,30 @@ export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors = {
1143
1590
  data: null;
1144
1591
  error: string;
1145
1592
  };
1593
+ /**
1594
+ * The provider applied the update, but the event could not be read back into the Recal event shape
1595
+ */
1596
+ 422: {
1597
+ data: null;
1598
+ error: string;
1599
+ };
1600
+ /**
1601
+ * The calendar provider throttled the request. When it says how long to wait, the response carries a `Retry-After` header and a `retryAfter` field alongside the envelope
1602
+ */
1603
+ 429: {
1604
+ data: null;
1605
+ error: string;
1606
+ };
1607
+ /**
1608
+ * Calendar provider unreachable or returned an unreadable response
1609
+ */
1610
+ 502: {
1611
+ data: null;
1612
+ error: string;
1613
+ };
1146
1614
  };
1147
- export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdError = PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors[keyof PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdErrors];
1148
- export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses = {
1615
+ export type PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdError = PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors[keyof PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdErrors];
1616
+ export type PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses = {
1149
1617
  /**
1150
1618
  * Event updated
1151
1619
  */
@@ -1153,8 +1621,8 @@ export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses = {
1153
1621
  data: Event;
1154
1622
  };
1155
1623
  };
1156
- export type PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponse = PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses[keyof PutV1UsersUserIdCalendarEventsProviderCalendarIdEventIdResponses];
1157
- export type GetV1UsersUserIdOauthData = {
1624
+ export type PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponse = PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses[keyof PutV1UsersByUserIdCalendarEventsByProviderByCalendarIdByEventIdResponses];
1625
+ export type GetV1UsersByUserIdOauthData = {
1158
1626
  body?: never;
1159
1627
  path: {
1160
1628
  userId: string;
@@ -1167,7 +1635,14 @@ export type GetV1UsersUserIdOauthData = {
1167
1635
  };
1168
1636
  url: '/v1/users/{userId}/oauth';
1169
1637
  };
1170
- export type GetV1UsersUserIdOauthErrors = {
1638
+ export type GetV1UsersByUserIdOauthErrors = {
1639
+ /**
1640
+ * Validation Error
1641
+ */
1642
+ 400: {
1643
+ error: string;
1644
+ data: null;
1645
+ };
1171
1646
  /**
1172
1647
  * User not found
1173
1648
  */
@@ -1176,8 +1651,8 @@ export type GetV1UsersUserIdOauthErrors = {
1176
1651
  error: string;
1177
1652
  };
1178
1653
  };
1179
- export type GetV1UsersUserIdOauthError = GetV1UsersUserIdOauthErrors[keyof GetV1UsersUserIdOauthErrors];
1180
- export type GetV1UsersUserIdOauthResponses = {
1654
+ export type GetV1UsersByUserIdOauthError = GetV1UsersByUserIdOauthErrors[keyof GetV1UsersByUserIdOauthErrors];
1655
+ export type GetV1UsersByUserIdOauthResponses = {
1181
1656
  /**
1182
1657
  * All oauth connections of the user
1183
1658
  */
@@ -1185,8 +1660,8 @@ export type GetV1UsersUserIdOauthResponses = {
1185
1660
  data: Array<AuthConnection>;
1186
1661
  };
1187
1662
  };
1188
- export type GetV1UsersUserIdOauthResponse = GetV1UsersUserIdOauthResponses[keyof GetV1UsersUserIdOauthResponses];
1189
- export type GetV1UsersUserIdOauthLinksData = {
1663
+ export type GetV1UsersByUserIdOauthResponse = GetV1UsersByUserIdOauthResponses[keyof GetV1UsersByUserIdOauthResponses];
1664
+ export type GetV1UsersByUserIdOauthLinksData = {
1190
1665
  body?: never;
1191
1666
  path: {
1192
1667
  userId: string;
@@ -1199,18 +1674,18 @@ export type GetV1UsersUserIdOauthLinksData = {
1199
1674
  /**
1200
1675
  * Scope of the oauth connection
1201
1676
  */
1202
- scope: Array<string> | 'edit' | 'free-busy';
1677
+ scope: Array<string> | 'edit' | 'free-busy' | 'read' | 'write';
1203
1678
  provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
1204
1679
  };
1205
1680
  url: '/v1/users/{userId}/oauth/links';
1206
1681
  };
1207
- export type GetV1UsersUserIdOauthLinksErrors = {
1682
+ export type GetV1UsersByUserIdOauthLinksErrors = {
1208
1683
  /**
1209
1684
  * Invalid request
1210
1685
  */
1211
1686
  400: {
1212
- data: null;
1213
1687
  error: string;
1688
+ data: null;
1214
1689
  };
1215
1690
  /**
1216
1691
  * User not found
@@ -1220,8 +1695,8 @@ export type GetV1UsersUserIdOauthLinksErrors = {
1220
1695
  error: string;
1221
1696
  };
1222
1697
  };
1223
- export type GetV1UsersUserIdOauthLinksError = GetV1UsersUserIdOauthLinksErrors[keyof GetV1UsersUserIdOauthLinksErrors];
1224
- export type GetV1UsersUserIdOauthLinksResponses = {
1698
+ export type GetV1UsersByUserIdOauthLinksError = GetV1UsersByUserIdOauthLinksErrors[keyof GetV1UsersByUserIdOauthLinksErrors];
1699
+ export type GetV1UsersByUserIdOauthLinksResponses = {
1225
1700
  /**
1226
1701
  * Auth urls for the oauth providers
1227
1702
  */
@@ -1235,8 +1710,8 @@ export type GetV1UsersUserIdOauthLinksResponses = {
1235
1710
  }>;
1236
1711
  };
1237
1712
  };
1238
- export type GetV1UsersUserIdOauthLinksResponse = GetV1UsersUserIdOauthLinksResponses[keyof GetV1UsersUserIdOauthLinksResponses];
1239
- export type GetV1UsersUserIdOauthProviderLinkData = {
1713
+ export type GetV1UsersByUserIdOauthLinksResponse = GetV1UsersByUserIdOauthLinksResponses[keyof GetV1UsersByUserIdOauthLinksResponses];
1714
+ export type GetV1UsersByUserIdOauthByProviderLinkData = {
1240
1715
  body?: never;
1241
1716
  path: {
1242
1717
  provider: 'google' | 'microsoft';
@@ -1250,7 +1725,7 @@ export type GetV1UsersUserIdOauthProviderLinkData = {
1250
1725
  /**
1251
1726
  * Scope of the oauth connection
1252
1727
  */
1253
- scope: Array<string> | 'edit' | 'free-busy';
1728
+ scope: Array<string> | 'edit' | 'free-busy' | 'read' | 'write';
1254
1729
  /**
1255
1730
  * Redirect url for the oauth provider
1256
1731
  */
@@ -1258,13 +1733,13 @@ export type GetV1UsersUserIdOauthProviderLinkData = {
1258
1733
  };
1259
1734
  url: '/v1/users/{userId}/oauth/{provider}/link';
1260
1735
  };
1261
- export type GetV1UsersUserIdOauthProviderLinkErrors = {
1736
+ export type GetV1UsersByUserIdOauthByProviderLinkErrors = {
1262
1737
  /**
1263
1738
  * Invalid request
1264
1739
  */
1265
1740
  400: {
1266
- data: null;
1267
1741
  error: string;
1742
+ data: null;
1268
1743
  };
1269
1744
  /**
1270
1745
  * User not found
@@ -1274,8 +1749,8 @@ export type GetV1UsersUserIdOauthProviderLinkErrors = {
1274
1749
  error: string;
1275
1750
  };
1276
1751
  };
1277
- export type GetV1UsersUserIdOauthProviderLinkError = GetV1UsersUserIdOauthProviderLinkErrors[keyof GetV1UsersUserIdOauthProviderLinkErrors];
1278
- export type GetV1UsersUserIdOauthProviderLinkResponses = {
1752
+ export type GetV1UsersByUserIdOauthByProviderLinkError = GetV1UsersByUserIdOauthByProviderLinkErrors[keyof GetV1UsersByUserIdOauthByProviderLinkErrors];
1753
+ export type GetV1UsersByUserIdOauthByProviderLinkResponses = {
1279
1754
  /**
1280
1755
  * Auth url for the oauth provider
1281
1756
  */
@@ -1288,9 +1763,9 @@ export type GetV1UsersUserIdOauthProviderLinkResponses = {
1288
1763
  };
1289
1764
  };
1290
1765
  };
1291
- export type GetV1UsersUserIdOauthProviderLinkResponse = GetV1UsersUserIdOauthProviderLinkResponses[keyof GetV1UsersUserIdOauthProviderLinkResponses];
1292
- export type PostV1UsersOauthProviderVerifyData = {
1293
- body?: {
1766
+ export type GetV1UsersByUserIdOauthByProviderLinkResponse = GetV1UsersByUserIdOauthByProviderLinkResponses[keyof GetV1UsersByUserIdOauthByProviderLinkResponses];
1767
+ export type PostV1UsersOauthByProviderVerifyData = {
1768
+ body: {
1294
1769
  code: string;
1295
1770
  scope: Array<string>;
1296
1771
  state: string;
@@ -1306,7 +1781,7 @@ export type PostV1UsersOauthProviderVerifyData = {
1306
1781
  };
1307
1782
  url: '/v1/users/oauth/{provider}/verify';
1308
1783
  };
1309
- export type PostV1UsersOauthProviderVerifyErrors = {
1784
+ export type PostV1UsersOauthByProviderVerifyErrors = {
1310
1785
  /**
1311
1786
  * Invalid request
1312
1787
  */
@@ -1322,14 +1797,14 @@ export type PostV1UsersOauthProviderVerifyErrors = {
1322
1797
  error: string;
1323
1798
  };
1324
1799
  };
1325
- export type PostV1UsersOauthProviderVerifyError = PostV1UsersOauthProviderVerifyErrors[keyof PostV1UsersOauthProviderVerifyErrors];
1326
- export type PostV1UsersOauthProviderVerifyResponses = {
1800
+ export type PostV1UsersOauthByProviderVerifyError = PostV1UsersOauthByProviderVerifyErrors[keyof PostV1UsersOauthByProviderVerifyErrors];
1801
+ export type PostV1UsersOauthByProviderVerifyResponses = {
1327
1802
  /**
1328
1803
  * OAuth code verified successfully
1329
1804
  */
1330
1805
  200: unknown;
1331
1806
  };
1332
- export type DeleteV1UsersUserIdOauthProviderData = {
1807
+ export type DeleteV1UsersByUserIdOauthByProviderData = {
1333
1808
  body?: never;
1334
1809
  path: {
1335
1810
  provider: 'google' | 'microsoft';
@@ -1338,7 +1813,14 @@ export type DeleteV1UsersUserIdOauthProviderData = {
1338
1813
  query?: never;
1339
1814
  url: '/v1/users/{userId}/oauth/{provider}';
1340
1815
  };
1341
- export type DeleteV1UsersUserIdOauthProviderErrors = {
1816
+ export type DeleteV1UsersByUserIdOauthByProviderErrors = {
1817
+ /**
1818
+ * Validation Error
1819
+ */
1820
+ 400: {
1821
+ error: string;
1822
+ data: null;
1823
+ };
1342
1824
  /**
1343
1825
  * User not found
1344
1826
  */
@@ -1346,15 +1828,22 @@ export type DeleteV1UsersUserIdOauthProviderErrors = {
1346
1828
  data: null;
1347
1829
  error: string;
1348
1830
  };
1831
+ /**
1832
+ * Internal server error
1833
+ */
1834
+ 500: {
1835
+ data: null;
1836
+ error: string;
1837
+ };
1349
1838
  };
1350
- export type DeleteV1UsersUserIdOauthProviderError = DeleteV1UsersUserIdOauthProviderErrors[keyof DeleteV1UsersUserIdOauthProviderErrors];
1351
- export type DeleteV1UsersUserIdOauthProviderResponses = {
1839
+ export type DeleteV1UsersByUserIdOauthByProviderError = DeleteV1UsersByUserIdOauthByProviderErrors[keyof DeleteV1UsersByUserIdOauthByProviderErrors];
1840
+ export type DeleteV1UsersByUserIdOauthByProviderResponses = {
1352
1841
  /**
1353
1842
  * OAuth connection deleted
1354
1843
  */
1355
1844
  200: unknown;
1356
1845
  };
1357
- export type GetV1UsersUserIdOauthProviderData = {
1846
+ export type GetV1UsersByUserIdOauthByProviderData = {
1358
1847
  body?: never;
1359
1848
  path: {
1360
1849
  provider: 'google' | 'microsoft';
@@ -1368,7 +1857,14 @@ export type GetV1UsersUserIdOauthProviderData = {
1368
1857
  };
1369
1858
  url: '/v1/users/{userId}/oauth/{provider}';
1370
1859
  };
1371
- export type GetV1UsersUserIdOauthProviderErrors = {
1860
+ export type GetV1UsersByUserIdOauthByProviderErrors = {
1861
+ /**
1862
+ * Validation Error
1863
+ */
1864
+ 400: {
1865
+ error: string;
1866
+ data: null;
1867
+ };
1372
1868
  /**
1373
1869
  * User not found
1374
1870
  */
@@ -1377,8 +1873,8 @@ export type GetV1UsersUserIdOauthProviderErrors = {
1377
1873
  error: string;
1378
1874
  };
1379
1875
  };
1380
- export type GetV1UsersUserIdOauthProviderError = GetV1UsersUserIdOauthProviderErrors[keyof GetV1UsersUserIdOauthProviderErrors];
1381
- export type GetV1UsersUserIdOauthProviderResponses = {
1876
+ export type GetV1UsersByUserIdOauthByProviderError = GetV1UsersByUserIdOauthByProviderErrors[keyof GetV1UsersByUserIdOauthByProviderErrors];
1877
+ export type GetV1UsersByUserIdOauthByProviderResponses = {
1382
1878
  /**
1383
1879
  * OAuth connection of the user
1384
1880
  */
@@ -1386,9 +1882,9 @@ export type GetV1UsersUserIdOauthProviderResponses = {
1386
1882
  data: AuthConnection;
1387
1883
  };
1388
1884
  };
1389
- export type GetV1UsersUserIdOauthProviderResponse = GetV1UsersUserIdOauthProviderResponses[keyof GetV1UsersUserIdOauthProviderResponses];
1390
- export type PostV1UsersUserIdOauthProviderData = {
1391
- body?: {
1885
+ export type GetV1UsersByUserIdOauthByProviderResponse = GetV1UsersByUserIdOauthByProviderResponses[keyof GetV1UsersByUserIdOauthByProviderResponses];
1886
+ export type PostV1UsersByUserIdOauthByProviderData = {
1887
+ body: {
1392
1888
  accessToken: string;
1393
1889
  email: string | null;
1394
1890
  expiresAt: string | null;
@@ -1402,13 +1898,13 @@ export type PostV1UsersUserIdOauthProviderData = {
1402
1898
  query?: never;
1403
1899
  url: '/v1/users/{userId}/oauth/{provider}';
1404
1900
  };
1405
- export type PostV1UsersUserIdOauthProviderErrors = {
1901
+ export type PostV1UsersByUserIdOauthByProviderErrors = {
1406
1902
  /**
1407
1903
  * Invalid request
1408
1904
  */
1409
1905
  400: {
1410
- data: null;
1411
1906
  error: string;
1907
+ data: null;
1412
1908
  };
1413
1909
  /**
1414
1910
  * User not found
@@ -1418,8 +1914,8 @@ export type PostV1UsersUserIdOauthProviderErrors = {
1418
1914
  error: string;
1419
1915
  };
1420
1916
  };
1421
- export type PostV1UsersUserIdOauthProviderError = PostV1UsersUserIdOauthProviderErrors[keyof PostV1UsersUserIdOauthProviderErrors];
1422
- export type PostV1UsersUserIdOauthProviderResponses = {
1917
+ export type PostV1UsersByUserIdOauthByProviderError = PostV1UsersByUserIdOauthByProviderErrors[keyof PostV1UsersByUserIdOauthByProviderErrors];
1918
+ export type PostV1UsersByUserIdOauthByProviderResponses = {
1423
1919
  /**
1424
1920
  * OAuth connection created
1425
1921
  */
@@ -1427,8 +1923,8 @@ export type PostV1UsersUserIdOauthProviderResponses = {
1427
1923
  data: AuthConnection;
1428
1924
  };
1429
1925
  };
1430
- export type PostV1UsersUserIdOauthProviderResponse = PostV1UsersUserIdOauthProviderResponses[keyof PostV1UsersUserIdOauthProviderResponses];
1431
- export type GetV1UsersUserIdOauthProviderTokenData = {
1926
+ export type PostV1UsersByUserIdOauthByProviderResponse = PostV1UsersByUserIdOauthByProviderResponses[keyof PostV1UsersByUserIdOauthByProviderResponses];
1927
+ export type GetV1UsersByUserIdOauthByProviderTokenData = {
1432
1928
  body?: never;
1433
1929
  path: {
1434
1930
  provider: 'google' | 'microsoft';
@@ -1437,13 +1933,13 @@ export type GetV1UsersUserIdOauthProviderTokenData = {
1437
1933
  query?: never;
1438
1934
  url: '/v1/users/{userId}/oauth/{provider}/token';
1439
1935
  };
1440
- export type GetV1UsersUserIdOauthProviderTokenErrors = {
1936
+ export type GetV1UsersByUserIdOauthByProviderTokenErrors = {
1441
1937
  /**
1442
1938
  * Invalid request
1443
1939
  */
1444
1940
  400: {
1445
- data: null;
1446
1941
  error: string;
1942
+ data: null;
1447
1943
  };
1448
1944
  /**
1449
1945
  * User not found
@@ -1453,8 +1949,8 @@ export type GetV1UsersUserIdOauthProviderTokenErrors = {
1453
1949
  error: string;
1454
1950
  };
1455
1951
  };
1456
- export type GetV1UsersUserIdOauthProviderTokenError = GetV1UsersUserIdOauthProviderTokenErrors[keyof GetV1UsersUserIdOauthProviderTokenErrors];
1457
- export type GetV1UsersUserIdOauthProviderTokenResponses = {
1952
+ export type GetV1UsersByUserIdOauthByProviderTokenError = GetV1UsersByUserIdOauthByProviderTokenErrors[keyof GetV1UsersByUserIdOauthByProviderTokenErrors];
1953
+ export type GetV1UsersByUserIdOauthByProviderTokenResponses = {
1458
1954
  /**
1459
1955
  * Access token
1460
1956
  */
@@ -1464,8 +1960,8 @@ export type GetV1UsersUserIdOauthProviderTokenResponses = {
1464
1960
  };
1465
1961
  };
1466
1962
  };
1467
- export type GetV1UsersUserIdOauthProviderTokenResponse = GetV1UsersUserIdOauthProviderTokenResponses[keyof GetV1UsersUserIdOauthProviderTokenResponses];
1468
- export type GetV1UsersUserIdSchedulingData = {
1963
+ export type GetV1UsersByUserIdOauthByProviderTokenResponse = GetV1UsersByUserIdOauthByProviderTokenResponses[keyof GetV1UsersByUserIdOauthByProviderTokenResponses];
1964
+ export type GetV1UsersByUserIdSchedulingData = {
1469
1965
  body?: never;
1470
1966
  path: {
1471
1967
  userId: string;
@@ -1475,14 +1971,6 @@ export type GetV1UsersUserIdSchedulingData = {
1475
1971
  * End time of the time range in ISO format
1476
1972
  */
1477
1973
  end: string;
1478
- /**
1479
- * Padding in minutes to add before and after busy times
1480
- */
1481
- padding: string | unknown;
1482
- /**
1483
- * Duration of each slot in minutes
1484
- */
1485
- slotDuration: string | unknown;
1486
1974
  /**
1487
1975
  * Start time of the time range in ISO format
1488
1976
  */
@@ -1496,31 +1984,67 @@ export type GetV1UsersUserIdSchedulingData = {
1496
1984
  */
1497
1985
  latestTimeEachDay?: string;
1498
1986
  /**
1499
- * An integer >= 0 (default: 0)
1987
+ * an integer >= 0 (default: 0)
1500
1988
  */
1501
- maxOverlaps?: string | unknown;
1989
+ maxOverlaps?: string;
1990
+ /**
1991
+ * Padding in minutes to add before and after busy times
1992
+ */
1993
+ padding?: string;
1502
1994
  provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
1995
+ /**
1996
+ * Duration of each slot in minutes
1997
+ */
1998
+ slotDuration?: string;
1503
1999
  };
1504
2000
  url: '/v1/users/{userId}/scheduling';
1505
2001
  };
1506
- export type GetV1UsersUserIdSchedulingErrors = {
2002
+ export type GetV1UsersByUserIdSchedulingErrors = {
1507
2003
  /**
1508
2004
  * Bad request
1509
2005
  */
1510
2006
  400: {
2007
+ error: string;
2008
+ data: null;
2009
+ };
2010
+ /**
2011
+ * Calendar provider rejected the stored access token
2012
+ */
2013
+ 401: {
1511
2014
  data: null;
1512
2015
  error: string;
1513
2016
  };
1514
2017
  /**
1515
- * User not found
2018
+ * Every requested calendar was denied by the provider, has no mailbox behind it, or the authorization does not cover busy times
2019
+ */
2020
+ 403: {
2021
+ data: null;
2022
+ error: string;
2023
+ };
2024
+ /**
2025
+ * User not found, or the user has no connected calendars
1516
2026
  */
1517
2027
  404: {
1518
2028
  data: null;
1519
2029
  error: string;
1520
2030
  };
2031
+ /**
2032
+ * The calendar provider throttled every requested calendar
2033
+ */
2034
+ 429: {
2035
+ data: null;
2036
+ error: string;
2037
+ };
2038
+ /**
2039
+ * Every requested calendar could not be read
2040
+ */
2041
+ 502: {
2042
+ data: null;
2043
+ error: string;
2044
+ };
1521
2045
  };
1522
- export type GetV1UsersUserIdSchedulingError = GetV1UsersUserIdSchedulingErrors[keyof GetV1UsersUserIdSchedulingErrors];
1523
- export type GetV1UsersUserIdSchedulingResponses = {
2046
+ export type GetV1UsersByUserIdSchedulingError = GetV1UsersByUserIdSchedulingErrors[keyof GetV1UsersByUserIdSchedulingErrors];
2047
+ export type GetV1UsersByUserIdSchedulingResponses = {
1524
2048
  /**
1525
2049
  * Available time slots
1526
2050
  */
@@ -1557,9 +2081,9 @@ export type GetV1UsersUserIdSchedulingResponses = {
1557
2081
  };
1558
2082
  };
1559
2083
  };
1560
- export type GetV1UsersUserIdSchedulingResponse = GetV1UsersUserIdSchedulingResponses[keyof GetV1UsersUserIdSchedulingResponses];
1561
- export type PostV1UsersUserIdSchedulingData = {
1562
- body?: {
2084
+ export type GetV1UsersByUserIdSchedulingResponse = GetV1UsersByUserIdSchedulingResponses[keyof GetV1UsersByUserIdSchedulingResponses];
2085
+ export type PostV1UsersByUserIdSchedulingData = {
2086
+ body: {
1563
2087
  schedules: Array<{
1564
2088
  /**
1565
2089
  * The days to apply this scheduling element to
@@ -1584,43 +2108,71 @@ export type PostV1UsersUserIdSchedulingData = {
1584
2108
  */
1585
2109
  end: string;
1586
2110
  /**
1587
- * Padding in minutes to add before and after busy times
2111
+ * Start time of the time range in ISO format
1588
2112
  */
1589
- padding: string | unknown;
2113
+ start: string;
1590
2114
  /**
1591
- * Duration of each slot in minutes
2115
+ * an integer >= 0 (default: 0)
1592
2116
  */
1593
- slotDuration: string | unknown;
2117
+ maxOverlaps?: string;
1594
2118
  /**
1595
- * Start time of the time range in ISO format
2119
+ * Padding in minutes to add before and after busy times
1596
2120
  */
1597
- start: string;
2121
+ padding?: string;
2122
+ provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
1598
2123
  /**
1599
- * An integer >= 0 (default: 0)
2124
+ * Duration of each slot in minutes
1600
2125
  */
1601
- maxOverlaps?: string | unknown;
1602
- provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
2126
+ slotDuration?: string;
1603
2127
  };
1604
2128
  url: '/v1/users/{userId}/scheduling';
1605
2129
  };
1606
- export type PostV1UsersUserIdSchedulingErrors = {
2130
+ export type PostV1UsersByUserIdSchedulingErrors = {
1607
2131
  /**
1608
- * User has no connected calendars
2132
+ * Bad request
1609
2133
  */
1610
2134
  400: {
2135
+ error: string;
2136
+ data: null;
2137
+ };
2138
+ /**
2139
+ * Calendar provider rejected the stored access token
2140
+ */
2141
+ 401: {
1611
2142
  data: null;
1612
2143
  error: string;
1613
2144
  };
1614
2145
  /**
1615
- * User not found
2146
+ * Every requested calendar was denied by the provider, has no mailbox behind it, or the authorization does not cover busy times
2147
+ */
2148
+ 403: {
2149
+ data: null;
2150
+ error: string;
2151
+ };
2152
+ /**
2153
+ * User not found, or the user has no connected calendars
1616
2154
  */
1617
2155
  404: {
1618
2156
  data: null;
1619
2157
  error: string;
1620
2158
  };
2159
+ /**
2160
+ * The calendar provider throttled every requested calendar
2161
+ */
2162
+ 429: {
2163
+ data: null;
2164
+ error: string;
2165
+ };
2166
+ /**
2167
+ * Every requested calendar could not be read
2168
+ */
2169
+ 502: {
2170
+ data: null;
2171
+ error: string;
2172
+ };
1621
2173
  };
1622
- export type PostV1UsersUserIdSchedulingError = PostV1UsersUserIdSchedulingErrors[keyof PostV1UsersUserIdSchedulingErrors];
1623
- export type PostV1UsersUserIdSchedulingResponses = {
2174
+ export type PostV1UsersByUserIdSchedulingError = PostV1UsersByUserIdSchedulingErrors[keyof PostV1UsersByUserIdSchedulingErrors];
2175
+ export type PostV1UsersByUserIdSchedulingResponses = {
1624
2176
  /**
1625
2177
  * Available time slots
1626
2178
  */
@@ -1657,13 +2209,26 @@ export type PostV1UsersUserIdSchedulingResponses = {
1657
2209
  };
1658
2210
  };
1659
2211
  };
1660
- export type PostV1UsersUserIdSchedulingResponse = PostV1UsersUserIdSchedulingResponses[keyof PostV1UsersUserIdSchedulingResponses];
2212
+ export type PostV1UsersByUserIdSchedulingResponse = PostV1UsersByUserIdSchedulingResponses[keyof PostV1UsersByUserIdSchedulingResponses];
1661
2213
  export type PostV1UsersSchedulingData = {
1662
- body?: {
2214
+ body: {
1663
2215
  users: Array<{
1664
2216
  id: string;
1665
- calendarIds?: Array<string>;
1666
- schedules?: Array<{
2217
+ calendarIds?: string | Array<string>;
2218
+ schedules?: {
2219
+ /**
2220
+ * The days to apply this scheduling element to
2221
+ */
2222
+ days: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'>;
2223
+ /**
2224
+ * End time
2225
+ */
2226
+ end: string;
2227
+ /**
2228
+ * Start time
2229
+ */
2230
+ start: string;
2231
+ } | Array<{
1667
2232
  /**
1668
2233
  * The days to apply this scheduling element to
1669
2234
  */
@@ -1686,32 +2251,43 @@ export type PostV1UsersSchedulingData = {
1686
2251
  */
1687
2252
  end: string;
1688
2253
  /**
1689
- * Padding in minutes to add before and after busy times
2254
+ * Start time of the time range in ISO format
1690
2255
  */
1691
- padding: string | unknown;
2256
+ start: string;
1692
2257
  /**
1693
- * Duration of each slot in minutes
2258
+ * an integer >= 0 (default: 0)
1694
2259
  */
1695
- slotDuration: string | unknown;
2260
+ maxOverlaps?: string;
1696
2261
  /**
1697
- * Start time of the time range in ISO format
2262
+ * Padding in minutes to add before and after busy times
1698
2263
  */
1699
- start: string;
2264
+ padding?: string;
2265
+ provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
1700
2266
  /**
1701
- * An integer >= 0 (default: 0)
2267
+ * Duration of each slot in minutes
1702
2268
  */
1703
- maxOverlaps?: string | unknown;
1704
- provider?: Array<'google' | 'microsoft'> | 'google' | 'microsoft';
2269
+ slotDuration?: string;
1705
2270
  };
1706
2271
  url: '/v1/users/scheduling';
1707
2272
  };
2273
+ export type PostV1UsersSchedulingErrors = {
2274
+ /**
2275
+ * Validation Error
2276
+ */
2277
+ 400: {
2278
+ error: string;
2279
+ data: null;
2280
+ };
2281
+ };
2282
+ export type PostV1UsersSchedulingError = PostV1UsersSchedulingErrors[keyof PostV1UsersSchedulingErrors];
1708
2283
  export type PostV1UsersSchedulingResponses = {
1709
2284
  /**
1710
- * Available time slots for each user
2285
+ * Available time slots for each user, plus the calendars that could not be read
1711
2286
  */
1712
2287
  200: {
1713
2288
  data: Array<{
1714
2289
  availableSlots: Array<TimeRange>;
2290
+ failedCalendars: Array<FailedCalendar>;
1715
2291
  options: {
1716
2292
  /**
1717
2293
  * End time of the time range in ISO format
@@ -1739,9 +2315,23 @@ export type PostV1UsersSchedulingResponses = {
1739
2315
  */
1740
2316
  latestTimeEachDay?: string;
1741
2317
  };
2318
+ status: 'ok';
1742
2319
  userId: string;
1743
- calendarIds?: Array<string>;
1744
- schedules?: Array<{
2320
+ calendarIds?: string | Array<string>;
2321
+ schedules?: {
2322
+ /**
2323
+ * The days to apply this scheduling element to
2324
+ */
2325
+ days: Array<'friday' | 'monday' | 'saturday' | 'sunday' | 'thursday' | 'tuesday' | 'wednesday'>;
2326
+ /**
2327
+ * End time
2328
+ */
2329
+ end: string;
2330
+ /**
2331
+ * Start time
2332
+ */
2333
+ start: string;
2334
+ } | Array<{
1745
2335
  /**
1746
2336
  * The days to apply this scheduling element to
1747
2337
  */
@@ -1757,7 +2347,9 @@ export type PostV1UsersSchedulingResponses = {
1757
2347
  }>;
1758
2348
  } | {
1759
2349
  error: string;
2350
+ status: 'error';
1760
2351
  userId: string;
2352
+ reason?: FreeBusyFailureReason;
1761
2353
  }>;
1762
2354
  };
1763
2355
  };