@apteva/integrations 0.2.3 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/package.json +1 -1
  2. package/src/apps/activecampaign.json +209 -0
  3. package/src/apps/activecollab.json +417 -0
  4. package/src/apps/airtable.json +235 -0
  5. package/src/apps/alpaca-trading.json +1554 -0
  6. package/src/apps/amadeus.json +225 -0
  7. package/src/apps/anthropic-api.json +96 -0
  8. package/src/apps/apify.json +203 -0
  9. package/src/apps/apollo.json +748 -0
  10. package/src/apps/apple-podcasts.json +116 -0
  11. package/src/apps/archive-api.json +104 -0
  12. package/src/apps/archive.json +151 -0
  13. package/src/apps/arduino-cloud.json +301 -0
  14. package/src/apps/arest.json +492 -0
  15. package/src/apps/asana.json +184 -0
  16. package/src/apps/ashby.json +176 -0
  17. package/src/apps/assemblyai.json +163 -0
  18. package/src/apps/attio.json +243 -0
  19. package/src/apps/aws-cloudfront.json +132 -0
  20. package/src/apps/aws-dynamodb.json +295 -0
  21. package/src/apps/aws-ec2.json +184 -0
  22. package/src/apps/aws-lambda.json +361 -0
  23. package/src/apps/aws-route53.json +110 -0
  24. package/src/apps/aws-s3.json +303 -0
  25. package/src/apps/aws-ses.json +556 -0
  26. package/src/apps/aws-sns.json +217 -0
  27. package/src/apps/aws-sqs.json +234 -0
  28. package/src/apps/axiom.json +123 -0
  29. package/src/apps/beehiiv.json +252 -0
  30. package/src/apps/binance-trading.json +555 -0
  31. package/src/apps/bitly.json +175 -0
  32. package/src/apps/bloobirds.json +246 -0
  33. package/src/apps/bluesky.json +201 -0
  34. package/src/apps/blynk.json +316 -0
  35. package/src/apps/booking-com.json +144 -0
  36. package/src/apps/box.json +289 -0
  37. package/src/apps/brevo.json +1423 -0
  38. package/src/apps/browse-ai.json +148 -0
  39. package/src/apps/bunny-cdn.json +330 -0
  40. package/src/apps/bunny-stream.json +387 -0
  41. package/src/apps/cal-com.json +240 -0
  42. package/src/apps/calendly.json +578 -0
  43. package/src/apps/calflow-calendar.json +706 -0
  44. package/src/apps/callrail.json +190 -0
  45. package/src/apps/canva.json +197 -0
  46. package/src/apps/cartesia.json +201 -0
  47. package/src/apps/castbase.json +753 -0
  48. package/src/apps/chargebee.json +226 -0
  49. package/src/apps/cleanster.json +359 -0
  50. package/src/apps/clicksend.json +278 -0
  51. package/src/apps/clickup.json +266 -0
  52. package/src/apps/clipkit.json +517 -0
  53. package/src/apps/close.json +359 -0
  54. package/src/apps/cloudflare.json +329 -0
  55. package/src/apps/cloudinary.json +164 -0
  56. package/src/apps/coda.json +288 -0
  57. package/src/apps/cohere.json +158 -0
  58. package/src/apps/coinbase.json +268 -0
  59. package/src/apps/composio.json +146 -0
  60. package/src/apps/confluence.json +270 -0
  61. package/src/apps/consensus.json +879 -0
  62. package/src/apps/contabo.json +733 -0
  63. package/src/apps/convertkit.json +211 -0
  64. package/src/apps/core-image.json +426 -0
  65. package/src/apps/core-video.json +1246 -0
  66. package/src/apps/craftcloud.json +298 -0
  67. package/src/apps/datadog.json +401 -0
  68. package/src/apps/dataforseo.json +1273 -0
  69. package/src/apps/deepseek.json +150 -0
  70. package/src/apps/dialpad.json +229 -0
  71. package/src/apps/discord.json +239 -0
  72. package/src/apps/dnsimple.json +405 -0
  73. package/src/apps/docusign.json +214 -0
  74. package/src/apps/docx.json +282 -0
  75. package/src/apps/dropbox.json +185 -0
  76. package/src/apps/duffel.json +231 -0
  77. package/src/apps/dux-soup.json +694 -0
  78. package/src/apps/dynadot.json +250 -0
  79. package/src/apps/elevenlabs.json +327 -0
  80. package/src/apps/eventbrite-events.json +598 -0
  81. package/src/apps/facebook-ads.json +1399 -0
  82. package/src/apps/facebook-api.json +282 -0
  83. package/src/apps/fal-ai.json +400 -0
  84. package/src/apps/fathom.json +86 -0
  85. package/src/apps/figma.json +162 -0
  86. package/src/apps/filestack.json +159 -0
  87. package/src/apps/firebase.json +271 -0
  88. package/src/apps/firecrawl.json +278 -0
  89. package/src/apps/folk.json +564 -0
  90. package/src/apps/forecast-app.json +377 -0
  91. package/src/apps/freshdesk.json +283 -0
  92. package/src/apps/gemini.json +528 -0
  93. package/src/apps/ghost.json +439 -0
  94. package/src/apps/gigs-marketplace.json +1442 -0
  95. package/src/apps/github.json +1479 -47
  96. package/src/apps/gitlab.json +448 -0
  97. package/src/apps/gmail.json +839 -28
  98. package/src/apps/gohighlevel.json +596 -0
  99. package/src/apps/google-ads.json +270 -0
  100. package/src/apps/google-calendar.json +996 -36
  101. package/src/apps/google-docs.json +278 -0
  102. package/src/apps/google-drive.json +360 -0
  103. package/src/apps/google-maps.json +473 -0
  104. package/src/apps/google-sheets.json +330 -0
  105. package/src/apps/gooten.json +411 -0
  106. package/src/apps/gravity-forms.json +385 -0
  107. package/src/apps/gusto.json +171 -0
  108. package/src/apps/hackernews.json +221 -0
  109. package/src/apps/harmonic.json +86 -0
  110. package/src/apps/helpscout.json +664 -0
  111. package/src/apps/hetzner.json +658 -0
  112. package/src/apps/heygen.json +184 -0
  113. package/src/apps/heyreach.json +388 -0
  114. package/src/apps/hospitable.json +340 -0
  115. package/src/apps/hostinger.json +374 -0
  116. package/src/apps/hubspot.json +682 -0
  117. package/src/apps/huggingface.json +97 -0
  118. package/src/apps/hunter.json +504 -0
  119. package/src/apps/ig-trading.json +849 -0
  120. package/src/apps/imaterialise.json +349 -0
  121. package/src/apps/instagram-api.json +538 -0
  122. package/src/apps/intercom.json +648 -0
  123. package/src/apps/jira.json +226 -0
  124. package/src/apps/klaviyo.json +199 -0
  125. package/src/apps/kling-ai.json +206 -0
  126. package/src/apps/kraken.json +870 -0
  127. package/src/apps/late.json +1056 -0
  128. package/src/apps/leadpages.json +243 -0
  129. package/src/apps/learning-platform.json +2244 -0
  130. package/src/apps/linear.json +184 -57
  131. package/src/apps/linkedin.json +179 -0
  132. package/src/apps/listen-notes.json +136 -0
  133. package/src/apps/lnk-bio.json +125 -0
  134. package/src/apps/loom.json +188 -0
  135. package/src/apps/luma.json +280 -0
  136. package/src/apps/mailchimp.json +238 -0
  137. package/src/apps/mailgun.json +310 -0
  138. package/src/apps/manychat.json +312 -0
  139. package/src/apps/marin-software.json +843 -0
  140. package/src/apps/media-downloader.json +157 -0
  141. package/src/apps/meetup-events.json +361 -0
  142. package/src/apps/meshy.json +248 -0
  143. package/src/apps/microsoft-teams.json +162 -0
  144. package/src/apps/monday.json +213 -0
  145. package/src/apps/mongodb-atlas.json +467 -0
  146. package/src/apps/namecheap.json +252 -0
  147. package/src/apps/nexar.json +289 -0
  148. package/src/apps/notion.json +530 -50
  149. package/src/apps/omnikit-analytics.json +374 -0
  150. package/src/apps/omnikit-api-gateway.json +660 -0
  151. package/src/apps/omnikit-billing.json +1781 -0
  152. package/src/apps/omnikit-cms.json +899 -0
  153. package/src/apps/omnikit-functions.json +329 -0
  154. package/src/apps/omnikit-intelligence.json +650 -0
  155. package/src/apps/omnikit-management.json +214 -0
  156. package/src/apps/omnikit-media.json +646 -0
  157. package/src/apps/omnikit-messaging.json +1826 -0
  158. package/src/apps/omnikit-redirects.json +209 -0
  159. package/src/apps/omnikit-webhooks.json +269 -0
  160. package/src/apps/omnikit-workflows.json +323 -0
  161. package/src/apps/openai-api.json +462 -0
  162. package/src/apps/openmeteo-weather.json +75 -0
  163. package/src/apps/optinmonster.json +244 -0
  164. package/src/apps/paidkit.json +1218 -0
  165. package/src/apps/paypal.json +254 -0
  166. package/src/apps/pdf.json +366 -0
  167. package/src/apps/pipedrive.json +255 -0
  168. package/src/apps/polymarket.json +653 -0
  169. package/src/apps/porkbun.json +417 -0
  170. package/src/apps/portfolio.json +501 -0
  171. package/src/apps/postmark.json +257 -0
  172. package/src/apps/printful.json +273 -0
  173. package/src/apps/printify.json +295 -0
  174. package/src/apps/producthunt.json +346 -0
  175. package/src/apps/pushover-notifications.json +113 -0
  176. package/src/apps/qonto.json +366 -0
  177. package/src/apps/quickbooks.json +234 -0
  178. package/src/apps/replicate.json +106 -0
  179. package/src/apps/rss.json +281 -0
  180. package/src/apps/salesflow.json +538 -0
  181. package/src/apps/salesforce-crm.json +216 -0
  182. package/src/apps/sap.json +256 -0
  183. package/src/apps/scaleway.json +911 -0
  184. package/src/apps/sculpteo.json +234 -0
  185. package/src/apps/sendgrid-email.json +233 -0
  186. package/src/apps/sendgrid.json +160 -35
  187. package/src/apps/shapeways.json +188 -0
  188. package/src/apps/shopify.json +1217 -0
  189. package/src/apps/skai.json +779 -0
  190. package/src/apps/slack.json +228 -38
  191. package/src/apps/slant3d.json +231 -0
  192. package/src/apps/slides.json +760 -0
  193. package/src/apps/smartly.json +504 -0
  194. package/src/apps/snov.json +467 -0
  195. package/src/apps/socialcast.json +553 -63
  196. package/src/apps/square.json +274 -0
  197. package/src/apps/storage-management.json +788 -0
  198. package/src/apps/storylane.json +180 -0
  199. package/src/apps/strapi.json +338 -0
  200. package/src/apps/stripe-payments.json +847 -0
  201. package/src/apps/stripe.json +472 -35
  202. package/src/apps/supabase.json +169 -0
  203. package/src/apps/supademo.json +115 -0
  204. package/src/apps/taskflow.json +714 -0
  205. package/src/apps/teamwork.json +457 -0
  206. package/src/apps/telegram.json +444 -0
  207. package/src/apps/thinger.json +458 -0
  208. package/src/apps/ticktick.json +169 -0
  209. package/src/apps/tiktok-api.json +406 -0
  210. package/src/apps/todoist.json +151 -0
  211. package/src/apps/together.json +123 -0
  212. package/src/apps/torrent.json +267 -0
  213. package/src/apps/trading.json +1012 -0
  214. package/src/apps/trading212.json +383 -0
  215. package/src/apps/trello.json +205 -0
  216. package/src/apps/tripo.json +157 -0
  217. package/src/apps/twilio.json +1008 -0
  218. package/src/apps/twitter-ads.json +875 -0
  219. package/src/apps/twitter-api.json +1151 -0
  220. package/src/apps/twitterapiio.json +548 -0
  221. package/src/apps/typeform.json +210 -0
  222. package/src/apps/vidforge.json +1020 -0
  223. package/src/apps/vonage.json +394 -0
  224. package/src/apps/vultr.json +225 -0
  225. package/src/apps/webflow.json +223 -0
  226. package/src/apps/wise.json +273 -0
  227. package/src/apps/wistia.json +283 -0
  228. package/src/apps/woocommerce.json +288 -0
  229. package/src/apps/wordpress.json +1675 -0
  230. package/src/apps/xero.json +257 -0
  231. package/src/apps/youtube-api.json +861 -0
  232. package/src/apps/zendesk.json +295 -0
  233. package/src/apps/zite.json +173 -0
  234. package/src/apps/zoho-crm.json +386 -0
  235. package/src/apps/zoo.json +193 -0
  236. package/src/apps/zoom.json +334 -0
@@ -1,75 +1,1035 @@
1
1
  {
2
2
  "slug": "google-calendar",
3
3
  "name": "Google Calendar",
4
- "description": "Calendar events, scheduling, and availability management",
5
- "logo": "https://www.google.com/s2/favicons?domain=calendar.google.com&sz=128",
6
- "categories": ["productivity", "calendar"],
4
+ "description": "MCP server for Google Calendar - create, manage, and search events, calendars, scheduling, and free/busy lookups via the Calendar REST API",
5
+ "logo": "https://ssl.gstatic.com/calendar/images/dynamiclogo_2020q4/calendar_31_2x.png",
6
+ "categories": [
7
+ "calendar",
8
+ "google",
9
+ "scheduling",
10
+ "events",
11
+ "productivity"
12
+ ],
7
13
  "base_url": "https://www.googleapis.com/calendar/v3",
8
14
  "auth": {
9
- "types": ["oauth2"],
10
- "headers": { "Authorization": "Bearer {{token}}", "Content-Type": "application/json" },
15
+ "types": [
16
+ "bearer",
17
+ "oauth2"
18
+ ],
19
+ "headers": {
20
+ "Authorization": "Bearer {{token}}"
21
+ },
22
+ "credential_fields": [
23
+ {
24
+ "name": "token",
25
+ "label": "access_token"
26
+ }
27
+ ],
11
28
  "oauth2": {
12
29
  "authorize_url": "https://accounts.google.com/o/oauth2/v2/auth",
13
30
  "token_url": "https://oauth2.googleapis.com/token",
14
- "scopes": ["https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.events"],
31
+ "scopes": [
32
+ "https://www.googleapis.com/auth/calendar",
33
+ "https://www.googleapis.com/auth/calendar.events",
34
+ "https://www.googleapis.com/auth/calendar.settings.readonly"
35
+ ],
15
36
  "client_id_required": true,
16
- "pkce": false,
17
- "setup_url": "https://console.cloud.google.com/apis/credentials",
18
- "setup_steps": [
19
- "Go to Google Cloud Console > APIs & Services > Credentials",
20
- "Create an OAuth 2.0 Client ID (Web application type)",
21
- "Add the authorized redirect URI: {callback_url}",
22
- "Enable the Google Calendar API under APIs & Services > Library",
23
- "Copy the Client ID and Client Secret"
24
- ]
37
+ "pkce": false
25
38
  }
26
39
  },
27
40
  "tools": [
41
+ {
42
+ "name": "list_events",
43
+ "description": "List events from a calendar with optional time range, search query, and pagination",
44
+ "method": "GET",
45
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events",
46
+ "input_schema": {
47
+ "type": "object",
48
+ "properties": {
49
+ "calendarId": {
50
+ "type": "string",
51
+ "description": "Calendar ID ('primary' for the user's primary calendar, or a specific calendar ID)",
52
+ "default": "primary"
53
+ },
54
+ "timeMin": {
55
+ "type": "string",
56
+ "description": "Lower bound for event start time (RFC 3339, e.g. '2025-01-01T00:00:00Z')"
57
+ },
58
+ "timeMax": {
59
+ "type": "string",
60
+ "description": "Upper bound for event start time (RFC 3339)"
61
+ },
62
+ "q": {
63
+ "type": "string",
64
+ "description": "Free text search query to filter events"
65
+ },
66
+ "maxResults": {
67
+ "type": "integer",
68
+ "description": "Maximum number of events to return",
69
+ "default": 25,
70
+ "maximum": 2500
71
+ },
72
+ "pageToken": {
73
+ "type": "string",
74
+ "description": "Page token for pagination"
75
+ },
76
+ "singleEvents": {
77
+ "type": "boolean",
78
+ "description": "Expand recurring events into individual instances",
79
+ "default": true
80
+ },
81
+ "orderBy": {
82
+ "type": "string",
83
+ "description": "Sort order (only valid when singleEvents is true)",
84
+ "enum": [
85
+ "startTime",
86
+ "updated"
87
+ ]
88
+ },
89
+ "showDeleted": {
90
+ "type": "boolean",
91
+ "description": "Include deleted events",
92
+ "default": false
93
+ },
94
+ "timeZone": {
95
+ "type": "string",
96
+ "description": "Time zone for response (IANA format, e.g. 'America/New_York')"
97
+ }
98
+ }
99
+ }
100
+ },
101
+ {
102
+ "name": "get_event",
103
+ "description": "Get detailed information about a specific calendar event",
104
+ "method": "GET",
105
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/%7B%7BeventId%7D%7D",
106
+ "input_schema": {
107
+ "type": "object",
108
+ "properties": {
109
+ "calendarId": {
110
+ "type": "string",
111
+ "description": "Calendar ID ('primary' for default)",
112
+ "default": "primary"
113
+ },
114
+ "eventId": {
115
+ "type": "string",
116
+ "description": "Event ID to retrieve"
117
+ },
118
+ "timeZone": {
119
+ "type": "string",
120
+ "description": "Time zone for response (IANA format)"
121
+ }
122
+ },
123
+ "required": [
124
+ "eventId"
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ "name": "create_event",
130
+ "description": "Create a new calendar event with optional attendees, location, reminders, and recurrence",
131
+ "method": "POST",
132
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events",
133
+ "input_schema": {
134
+ "type": "object",
135
+ "properties": {
136
+ "calendarId": {
137
+ "type": "string",
138
+ "description": "Calendar ID ('primary' for default)",
139
+ "default": "primary"
140
+ },
141
+ "summary": {
142
+ "type": "string",
143
+ "description": "Event title"
144
+ },
145
+ "description": {
146
+ "type": "string",
147
+ "description": "Event description (supports HTML)"
148
+ },
149
+ "location": {
150
+ "type": "string",
151
+ "description": "Event location or address"
152
+ },
153
+ "start": {
154
+ "type": "object",
155
+ "description": "Start time. Use 'dateTime' for timed events or 'date' for all-day events",
156
+ "properties": {
157
+ "dateTime": {
158
+ "type": "string",
159
+ "description": "Start datetime (RFC 3339, e.g. '2025-03-15T09:00:00-05:00')"
160
+ },
161
+ "date": {
162
+ "type": "string",
163
+ "description": "Start date for all-day events (YYYY-MM-DD)"
164
+ },
165
+ "timeZone": {
166
+ "type": "string",
167
+ "description": "Time zone (IANA format, e.g. 'America/New_York')"
168
+ }
169
+ }
170
+ },
171
+ "end": {
172
+ "type": "object",
173
+ "description": "End time. Use 'dateTime' for timed events or 'date' for all-day events",
174
+ "properties": {
175
+ "dateTime": {
176
+ "type": "string",
177
+ "description": "End datetime (RFC 3339)"
178
+ },
179
+ "date": {
180
+ "type": "string",
181
+ "description": "End date for all-day events (YYYY-MM-DD)"
182
+ },
183
+ "timeZone": {
184
+ "type": "string",
185
+ "description": "Time zone (IANA format)"
186
+ }
187
+ }
188
+ },
189
+ "attendees": {
190
+ "type": "array",
191
+ "description": "List of attendees to invite",
192
+ "items": {
193
+ "type": "object",
194
+ "properties": {
195
+ "email": {
196
+ "type": "string",
197
+ "description": "Attendee email address"
198
+ },
199
+ "optional": {
200
+ "type": "boolean",
201
+ "description": "Whether attendance is optional",
202
+ "default": false
203
+ },
204
+ "responseStatus": {
205
+ "type": "string",
206
+ "enum": [
207
+ "needsAction",
208
+ "declined",
209
+ "tentative",
210
+ "accepted"
211
+ ]
212
+ }
213
+ },
214
+ "required": [
215
+ "email"
216
+ ]
217
+ }
218
+ },
219
+ "recurrence": {
220
+ "type": "array",
221
+ "description": "Recurrence rules (RRULE format, e.g. ['RRULE:FREQ=WEEKLY;COUNT=10'])",
222
+ "items": {
223
+ "type": "string"
224
+ }
225
+ },
226
+ "reminders": {
227
+ "type": "object",
228
+ "description": "Reminder overrides",
229
+ "properties": {
230
+ "useDefault": {
231
+ "type": "boolean",
232
+ "description": "Use calendar default reminders",
233
+ "default": true
234
+ },
235
+ "overrides": {
236
+ "type": "array",
237
+ "description": "Custom reminders",
238
+ "items": {
239
+ "type": "object",
240
+ "properties": {
241
+ "method": {
242
+ "type": "string",
243
+ "enum": [
244
+ "email",
245
+ "popup"
246
+ ],
247
+ "description": "Reminder method"
248
+ },
249
+ "minutes": {
250
+ "type": "integer",
251
+ "description": "Minutes before event to trigger reminder"
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
257
+ },
258
+ "colorId": {
259
+ "type": "string",
260
+ "description": "Event color ID (1-11)"
261
+ },
262
+ "visibility": {
263
+ "type": "string",
264
+ "description": "Event visibility",
265
+ "enum": [
266
+ "default",
267
+ "public",
268
+ "private",
269
+ "confidential"
270
+ ]
271
+ },
272
+ "transparency": {
273
+ "type": "string",
274
+ "description": "Whether the event blocks time on the calendar",
275
+ "enum": [
276
+ "opaque",
277
+ "transparent"
278
+ ]
279
+ },
280
+ "sendUpdates": {
281
+ "type": "string",
282
+ "description": "Who to send notifications to",
283
+ "enum": [
284
+ "all",
285
+ "externalOnly",
286
+ "none"
287
+ ],
288
+ "default": "none"
289
+ },
290
+ "conferenceDataVersion": {
291
+ "type": "integer",
292
+ "description": "Set to 1 to enable conference data (Google Meet)",
293
+ "enum": [
294
+ 0,
295
+ 1
296
+ ]
297
+ },
298
+ "conferenceData": {
299
+ "type": "object",
300
+ "description": "Conference data for creating a Google Meet link",
301
+ "properties": {
302
+ "createRequest": {
303
+ "type": "object",
304
+ "properties": {
305
+ "requestId": {
306
+ "type": "string",
307
+ "description": "Unique ID for the request (use a UUID)"
308
+ },
309
+ "conferenceSolutionKey": {
310
+ "type": "object",
311
+ "properties": {
312
+ "type": {
313
+ "type": "string",
314
+ "description": "Conference type",
315
+ "enum": [
316
+ "hangoutsMeet"
317
+ ],
318
+ "default": "hangoutsMeet"
319
+ }
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ },
326
+ "guestsCanModify": {
327
+ "type": "boolean",
328
+ "description": "Whether guests can modify the event",
329
+ "default": false
330
+ },
331
+ "guestsCanInviteOthers": {
332
+ "type": "boolean",
333
+ "description": "Whether guests can invite others",
334
+ "default": true
335
+ },
336
+ "guestsCanSeeOtherGuests": {
337
+ "type": "boolean",
338
+ "description": "Whether guests can see other guests",
339
+ "default": true
340
+ }
341
+ },
342
+ "required": [
343
+ "summary",
344
+ "start",
345
+ "end"
346
+ ]
347
+ }
348
+ },
349
+ {
350
+ "name": "update_event",
351
+ "description": "Update an existing calendar event (partial update - only provided fields are changed)",
352
+ "method": "PATCH",
353
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/%7B%7BeventId%7D%7D",
354
+ "input_schema": {
355
+ "type": "object",
356
+ "properties": {
357
+ "calendarId": {
358
+ "type": "string",
359
+ "description": "Calendar ID ('primary' for default)",
360
+ "default": "primary"
361
+ },
362
+ "eventId": {
363
+ "type": "string",
364
+ "description": "Event ID to update"
365
+ },
366
+ "summary": {
367
+ "type": "string",
368
+ "description": "New event title"
369
+ },
370
+ "description": {
371
+ "type": "string",
372
+ "description": "New event description"
373
+ },
374
+ "location": {
375
+ "type": "string",
376
+ "description": "New event location"
377
+ },
378
+ "start": {
379
+ "type": "object",
380
+ "description": "New start time {dateTime, date, timeZone}",
381
+ "properties": {
382
+ "dateTime": {
383
+ "type": "string"
384
+ },
385
+ "date": {
386
+ "type": "string"
387
+ },
388
+ "timeZone": {
389
+ "type": "string"
390
+ }
391
+ }
392
+ },
393
+ "end": {
394
+ "type": "object",
395
+ "description": "New end time {dateTime, date, timeZone}",
396
+ "properties": {
397
+ "dateTime": {
398
+ "type": "string"
399
+ },
400
+ "date": {
401
+ "type": "string"
402
+ },
403
+ "timeZone": {
404
+ "type": "string"
405
+ }
406
+ }
407
+ },
408
+ "attendees": {
409
+ "type": "array",
410
+ "description": "Updated attendee list (replaces existing)",
411
+ "items": {
412
+ "type": "object",
413
+ "properties": {
414
+ "email": {
415
+ "type": "string"
416
+ },
417
+ "optional": {
418
+ "type": "boolean"
419
+ }
420
+ },
421
+ "required": [
422
+ "email"
423
+ ]
424
+ }
425
+ },
426
+ "colorId": {
427
+ "type": "string",
428
+ "description": "Event color ID (1-11)"
429
+ },
430
+ "visibility": {
431
+ "type": "string",
432
+ "enum": [
433
+ "default",
434
+ "public",
435
+ "private",
436
+ "confidential"
437
+ ]
438
+ },
439
+ "transparency": {
440
+ "type": "string",
441
+ "enum": [
442
+ "opaque",
443
+ "transparent"
444
+ ]
445
+ },
446
+ "reminders": {
447
+ "type": "object",
448
+ "properties": {
449
+ "useDefault": {
450
+ "type": "boolean"
451
+ },
452
+ "overrides": {
453
+ "type": "array",
454
+ "items": {
455
+ "type": "object",
456
+ "properties": {
457
+ "method": {
458
+ "type": "string",
459
+ "enum": [
460
+ "email",
461
+ "popup"
462
+ ]
463
+ },
464
+ "minutes": {
465
+ "type": "integer"
466
+ }
467
+ }
468
+ }
469
+ }
470
+ }
471
+ },
472
+ "recurrence": {
473
+ "type": "array",
474
+ "items": {
475
+ "type": "string"
476
+ },
477
+ "description": "Recurrence rules (RRULE format)"
478
+ },
479
+ "sendUpdates": {
480
+ "type": "string",
481
+ "description": "Who to send update notifications to",
482
+ "enum": [
483
+ "all",
484
+ "externalOnly",
485
+ "none"
486
+ ],
487
+ "default": "none"
488
+ }
489
+ },
490
+ "required": [
491
+ "eventId"
492
+ ]
493
+ }
494
+ },
495
+ {
496
+ "name": "delete_event",
497
+ "description": "Delete a calendar event",
498
+ "method": "DELETE",
499
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/%7B%7BeventId%7D%7D",
500
+ "input_schema": {
501
+ "type": "object",
502
+ "properties": {
503
+ "calendarId": {
504
+ "type": "string",
505
+ "description": "Calendar ID ('primary' for default)",
506
+ "default": "primary"
507
+ },
508
+ "eventId": {
509
+ "type": "string",
510
+ "description": "Event ID to delete"
511
+ },
512
+ "sendUpdates": {
513
+ "type": "string",
514
+ "description": "Who to send cancellation notifications to",
515
+ "enum": [
516
+ "all",
517
+ "externalOnly",
518
+ "none"
519
+ ],
520
+ "default": "none"
521
+ }
522
+ },
523
+ "required": [
524
+ "eventId"
525
+ ]
526
+ }
527
+ },
528
+ {
529
+ "name": "move_event",
530
+ "description": "Move an event from one calendar to another",
531
+ "method": "POST",
532
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/%7B%7BeventId%7D%7D/move",
533
+ "input_schema": {
534
+ "type": "object",
535
+ "properties": {
536
+ "calendarId": {
537
+ "type": "string",
538
+ "description": "Source calendar ID",
539
+ "default": "primary"
540
+ },
541
+ "eventId": {
542
+ "type": "string",
543
+ "description": "Event ID to move"
544
+ },
545
+ "destination": {
546
+ "type": "string",
547
+ "description": "Destination calendar ID"
548
+ },
549
+ "sendUpdates": {
550
+ "type": "string",
551
+ "enum": [
552
+ "all",
553
+ "externalOnly",
554
+ "none"
555
+ ],
556
+ "default": "none"
557
+ }
558
+ },
559
+ "required": [
560
+ "eventId",
561
+ "destination"
562
+ ]
563
+ }
564
+ },
565
+ {
566
+ "name": "quick_add",
567
+ "description": "Create an event from a natural language text string (e.g. 'Dinner with John tomorrow at 7pm at Pizza Place')",
568
+ "method": "POST",
569
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/quickAdd",
570
+ "input_schema": {
571
+ "type": "object",
572
+ "properties": {
573
+ "calendarId": {
574
+ "type": "string",
575
+ "description": "Calendar ID ('primary' for default)",
576
+ "default": "primary"
577
+ },
578
+ "text": {
579
+ "type": "string",
580
+ "description": "Natural language event description (e.g. 'Meeting with Sarah on Friday 3pm-4pm')"
581
+ },
582
+ "sendUpdates": {
583
+ "type": "string",
584
+ "enum": [
585
+ "all",
586
+ "externalOnly",
587
+ "none"
588
+ ],
589
+ "default": "none"
590
+ }
591
+ },
592
+ "required": [
593
+ "text"
594
+ ]
595
+ }
596
+ },
597
+ {
598
+ "name": "get_recurring_instances",
599
+ "description": "Get all instances of a recurring event within a time range",
600
+ "method": "GET",
601
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/%7B%7BeventId%7D%7D/instances",
602
+ "input_schema": {
603
+ "type": "object",
604
+ "properties": {
605
+ "calendarId": {
606
+ "type": "string",
607
+ "description": "Calendar ID",
608
+ "default": "primary"
609
+ },
610
+ "eventId": {
611
+ "type": "string",
612
+ "description": "Recurring event ID"
613
+ },
614
+ "timeMin": {
615
+ "type": "string",
616
+ "description": "Lower bound (RFC 3339)"
617
+ },
618
+ "timeMax": {
619
+ "type": "string",
620
+ "description": "Upper bound (RFC 3339)"
621
+ },
622
+ "maxResults": {
623
+ "type": "integer",
624
+ "description": "Max instances to return"
625
+ },
626
+ "pageToken": {
627
+ "type": "string",
628
+ "description": "Page token for pagination"
629
+ },
630
+ "timeZone": {
631
+ "type": "string",
632
+ "description": "Time zone (IANA format)"
633
+ }
634
+ },
635
+ "required": [
636
+ "eventId"
637
+ ]
638
+ }
639
+ },
28
640
  {
29
641
  "name": "list_calendars",
30
- "description": "List all calendars for the user",
642
+ "description": "List all calendars visible to the user (subscribed calendars, shared calendars, etc.)",
31
643
  "method": "GET",
32
644
  "path": "/users/me/calendarList",
33
645
  "input_schema": {
34
646
  "type": "object",
35
647
  "properties": {
36
- "maxResults": { "type": "number", "default": 50 }
648
+ "minAccessRole": {
649
+ "type": "string",
650
+ "description": "Minimum access role to filter by",
651
+ "enum": [
652
+ "freeBusyReader",
653
+ "reader",
654
+ "writer",
655
+ "owner"
656
+ ]
657
+ },
658
+ "showDeleted": {
659
+ "type": "boolean",
660
+ "description": "Include deleted calendars",
661
+ "default": false
662
+ },
663
+ "showHidden": {
664
+ "type": "boolean",
665
+ "description": "Include hidden calendars",
666
+ "default": false
667
+ },
668
+ "pageToken": {
669
+ "type": "string",
670
+ "description": "Page token for pagination"
671
+ }
37
672
  }
38
673
  }
39
674
  },
40
675
  {
41
- "name": "list_events",
42
- "description": "List upcoming events from a calendar",
676
+ "name": "get_calendar",
677
+ "description": "Get metadata for a specific calendar",
43
678
  "method": "GET",
44
- "path": "/calendars/{calendarId}/events",
679
+ "path": "/calendars/%7B%7BcalendarId%7D%7D",
45
680
  "input_schema": {
46
681
  "type": "object",
47
682
  "properties": {
48
- "calendarId": { "type": "string", "description": "Calendar ID", "default": "primary" },
49
- "maxResults": { "type": "number", "default": 10 },
50
- "timeMin": { "type": "string", "description": "Start time (RFC3339)" },
51
- "timeMax": { "type": "string", "description": "End time (RFC3339)" },
52
- "orderBy": { "type": "string", "default": "startTime" },
53
- "singleEvents": { "type": "boolean", "default": true }
683
+ "calendarId": {
684
+ "type": "string",
685
+ "description": "Calendar ID ('primary' for default)"
686
+ }
687
+ },
688
+ "required": [
689
+ "calendarId"
690
+ ]
691
+ }
692
+ },
693
+ {
694
+ "name": "create_calendar",
695
+ "description": "Create a new secondary calendar",
696
+ "method": "POST",
697
+ "path": "/calendars",
698
+ "input_schema": {
699
+ "type": "object",
700
+ "properties": {
701
+ "summary": {
702
+ "type": "string",
703
+ "description": "Calendar name"
704
+ },
705
+ "description": {
706
+ "type": "string",
707
+ "description": "Calendar description"
708
+ },
709
+ "timeZone": {
710
+ "type": "string",
711
+ "description": "Default time zone (IANA format, e.g. 'America/New_York')"
712
+ },
713
+ "location": {
714
+ "type": "string",
715
+ "description": "Geographic location of the calendar"
716
+ }
717
+ },
718
+ "required": [
719
+ "summary"
720
+ ]
721
+ }
722
+ },
723
+ {
724
+ "name": "update_calendar",
725
+ "description": "Update a calendar's name, description, time zone, or location",
726
+ "method": "PATCH",
727
+ "path": "/calendars/%7B%7BcalendarId%7D%7D",
728
+ "input_schema": {
729
+ "type": "object",
730
+ "properties": {
731
+ "calendarId": {
732
+ "type": "string",
733
+ "description": "Calendar ID to update"
734
+ },
735
+ "summary": {
736
+ "type": "string",
737
+ "description": "New calendar name"
738
+ },
739
+ "description": {
740
+ "type": "string",
741
+ "description": "New calendar description"
742
+ },
743
+ "timeZone": {
744
+ "type": "string",
745
+ "description": "New time zone (IANA format)"
746
+ },
747
+ "location": {
748
+ "type": "string",
749
+ "description": "New location"
750
+ }
751
+ },
752
+ "required": [
753
+ "calendarId"
754
+ ]
755
+ }
756
+ },
757
+ {
758
+ "name": "delete_calendar",
759
+ "description": "Permanently delete a secondary calendar. Cannot delete the primary calendar",
760
+ "method": "DELETE",
761
+ "path": "/calendars/%7B%7BcalendarId%7D%7D",
762
+ "input_schema": {
763
+ "type": "object",
764
+ "properties": {
765
+ "calendarId": {
766
+ "type": "string",
767
+ "description": "Calendar ID to delete (cannot be 'primary')"
768
+ }
769
+ },
770
+ "required": [
771
+ "calendarId"
772
+ ]
773
+ }
774
+ },
775
+ {
776
+ "name": "clear_calendar",
777
+ "description": "Clear all events from a primary calendar. Only works on the user's primary calendar",
778
+ "method": "POST",
779
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/clear",
780
+ "input_schema": {
781
+ "type": "object",
782
+ "properties": {
783
+ "calendarId": {
784
+ "type": "string",
785
+ "description": "Calendar ID (typically 'primary')",
786
+ "default": "primary"
787
+ }
54
788
  }
55
789
  }
56
790
  },
57
791
  {
58
- "name": "create_event",
59
- "description": "Create a new calendar event",
792
+ "name": "freebusy_query",
793
+ "description": "Check free/busy availability for one or more calendars within a time range. Useful for finding available meeting slots",
794
+ "method": "POST",
795
+ "path": "/freeBusy",
796
+ "input_schema": {
797
+ "type": "object",
798
+ "properties": {
799
+ "timeMin": {
800
+ "type": "string",
801
+ "description": "Start of the time range to query (RFC 3339)"
802
+ },
803
+ "timeMax": {
804
+ "type": "string",
805
+ "description": "End of the time range to query (RFC 3339)"
806
+ },
807
+ "timeZone": {
808
+ "type": "string",
809
+ "description": "Time zone (IANA format)"
810
+ },
811
+ "items": {
812
+ "type": "array",
813
+ "description": "Calendars to check availability for",
814
+ "items": {
815
+ "type": "object",
816
+ "properties": {
817
+ "id": {
818
+ "type": "string",
819
+ "description": "Calendar ID or email address"
820
+ }
821
+ },
822
+ "required": [
823
+ "id"
824
+ ]
825
+ }
826
+ },
827
+ "calendarExpansionMax": {
828
+ "type": "integer",
829
+ "description": "Max number of calendars to expand for groups",
830
+ "default": 50
831
+ },
832
+ "groupExpansionMax": {
833
+ "type": "integer",
834
+ "description": "Max number of group members to expand",
835
+ "default": 100
836
+ }
837
+ },
838
+ "required": [
839
+ "timeMin",
840
+ "timeMax",
841
+ "items"
842
+ ]
843
+ }
844
+ },
845
+ {
846
+ "name": "list_acl",
847
+ "description": "List access control rules (sharing settings) for a calendar",
848
+ "method": "GET",
849
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/acl",
850
+ "input_schema": {
851
+ "type": "object",
852
+ "properties": {
853
+ "calendarId": {
854
+ "type": "string",
855
+ "description": "Calendar ID",
856
+ "default": "primary"
857
+ },
858
+ "pageToken": {
859
+ "type": "string",
860
+ "description": "Page token for pagination"
861
+ }
862
+ }
863
+ }
864
+ },
865
+ {
866
+ "name": "share_calendar",
867
+ "description": "Share a calendar with a user or group by adding an access control rule",
868
+ "method": "POST",
869
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/acl",
870
+ "input_schema": {
871
+ "type": "object",
872
+ "properties": {
873
+ "calendarId": {
874
+ "type": "string",
875
+ "description": "Calendar ID to share",
876
+ "default": "primary"
877
+ },
878
+ "role": {
879
+ "type": "string",
880
+ "description": "Permission level to grant",
881
+ "enum": [
882
+ "freeBusyReader",
883
+ "reader",
884
+ "writer",
885
+ "owner"
886
+ ]
887
+ },
888
+ "scope": {
889
+ "type": "object",
890
+ "description": "Who to share with",
891
+ "properties": {
892
+ "type": {
893
+ "type": "string",
894
+ "description": "Scope type",
895
+ "enum": [
896
+ "default",
897
+ "user",
898
+ "group",
899
+ "domain"
900
+ ]
901
+ },
902
+ "value": {
903
+ "type": "string",
904
+ "description": "Email address, group email, or domain (not needed for 'default' type)"
905
+ }
906
+ },
907
+ "required": [
908
+ "type"
909
+ ]
910
+ },
911
+ "sendNotifications": {
912
+ "type": "boolean",
913
+ "description": "Send sharing notification email",
914
+ "default": true
915
+ }
916
+ },
917
+ "required": [
918
+ "role",
919
+ "scope"
920
+ ]
921
+ }
922
+ },
923
+ {
924
+ "name": "remove_sharing",
925
+ "description": "Remove an access control rule (unshare a calendar with a user)",
926
+ "method": "DELETE",
927
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/acl/%7B%7BruleId%7D%7D",
928
+ "input_schema": {
929
+ "type": "object",
930
+ "properties": {
931
+ "calendarId": {
932
+ "type": "string",
933
+ "description": "Calendar ID",
934
+ "default": "primary"
935
+ },
936
+ "ruleId": {
937
+ "type": "string",
938
+ "description": "ACL rule ID to remove (e.g. 'user:email@example.com')"
939
+ }
940
+ },
941
+ "required": [
942
+ "ruleId"
943
+ ]
944
+ }
945
+ },
946
+ {
947
+ "name": "get_colors",
948
+ "description": "Get the list of available colors for events and calendars",
949
+ "method": "GET",
950
+ "path": "/colors",
951
+ "input_schema": {
952
+ "type": "object",
953
+ "properties": {}
954
+ }
955
+ },
956
+ {
957
+ "name": "list_settings",
958
+ "description": "List all user calendar settings (time zone, date format, default event length, etc.)",
959
+ "method": "GET",
960
+ "path": "/users/me/settings",
961
+ "input_schema": {
962
+ "type": "object",
963
+ "properties": {
964
+ "pageToken": {
965
+ "type": "string",
966
+ "description": "Page token for pagination"
967
+ }
968
+ }
969
+ }
970
+ },
971
+ {
972
+ "name": "watch_events",
973
+ "description": "Set up push notifications for changes to events in a calendar via a webhook",
974
+ "method": "POST",
975
+ "path": "/calendars/%7B%7BcalendarId%7D%7D/events/watch",
976
+ "input_schema": {
977
+ "type": "object",
978
+ "properties": {
979
+ "calendarId": {
980
+ "type": "string",
981
+ "description": "Calendar ID to watch",
982
+ "default": "primary"
983
+ },
984
+ "id": {
985
+ "type": "string",
986
+ "description": "Unique channel ID for this watch (use a UUID)"
987
+ },
988
+ "type": {
989
+ "type": "string",
990
+ "description": "Channel type",
991
+ "enum": [
992
+ "web_hook"
993
+ ],
994
+ "default": "web_hook"
995
+ },
996
+ "address": {
997
+ "type": "string",
998
+ "description": "HTTPS URL to receive notifications"
999
+ },
1000
+ "expiration": {
1001
+ "type": "string",
1002
+ "description": "Channel expiration time in Unix timestamp milliseconds"
1003
+ }
1004
+ },
1005
+ "required": [
1006
+ "id",
1007
+ "type",
1008
+ "address"
1009
+ ]
1010
+ }
1011
+ },
1012
+ {
1013
+ "name": "stop_watch",
1014
+ "description": "Stop receiving push notifications for a watch channel",
60
1015
  "method": "POST",
61
- "path": "/calendars/{calendarId}/events",
1016
+ "path": "/channels/stop",
62
1017
  "input_schema": {
63
1018
  "type": "object",
64
1019
  "properties": {
65
- "calendarId": { "type": "string", "default": "primary" },
66
- "summary": { "type": "string", "description": "Event title" },
67
- "description": { "type": "string", "description": "Event description" },
68
- "start": { "type": "object", "description": "Start time { dateTime, timeZone }" },
69
- "end": { "type": "object", "description": "End time { dateTime, timeZone }" },
70
- "attendees": { "type": "array", "items": { "type": "object" }, "description": "Attendee list" }
1020
+ "id": {
1021
+ "type": "string",
1022
+ "description": "Channel ID to stop"
1023
+ },
1024
+ "resourceId": {
1025
+ "type": "string",
1026
+ "description": "Resource ID from the watch response"
1027
+ }
71
1028
  },
72
- "required": ["summary", "start", "end"]
1029
+ "required": [
1030
+ "id",
1031
+ "resourceId"
1032
+ ]
73
1033
  }
74
1034
  }
75
1035
  ]