@particle-academy/google-calendar-ui 0.1.0 → 0.3.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.
- package/CHANGELOG.md +41 -0
- package/README.md +54 -0
- package/dist/index.cjs +403 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.js +389 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,47 @@ The four packages share one version, because they are generated from one
|
|
|
8
8
|
`provider/` definition and a version that meant something different in each
|
|
9
9
|
would be a version nobody could reason about.
|
|
10
10
|
|
|
11
|
+
## [0.3.0] — 2026-11-08
|
|
12
|
+
|
|
13
|
+
### Added
|
|
14
|
+
|
|
15
|
+
- **Laravel integration, in this package** (`src/Laravel/`), auto-discovered
|
|
16
|
+
through composer's `extra.laravel`. Laravel is SUGGESTED, never required:
|
|
17
|
+
outside a Laravel app none of it loads.
|
|
18
|
+
- a service provider that merges `config/google-calendar.php` under
|
|
19
|
+
`connectors.google-calendar` (credentials from the environment, or per call for a
|
|
20
|
+
multi-account app);
|
|
21
|
+
- the `GoogleCalendar` facade: `GoogleCalendar::call('<operation>', [...])` runs any action;
|
|
22
|
+
- `GoogleCalendar::fake()`, answered from the connector's faker, with
|
|
23
|
+
`assertSent` / `assertNotSent` / `assertNothingSent` / `assertSentCount`;
|
|
24
|
+
- a webhook ROUTE per trigger (`Route::googleCalendarEventsChanged('/path')`) that VERIFIES the raw delivery with the trigger's own scheme before the app sees it, answers 401 with the reason when it does not, then dispatches an event (`Events\\…Received`);
|
|
25
|
+
- its own Pest test of all of it against a booted Laravel app.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **Tests: Pest `^5`**, and `laravel/framework` `^13` as a DEV-ONLY test
|
|
30
|
+
dependency (the framework this package integrates with; nothing ships in
|
|
31
|
+
`require`).
|
|
32
|
+
|
|
33
|
+
## [0.2.0] — 2026-09-30
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- **`event_create`**, **`event_update`** and **`event_delete`** — write
|
|
38
|
+
support, the first this connector has had. `event_update` uses PATCH
|
|
39
|
+
(`events.patch`), not PUT (`events.update`): PUT requires resending the
|
|
40
|
+
whole event or Google clears every field left out, which is a trap for
|
|
41
|
+
a caller that only wants to change one thing. No scope change —
|
|
42
|
+
`calendar.events` already covers create/update/delete.
|
|
43
|
+
- Deliberately NOT included: attendees and recurrence. Both need an
|
|
44
|
+
array-of-objects (attendees) or array-of-strings (recurrence) config
|
|
45
|
+
shape nothing in this estate's vocabulary has needed before now; same
|
|
46
|
+
bar as everything in `vocabulary-deferred.md` — a second real need,
|
|
47
|
+
not a first guess. All-day (date-only) events are out of scope for the
|
|
48
|
+
same reason: they need `start.date`/`end.date` instead of
|
|
49
|
+
`start.dateTime`/`end.dateTime`, a variant this config shape cannot
|
|
50
|
+
express yet.
|
|
51
|
+
|
|
11
52
|
## [0.1.0] — 2026-09-15
|
|
12
53
|
|
|
13
54
|
### Added
|
package/README.md
CHANGED
|
@@ -93,6 +93,38 @@ Open a push-notification channel on a calendar's events. The host's subscription
|
|
|
93
93
|
| `token` | yes | The connection's channelToken. The host fills this from the connection -- never type a value here. Google echoes it in X-Goog-Channel-Token, and that echo is how a delivery is verified. |
|
|
94
94
|
| `ttlSeconds` | yes | How long Google keeps the channel alive. Google's default is 604800 (one week), and the discovery document types it as a STRING inside `params`. |
|
|
95
95
|
|
|
96
|
+
#### `event_create` — Create Google Calendar event
|
|
97
|
+
|
|
98
|
+
Create a timed event on a Google Calendar.
|
|
99
|
+
|
|
100
|
+
`POST /calendar/v3/calendars/{calendarId}/events` · **unsafe to replay** — a retried durable run does it TWICE
|
|
101
|
+
|
|
102
|
+
| Input | Required | What it is |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| `calendarId` | yes | `primary` for the connected account's own calendar, or a calendar's id. |
|
|
105
|
+
| `summary` | yes | Title |
|
|
106
|
+
| `description` | no | Can contain HTML. |
|
|
107
|
+
| `location` | no | Free-form text. |
|
|
108
|
+
| `startDateTime` | yes | RFC 3339, e.g. 2026-10-01T14:00:00Z. Include an offset, or pair with a time zone below. |
|
|
109
|
+
| `startTimeZone` | no | IANA name, e.g. America/New_York. Optional when the start time already carries an offset. |
|
|
110
|
+
| `endDateTime` | yes | RFC 3339. Exclusive -- the event ends at, not through, this instant. |
|
|
111
|
+
| `endTimeZone` | no | End time zone |
|
|
112
|
+
| `status` | no | "cancelled" is not offered here -- that is event_delete's job, not a status this action should be able to set on create. |
|
|
113
|
+
| `visibility` | no | Visibility |
|
|
114
|
+
| `transparency` | no | opaque blocks time on the calendar (Busy); transparent does not (Available). |
|
|
115
|
+
| `colorId` | no | An id from the colors endpoint's event section. Leave blank for the calendar's default. |
|
|
116
|
+
|
|
117
|
+
#### `event_delete` — Delete Google Calendar event
|
|
118
|
+
|
|
119
|
+
Remove an event from a Google Calendar.
|
|
120
|
+
|
|
121
|
+
`DELETE /calendar/v3/calendars/{calendarId}/events/{eventId}` · idempotent — safe to replay
|
|
122
|
+
|
|
123
|
+
| Input | Required | What it is |
|
|
124
|
+
|---|---|---|
|
|
125
|
+
| `calendarId` | yes | Calendar ID |
|
|
126
|
+
| `eventId` | yes | From event_create's data.id, or event_list/event_get. |
|
|
127
|
+
|
|
96
128
|
#### `event_get` — Google Calendar event
|
|
97
129
|
|
|
98
130
|
Read one event from a Google Calendar.
|
|
@@ -120,6 +152,28 @@ List events from a Google Calendar, in full or incrementally with a sync token.
|
|
|
120
152
|
| `pageToken` | no | From a previous page's nextPageToken. |
|
|
121
153
|
| `singleEvents` | no | Return each occurrence of a recurring event as its own item, rather than the series once. |
|
|
122
154
|
|
|
155
|
+
#### `event_update` — Update Google Calendar event
|
|
156
|
+
|
|
157
|
+
Change one or more fields of an existing event. Only the fields provided are touched.
|
|
158
|
+
|
|
159
|
+
`PATCH /calendar/v3/calendars/{calendarId}/events/{eventId}` · idempotent — safe to replay
|
|
160
|
+
|
|
161
|
+
| Input | Required | What it is |
|
|
162
|
+
|---|---|---|
|
|
163
|
+
| `calendarId` | yes | Calendar ID |
|
|
164
|
+
| `eventId` | yes | From event_create's data.id, or event_list/event_get. |
|
|
165
|
+
| `summary` | no | Title |
|
|
166
|
+
| `description` | no | Description |
|
|
167
|
+
| `location` | no | Location |
|
|
168
|
+
| `startDateTime` | no | RFC 3339. Leave blank to leave the start time unchanged. |
|
|
169
|
+
| `startTimeZone` | no | Start time zone |
|
|
170
|
+
| `endDateTime` | no | RFC 3339. Leave blank to leave the end time unchanged. |
|
|
171
|
+
| `endTimeZone` | no | End time zone |
|
|
172
|
+
| `status` | no | Setting cancelled here has the same effect as event_delete -- offered because PATCH is also Google's documented way to cancel one instance of a recurring event, which event_delete (which removes the whole resource) cannot target. |
|
|
173
|
+
| `visibility` | no | Visibility |
|
|
174
|
+
| `transparency` | no | Show me as |
|
|
175
|
+
| `colorId` | no | Color ID |
|
|
176
|
+
|
|
123
177
|
### Triggers
|
|
124
178
|
|
|
125
179
|
#### `events_changed` — Google Calendar change
|
package/dist/index.cjs
CHANGED
|
@@ -190,6 +190,220 @@ var googleCalendarChannelWatchKind = connectors.defineConnectorKind(GOOGLE_CALEN
|
|
|
190
190
|
},
|
|
191
191
|
renderBody: ({ config }) => connectors.summarize(GOOGLE_CALENDAR_CHANNEL_WATCH_META, config, "watch a calendar")
|
|
192
192
|
});
|
|
193
|
+
var GOOGLE_CALENDAR_EVENT_CREATE_KIND = "@particle-academy/google_calendar_event_create";
|
|
194
|
+
var GOOGLE_CALENDAR_EVENT_CREATE_OPERATION = "event_create";
|
|
195
|
+
var GOOGLE_CALENDAR_EVENT_CREATE_META = googleCalendarMeta("action", "create an event", "https://developers.google.com/workspace/calendar/api/v3/reference/events/insert");
|
|
196
|
+
var GOOGLE_CALENDAR_EVENT_CREATE_OUTPUT = [
|
|
197
|
+
{
|
|
198
|
+
"path": "data.id",
|
|
199
|
+
"type": "string",
|
|
200
|
+
"description": "The new event's id."
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"path": "data.status",
|
|
204
|
+
"type": "string",
|
|
205
|
+
"description": "confirmed or tentative, echoing what was sent (or Google's default)."
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"path": "data.summary",
|
|
209
|
+
"type": "string",
|
|
210
|
+
"description": "Echoes what was sent."
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"path": "data.htmlLink",
|
|
214
|
+
"type": "string",
|
|
215
|
+
"description": "The event in the Google Calendar UI."
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"path": "data.start.dateTime",
|
|
219
|
+
"type": "string",
|
|
220
|
+
"description": "Echoes what was sent."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"path": "data.end.dateTime",
|
|
224
|
+
"type": "string",
|
|
225
|
+
"description": "Echoes what was sent."
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"path": "data.created",
|
|
229
|
+
"type": "string",
|
|
230
|
+
"description": "RFC 3339 creation time."
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
"path": "data.organizer.email",
|
|
234
|
+
"type": "string",
|
|
235
|
+
"description": "The connected account, almost always."
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"path": "mode",
|
|
239
|
+
"type": "string",
|
|
240
|
+
"description": "Which estate this ran against. Google has no sandbox, so: fake or live."
|
|
241
|
+
}
|
|
242
|
+
];
|
|
243
|
+
var googleCalendarEventCreateKind = connectors.defineConnectorKind(GOOGLE_CALENDAR_EVENT_CREATE_META, {
|
|
244
|
+
name: GOOGLE_CALENDAR_EVENT_CREATE_KIND,
|
|
245
|
+
aliases: ["google_calendar_event_create"],
|
|
246
|
+
label: "Create Google Calendar event",
|
|
247
|
+
description: "Create a timed event on a Google Calendar.",
|
|
248
|
+
inputs: [{ id: "in" }],
|
|
249
|
+
outputs: [{ id: "out" }],
|
|
250
|
+
sideEffects: "unsafe-to-replay",
|
|
251
|
+
outputShape: GOOGLE_CALENDAR_EVENT_CREATE_OUTPUT,
|
|
252
|
+
configSchema: [
|
|
253
|
+
{
|
|
254
|
+
"type": "text",
|
|
255
|
+
"key": "calendarId",
|
|
256
|
+
"label": "Calendar ID",
|
|
257
|
+
"required": true,
|
|
258
|
+
"default": "primary",
|
|
259
|
+
"description": "`primary` for the connected account's own calendar, or a calendar's id."
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"type": "text",
|
|
263
|
+
"key": "summary",
|
|
264
|
+
"label": "Title",
|
|
265
|
+
"required": true
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"type": "textarea",
|
|
269
|
+
"key": "description",
|
|
270
|
+
"label": "Description",
|
|
271
|
+
"description": "Can contain HTML."
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"type": "text",
|
|
275
|
+
"key": "location",
|
|
276
|
+
"label": "Location",
|
|
277
|
+
"description": "Free-form text."
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"type": "text",
|
|
281
|
+
"key": "startDateTime",
|
|
282
|
+
"label": "Start",
|
|
283
|
+
"required": true,
|
|
284
|
+
"description": "RFC 3339, e.g. 2026-10-01T14:00:00Z. Include an offset, or pair with a time zone below."
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"type": "text",
|
|
288
|
+
"key": "startTimeZone",
|
|
289
|
+
"label": "Start time zone",
|
|
290
|
+
"description": "IANA name, e.g. America/New_York. Optional when the start time already carries an offset."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"type": "text",
|
|
294
|
+
"key": "endDateTime",
|
|
295
|
+
"label": "End",
|
|
296
|
+
"required": true,
|
|
297
|
+
"description": "RFC 3339. Exclusive -- the event ends at, not through, this instant."
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"type": "text",
|
|
301
|
+
"key": "endTimeZone",
|
|
302
|
+
"label": "End time zone"
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
"type": "select",
|
|
306
|
+
"key": "status",
|
|
307
|
+
"label": "Status",
|
|
308
|
+
"options": [
|
|
309
|
+
{
|
|
310
|
+
"value": "confirmed",
|
|
311
|
+
"label": "Confirmed"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"value": "tentative",
|
|
315
|
+
"label": "Tentative"
|
|
316
|
+
}
|
|
317
|
+
],
|
|
318
|
+
"description": `"cancelled" is not offered here -- that is event_delete's job, not a status this action should be able to set on create.`
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"type": "select",
|
|
322
|
+
"key": "visibility",
|
|
323
|
+
"label": "Visibility",
|
|
324
|
+
"options": [
|
|
325
|
+
{
|
|
326
|
+
"value": "default",
|
|
327
|
+
"label": "Default"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"value": "public",
|
|
331
|
+
"label": "Public"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"value": "private",
|
|
335
|
+
"label": "Private"
|
|
336
|
+
}
|
|
337
|
+
]
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"type": "select",
|
|
341
|
+
"key": "transparency",
|
|
342
|
+
"label": "Show me as",
|
|
343
|
+
"options": [
|
|
344
|
+
{
|
|
345
|
+
"value": "opaque",
|
|
346
|
+
"label": "Busy"
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
"value": "transparent",
|
|
350
|
+
"label": "Available"
|
|
351
|
+
}
|
|
352
|
+
],
|
|
353
|
+
"description": "opaque blocks time on the calendar (Busy); transparent does not (Available)."
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"type": "text",
|
|
357
|
+
"key": "colorId",
|
|
358
|
+
"label": "Color ID",
|
|
359
|
+
"description": "An id from the colors endpoint's event section. Leave blank for the calendar's default."
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
defaultConfig: {
|
|
363
|
+
"mode": "auto"
|
|
364
|
+
},
|
|
365
|
+
renderBody: ({ config }) => connectors.summarize(GOOGLE_CALENDAR_EVENT_CREATE_META, config, "create an event")
|
|
366
|
+
});
|
|
367
|
+
var GOOGLE_CALENDAR_EVENT_DELETE_KIND = "@particle-academy/google_calendar_event_delete";
|
|
368
|
+
var GOOGLE_CALENDAR_EVENT_DELETE_OPERATION = "event_delete";
|
|
369
|
+
var GOOGLE_CALENDAR_EVENT_DELETE_META = googleCalendarMeta("action", "delete an event", "https://developers.google.com/workspace/calendar/api/v3/reference/events/delete");
|
|
370
|
+
var GOOGLE_CALENDAR_EVENT_DELETE_OUTPUT = [
|
|
371
|
+
{
|
|
372
|
+
"path": "mode",
|
|
373
|
+
"type": "string",
|
|
374
|
+
"description": "Which estate this ran against. Google answers 204 with no body, so this is the only thing published."
|
|
375
|
+
}
|
|
376
|
+
];
|
|
377
|
+
var googleCalendarEventDeleteKind = connectors.defineConnectorKind(GOOGLE_CALENDAR_EVENT_DELETE_META, {
|
|
378
|
+
name: GOOGLE_CALENDAR_EVENT_DELETE_KIND,
|
|
379
|
+
aliases: ["google_calendar_event_delete"],
|
|
380
|
+
label: "Delete Google Calendar event",
|
|
381
|
+
description: "Remove an event from a Google Calendar.",
|
|
382
|
+
inputs: [{ id: "in" }],
|
|
383
|
+
outputs: [{ id: "out" }],
|
|
384
|
+
sideEffects: "idempotent",
|
|
385
|
+
outputShape: GOOGLE_CALENDAR_EVENT_DELETE_OUTPUT,
|
|
386
|
+
configSchema: [
|
|
387
|
+
{
|
|
388
|
+
"type": "text",
|
|
389
|
+
"key": "calendarId",
|
|
390
|
+
"label": "Calendar ID",
|
|
391
|
+
"required": true,
|
|
392
|
+
"default": "primary"
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"type": "text",
|
|
396
|
+
"key": "eventId",
|
|
397
|
+
"label": "Event ID",
|
|
398
|
+
"required": true,
|
|
399
|
+
"description": "From event_create's data.id, or event_list/event_get."
|
|
400
|
+
}
|
|
401
|
+
],
|
|
402
|
+
defaultConfig: {
|
|
403
|
+
"mode": "auto"
|
|
404
|
+
},
|
|
405
|
+
renderBody: ({ config }) => connectors.summarize(GOOGLE_CALENDAR_EVENT_DELETE_META, config, "delete an event")
|
|
406
|
+
});
|
|
193
407
|
var GOOGLE_CALENDAR_EVENT_GET_KIND = "@particle-academy/google_calendar_event_get";
|
|
194
408
|
var GOOGLE_CALENDAR_EVENT_GET_OPERATION = "event_get";
|
|
195
409
|
var GOOGLE_CALENDAR_EVENT_GET_META = googleCalendarMeta("action", "read an event", "https://developers.google.com/workspace/calendar/api/v3/reference/events/get");
|
|
@@ -370,6 +584,177 @@ var googleCalendarEventListKind = connectors.defineConnectorKind(GOOGLE_CALENDAR
|
|
|
370
584
|
},
|
|
371
585
|
renderBody: ({ config }) => connectors.summarize(GOOGLE_CALENDAR_EVENT_LIST_META, config, "list events")
|
|
372
586
|
});
|
|
587
|
+
var GOOGLE_CALENDAR_EVENT_UPDATE_KIND = "@particle-academy/google_calendar_event_update";
|
|
588
|
+
var GOOGLE_CALENDAR_EVENT_UPDATE_OPERATION = "event_update";
|
|
589
|
+
var GOOGLE_CALENDAR_EVENT_UPDATE_META = googleCalendarMeta("action", "update an event", "https://developers.google.com/workspace/calendar/api/v3/reference/events/patch");
|
|
590
|
+
var GOOGLE_CALENDAR_EVENT_UPDATE_OUTPUT = [
|
|
591
|
+
{
|
|
592
|
+
"path": "data.id",
|
|
593
|
+
"type": "string",
|
|
594
|
+
"description": "The event's id."
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"path": "data.status",
|
|
598
|
+
"type": "string",
|
|
599
|
+
"description": "The event's status after this update."
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"path": "data.summary",
|
|
603
|
+
"type": "string",
|
|
604
|
+
"description": "The event's title after this update."
|
|
605
|
+
},
|
|
606
|
+
{
|
|
607
|
+
"path": "data.htmlLink",
|
|
608
|
+
"type": "string",
|
|
609
|
+
"description": "The event in the Google Calendar UI."
|
|
610
|
+
},
|
|
611
|
+
{
|
|
612
|
+
"path": "data.start.dateTime",
|
|
613
|
+
"type": "string",
|
|
614
|
+
"description": "The event's start after this update."
|
|
615
|
+
},
|
|
616
|
+
{
|
|
617
|
+
"path": "data.end.dateTime",
|
|
618
|
+
"type": "string",
|
|
619
|
+
"description": "The event's end after this update."
|
|
620
|
+
},
|
|
621
|
+
{
|
|
622
|
+
"path": "data.updated",
|
|
623
|
+
"type": "string",
|
|
624
|
+
"description": "RFC 3339 last modification -- now."
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"path": "mode",
|
|
628
|
+
"type": "string",
|
|
629
|
+
"description": "Which estate this ran against. Google has no sandbox, so: fake or live."
|
|
630
|
+
}
|
|
631
|
+
];
|
|
632
|
+
var googleCalendarEventUpdateKind = connectors.defineConnectorKind(GOOGLE_CALENDAR_EVENT_UPDATE_META, {
|
|
633
|
+
name: GOOGLE_CALENDAR_EVENT_UPDATE_KIND,
|
|
634
|
+
aliases: ["google_calendar_event_update"],
|
|
635
|
+
label: "Update Google Calendar event",
|
|
636
|
+
description: "Change one or more fields of an existing event. Only the fields provided are touched.",
|
|
637
|
+
inputs: [{ id: "in" }],
|
|
638
|
+
outputs: [{ id: "out" }],
|
|
639
|
+
sideEffects: "idempotent",
|
|
640
|
+
outputShape: GOOGLE_CALENDAR_EVENT_UPDATE_OUTPUT,
|
|
641
|
+
configSchema: [
|
|
642
|
+
{
|
|
643
|
+
"type": "text",
|
|
644
|
+
"key": "calendarId",
|
|
645
|
+
"label": "Calendar ID",
|
|
646
|
+
"required": true,
|
|
647
|
+
"default": "primary"
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
"type": "text",
|
|
651
|
+
"key": "eventId",
|
|
652
|
+
"label": "Event ID",
|
|
653
|
+
"required": true,
|
|
654
|
+
"description": "From event_create's data.id, or event_list/event_get."
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"type": "text",
|
|
658
|
+
"key": "summary",
|
|
659
|
+
"label": "Title"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"type": "textarea",
|
|
663
|
+
"key": "description",
|
|
664
|
+
"label": "Description"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"type": "text",
|
|
668
|
+
"key": "location",
|
|
669
|
+
"label": "Location"
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"type": "text",
|
|
673
|
+
"key": "startDateTime",
|
|
674
|
+
"label": "Start",
|
|
675
|
+
"description": "RFC 3339. Leave blank to leave the start time unchanged."
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"type": "text",
|
|
679
|
+
"key": "startTimeZone",
|
|
680
|
+
"label": "Start time zone"
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
"type": "text",
|
|
684
|
+
"key": "endDateTime",
|
|
685
|
+
"label": "End",
|
|
686
|
+
"description": "RFC 3339. Leave blank to leave the end time unchanged."
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"type": "text",
|
|
690
|
+
"key": "endTimeZone",
|
|
691
|
+
"label": "End time zone"
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
"type": "select",
|
|
695
|
+
"key": "status",
|
|
696
|
+
"label": "Status",
|
|
697
|
+
"options": [
|
|
698
|
+
{
|
|
699
|
+
"value": "confirmed",
|
|
700
|
+
"label": "Confirmed"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"value": "tentative",
|
|
704
|
+
"label": "Tentative"
|
|
705
|
+
},
|
|
706
|
+
{
|
|
707
|
+
"value": "cancelled",
|
|
708
|
+
"label": "Cancelled"
|
|
709
|
+
}
|
|
710
|
+
],
|
|
711
|
+
"description": "Setting cancelled here has the same effect as event_delete -- offered because PATCH is also Google's documented way to cancel one instance of a recurring event, which event_delete (which removes the whole resource) cannot target."
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
"type": "select",
|
|
715
|
+
"key": "visibility",
|
|
716
|
+
"label": "Visibility",
|
|
717
|
+
"options": [
|
|
718
|
+
{
|
|
719
|
+
"value": "default",
|
|
720
|
+
"label": "Default"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"value": "public",
|
|
724
|
+
"label": "Public"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"value": "private",
|
|
728
|
+
"label": "Private"
|
|
729
|
+
}
|
|
730
|
+
]
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"type": "select",
|
|
734
|
+
"key": "transparency",
|
|
735
|
+
"label": "Show me as",
|
|
736
|
+
"options": [
|
|
737
|
+
{
|
|
738
|
+
"value": "opaque",
|
|
739
|
+
"label": "Busy"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"value": "transparent",
|
|
743
|
+
"label": "Available"
|
|
744
|
+
}
|
|
745
|
+
]
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"type": "text",
|
|
749
|
+
"key": "colorId",
|
|
750
|
+
"label": "Color ID"
|
|
751
|
+
}
|
|
752
|
+
],
|
|
753
|
+
defaultConfig: {
|
|
754
|
+
"mode": "auto"
|
|
755
|
+
},
|
|
756
|
+
renderBody: ({ config }) => connectors.summarize(GOOGLE_CALENDAR_EVENT_UPDATE_META, config, "update an event")
|
|
757
|
+
});
|
|
373
758
|
var GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_KIND = "@particle-academy/google_calendar_events_changed_trigger";
|
|
374
759
|
var GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_OPERATION = "events_changed";
|
|
375
760
|
var GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_META = googleCalendarMeta("trigger", "a calendar change", "https://developers.google.com/workspace/calendar/api/guides/push");
|
|
@@ -449,8 +834,11 @@ var googleCalendarEventsChangedTriggerKind = connectors.defineConnectorKind(GOOG
|
|
|
449
834
|
var GOOGLE_CALENDAR_KINDS = [
|
|
450
835
|
googleCalendarChannelStopKind,
|
|
451
836
|
googleCalendarChannelWatchKind,
|
|
837
|
+
googleCalendarEventCreateKind,
|
|
838
|
+
googleCalendarEventDeleteKind,
|
|
452
839
|
googleCalendarEventGetKind,
|
|
453
840
|
googleCalendarEventListKind,
|
|
841
|
+
googleCalendarEventUpdateKind,
|
|
454
842
|
googleCalendarEventsChangedTriggerKind
|
|
455
843
|
];
|
|
456
844
|
|
|
@@ -468,6 +856,14 @@ exports.GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_KIND = GOOGLE_CALENDAR_EVENTS_CHA
|
|
|
468
856
|
exports.GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_META = GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_META;
|
|
469
857
|
exports.GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_OPERATION = GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_OPERATION;
|
|
470
858
|
exports.GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_OUTPUT = GOOGLE_CALENDAR_EVENTS_CHANGED_TRIGGER_OUTPUT;
|
|
859
|
+
exports.GOOGLE_CALENDAR_EVENT_CREATE_KIND = GOOGLE_CALENDAR_EVENT_CREATE_KIND;
|
|
860
|
+
exports.GOOGLE_CALENDAR_EVENT_CREATE_META = GOOGLE_CALENDAR_EVENT_CREATE_META;
|
|
861
|
+
exports.GOOGLE_CALENDAR_EVENT_CREATE_OPERATION = GOOGLE_CALENDAR_EVENT_CREATE_OPERATION;
|
|
862
|
+
exports.GOOGLE_CALENDAR_EVENT_CREATE_OUTPUT = GOOGLE_CALENDAR_EVENT_CREATE_OUTPUT;
|
|
863
|
+
exports.GOOGLE_CALENDAR_EVENT_DELETE_KIND = GOOGLE_CALENDAR_EVENT_DELETE_KIND;
|
|
864
|
+
exports.GOOGLE_CALENDAR_EVENT_DELETE_META = GOOGLE_CALENDAR_EVENT_DELETE_META;
|
|
865
|
+
exports.GOOGLE_CALENDAR_EVENT_DELETE_OPERATION = GOOGLE_CALENDAR_EVENT_DELETE_OPERATION;
|
|
866
|
+
exports.GOOGLE_CALENDAR_EVENT_DELETE_OUTPUT = GOOGLE_CALENDAR_EVENT_DELETE_OUTPUT;
|
|
471
867
|
exports.GOOGLE_CALENDAR_EVENT_GET_KIND = GOOGLE_CALENDAR_EVENT_GET_KIND;
|
|
472
868
|
exports.GOOGLE_CALENDAR_EVENT_GET_META = GOOGLE_CALENDAR_EVENT_GET_META;
|
|
473
869
|
exports.GOOGLE_CALENDAR_EVENT_GET_OPERATION = GOOGLE_CALENDAR_EVENT_GET_OPERATION;
|
|
@@ -476,13 +872,20 @@ exports.GOOGLE_CALENDAR_EVENT_LIST_KIND = GOOGLE_CALENDAR_EVENT_LIST_KIND;
|
|
|
476
872
|
exports.GOOGLE_CALENDAR_EVENT_LIST_META = GOOGLE_CALENDAR_EVENT_LIST_META;
|
|
477
873
|
exports.GOOGLE_CALENDAR_EVENT_LIST_OPERATION = GOOGLE_CALENDAR_EVENT_LIST_OPERATION;
|
|
478
874
|
exports.GOOGLE_CALENDAR_EVENT_LIST_OUTPUT = GOOGLE_CALENDAR_EVENT_LIST_OUTPUT;
|
|
875
|
+
exports.GOOGLE_CALENDAR_EVENT_UPDATE_KIND = GOOGLE_CALENDAR_EVENT_UPDATE_KIND;
|
|
876
|
+
exports.GOOGLE_CALENDAR_EVENT_UPDATE_META = GOOGLE_CALENDAR_EVENT_UPDATE_META;
|
|
877
|
+
exports.GOOGLE_CALENDAR_EVENT_UPDATE_OPERATION = GOOGLE_CALENDAR_EVENT_UPDATE_OPERATION;
|
|
878
|
+
exports.GOOGLE_CALENDAR_EVENT_UPDATE_OUTPUT = GOOGLE_CALENDAR_EVENT_UPDATE_OUTPUT;
|
|
479
879
|
exports.GOOGLE_CALENDAR_KINDS = GOOGLE_CALENDAR_KINDS;
|
|
480
880
|
exports.GOOGLE_CALENDAR_OAUTH = GOOGLE_CALENDAR_OAUTH;
|
|
481
881
|
exports.GOOGLE_CALENDAR_SERVICE = GOOGLE_CALENDAR_SERVICE;
|
|
482
882
|
exports.googleCalendarChannelStopKind = googleCalendarChannelStopKind;
|
|
483
883
|
exports.googleCalendarChannelWatchKind = googleCalendarChannelWatchKind;
|
|
884
|
+
exports.googleCalendarEventCreateKind = googleCalendarEventCreateKind;
|
|
885
|
+
exports.googleCalendarEventDeleteKind = googleCalendarEventDeleteKind;
|
|
484
886
|
exports.googleCalendarEventGetKind = googleCalendarEventGetKind;
|
|
485
887
|
exports.googleCalendarEventListKind = googleCalendarEventListKind;
|
|
888
|
+
exports.googleCalendarEventUpdateKind = googleCalendarEventUpdateKind;
|
|
486
889
|
exports.googleCalendarEventsChangedTriggerKind = googleCalendarEventsChangedTriggerKind;
|
|
487
890
|
exports.googleCalendarMeta = googleCalendarMeta;
|
|
488
891
|
//# sourceMappingURL=index.cjs.map
|