Open the left sidebar again and go to API & Services > Credentials.
2
Select + Create Credentials > Service Account.
3
Enter a Service account name. The Service Account ID will be automatically generated.
4
The remaining fields are optional. Select Done to create the service account.
5
Select your newly created service account, then go to the Keys tab.
6
Select Add Key > Create new key, choose JSON as the key type, then select Create.A JSON file will be downloaded to your machine. Keep this file secure—you’ll need it to configure the integration.
The downloaded JSON file contains sensitive credentials. Store it securely and never share it publicly. The file structure looks like this:
Domain-wide delegation is required if you want your bot to:
Create Google Meet links for events
Send invitations to attendees
Act on behalf of users in your organization
Without domain-wide delegation, the service account can only manage its own calendar and cannot invite attendees or create Meet links.This feature is only available for Google Workspace accounts. Personal @gmail.com accounts do not support domain-wide delegation.
In Botpress Studio, select Explore Hub in the upper-right corner.
2
Search for the Google Calendar integration, then select Install Integration.
3
In the Configuration menu, select the drop-down and choose Configure manually.
Fill in the integration’s configuration fields:
Calendar ID
In Google Calendar, go to Settings and select your calendar.
Scroll to Integrate calendar to find your Calendar ID.
Copy the Calendar ID and paste it into the Calendar ID field in Botpress.
Client Email
Open the JSON file you downloaded in Step 3 and copy the client_email value.
Private Key
Open the JSON file you downloaded in Step 3 and copy the entire private_key value, including the -----BEGIN PRIVATE KEY----- and -----END PRIVATE KEY----- markers.
Impersonate Email (Google Workspace only)
Enter the email address of a user in your Google Workspace that the service account will impersonate.This field is required for:
Creating Google Meet links
Sending attendee invitations
The email must belong to an actual user in your Google Workspace domain. Without this field configured, Meet creation and attendee invitations will not work.
This field only applies if you have configured domain-wide delegation. Personal @gmail.com accounts do not support impersonation.
When you’ve filled in all the fields, select Save Configuration.
You’ve successfully configured the Google Calendar integration!
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Botpress","colors":{"primary":"#0090FF","light":"#3B9EFF","dark":"#0588F0"},"logo":{"light":"https://mintcdn.com/botpress/U-4GnVaxESbJOVgP/logo/light.svg?fit=max\u0026auto=format\u0026n=U-4GnVaxESbJOVgP\u0026q=85\u0026s=df22258e2155256a01174f5316ebc024","dark":"https://mintcdn.com/botpress/U-4GnVaxESbJOVgP/logo/dark.svg?fit=max\u0026auto=format\u0026n=U-4GnVaxESbJOVgP\u0026q=85\u0026s=c7418cf9e02f06a53c7539fada0c96d4","href":"https://botpress.com/docs"},"favicon":"https://mintcdn.com/botpress/lKQBqQA1hrY6ODf5/favicon.svg?fit=max\u0026auto=format\u0026n=lKQBqQA1hrY6ODf5\u0026q=85\u0026s=0867a83e88e8476b31ba5dd72cb37583","background":{"color":{"light":"#fcfcfc","dark":"#1a1a1a"}},"navbar":{"primary":{"type":"button","label":"Dashboard","href":"https://app.botpress.cloud"}},"footer":{"socials":{"x":"https://x.com/getbotpress","github":"https://github.com/botpress","linkedin":"https://www.linkedin.com/company/botpress","youtube":"https://www.youtube.com/botpress","discord":"https://discord.com/invite/botpress"}},"seo":{"metatags":{"og:logo":"/meta-assets/meta-logo.png"}},"fonts":{"heading":{"family":"Aspekta, sans-serif","weight":600,"source":"https://aspekta-cdn.vercel.app/fonts/AspektaVF.woff2","format":"woff2"}},"icons":{"library":"lucide"},"styling":{"eyebrows":"breadcrumbs","codeblocks":{"theme":{"light":"light-plus","dark":"dark-plus"}},"latex":false},"integrations":{"mixpanel":{"projectToken":"1195923e954ce61d822842b5832047cd"}},"contextual":{"options":[{"title":"Ask AI","description":"Ask AI a question about this page","icon":"/icon.png","href":"#ask"},"copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":false},"metadata":{"timestamp":true},"navigation":{"global":{"anchors":[{"anchor":"Community Discord","icon":"discord","href":"https://discord.com/invite/botpress"},{"anchor":"News \u0026 Resources","icon":"newspaper","href":"https://botpress.com/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"botpress","hasAudioNarration":false,"actualSubdomain":"botpress","customDomains":["botpress.com"],"gitSource":{"type":"github","owner":"botpress","repo":"docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a676aaf2a513e6ab67f02b1","collectionId":"cf06ac30-b1bf-43e8-be9b-f18d8676b5e9","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a676aaf2a513e6ab67f02b1"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"}},"buildId":"6ae9260993c0d64dfeafb71b:success","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"Docs","count":192},{"language":"default","tag":"API Reference","count":132},{"language":"default","tag":"Endpoints","count":117},{"language":"default","tag":"Studio","count":80},{"language":"default","tag":"Integrations","count":79},{"language":"default","tag":"Guides","count":75},{"language":"default","tag":"Concepts","count":57},{"language":"default","tag":"Admin API","count":40},{"language":"default","tag":"Runtime API","count":36},{"language":"default","tag":"ADK","count":32}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"[data-page-mode=\"frame\"] footer,[data-page-mode=\"frame\"] [data-component=\"footer\"]{display:flex!important}.transparent-accordion .bg-background-light{background-color:transparent!important}.callout[data-callout-type=\"info\"]{background-color:light-dark(rgba(253, 244, 255, 0.5), rgba(217, 70, 239, 0.1));border-color:light-dark(rgba(217, 70, 239, 0.2), rgba(168, 85, 247, 0.3))}.callout[data-callout-type=\"info\"] [data-component-part=\"callout-icon\"] svg{color:light-dark(rgba(192, 38, 211), rgba(232, 121, 249, 0.8))}.callout[data-callout-type=\"info\"] [data-component-part=\"callout-content\"]{color:light-dark(rgba(112, 26, 117), rgba(245, 208, 254))}.steps{margin-top:0}.bpFab{box-shadow:none!important}.tracking-tight{letter-spacing:normal!important}.high-contrast{color:light-dark(black, white)!important}.button{background-color:#0588f0;color:white;text-align:center;border:1px solid #0588f0;font-weight:500;padding:0.5rem 1rem;font-size:0.9rem;line-height:130%;text-decoration:none;transition:all 0.2s;position:relative}.button:hover{opacity:0.9}.discord_banner{text-align:center;background-color:light-dark(#fcfcfc, #1a1a1a);border:1px solid #626762;padding:0.5rem 1rem;font-size:0.9rem;line-height:130%;text-decoration:none;transition:all 0.2s;position:relative}#test{margin:0}@media (min-width: 768px){.home-columns{flex:1 1 0%;max-width:33.333%}.lower-columns{flex:1 1 0%;max-width:50%}}[data-nav-tag=\"Beta\"]{background-color:light-dark(#e3eafd, #07296a)!important;color:light-dark(#133a9a, #7196f4)!important}[data-nav-tag=\"Plus\"]{background-color:light-dark(#e3eafd, #07296a)!important;color:light-dark(#133a9a, #7196f4)!important}[data-nav-tag=\"Team\"]{background-color:light-dark(#d1fae4, #0f4c2c)!important;color:light-dark(#166e3f, #6ae1a1)!important}@media (min-width: 768px){.bpWebchat{min-width:450px;width:29.7vw!important;max-height:83.2vh!important}}#ai-bolt{height:0.9em!important;width:auto!important;aspect-ratio:auto!important;pointer-events:none}.max-w-xl{max-width:40em}img{background-color:inherit!important}[data-component-part=\"card-content\"]{font-size:0.875rem}.bot-toggle-container{position:fixed;top:3.55rem;right:-16px;bottom:0;width:32px;height:auto;background-color:transparent;z-index:30;pointer-events:auto;display:flex;align-items:center;justify-content:center;cursor:pointer}.bot-panel-expanded .bot-toggle-container{display:none}#bot-toggle{position:fixed;top:3.55rem;right:0;bottom:0;width:40px;height:auto;background-color:light-dark(#f7f7f8, #09090b);border-left:1px solid light-dark(rgb(226, 222, 230), rgb(255 255 255/0.07));border-right:none;color:light-dark(#1a1a1a, #fcfcfc);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:30;padding:0}#bot-toggle:hover{background-color:light-dark(#f0f0f0, #2a2a2a)}#bot-toggle.bot-toggle-expanded{display:none}#bot-toggle svg{width:16px;height:16px}.bot-panel{position:fixed;top:3.55rem;right:0;bottom:0;width:400px;height:auto;background-color:light-dark(#f7f7f8, #09090b);z-index:29;display:flex;flex-direction:row;transform:translateX(100%);resize:none;overflow:visible;transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1)}.bot-panel-expanded{transform:translateX(0)}.bot-panel-collapsed{transform:translateX(100%)}.bot-iframe-container{flex:1;height:100%;position:relative;overflow:hidden;pointer-events:auto;min-width:0;border-left:1px solid light-dark(rgb(226, 222, 230), rgb(255 255 255/0.07))}.bot-iframe{width:100%;height:100%;border:none;display:block}.bot-mobile-dismiss{display:none;position:absolute;top:0;left:0;right:0;height:40px;background-color:transparent;z-index:33;align-items:center;justify-content:center;cursor:grab;pointer-events:auto;touch-action:none}.bot-mobile-dismiss:active{cursor:grabbing}.bot-mobile-dismiss svg{width:36px;height:20px;color:light-dark(rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.4))}@media (max-width: 1024px){#bot-toggle{display:none!important}.bot-mobile-dismiss{display:flex}.bot-panel{width:100%;max-width:100vw;min-width:100vw;resize:none;top:0;left:0;right:0;height:100dvh;z-index:31;padding:0;margin:0;transform:translateY(100%);transition:transform 0.15s cubic-bezier(0.32, 0.72, 0, 1);border-top:1px solid light-dark(rgb(226, 222, 230), rgb(255 255 255/0.07))}.bot-panel-expanded{transform:translateY(0)}.bot-panel-collapsed{transform:translateY(100%)}.bot-panel-expanded.swiping{transition:none}.bot-panel-expanded .bot-iframe-container{padding:0;margin:0;border:none}.bot-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0, 0, 0, 0.5);z-index:30;opacity:0;pointer-events:none;transition:opacity 0.3s ease}.bot-overlay.visible{opacity:1;pointer-events:auto}}.ask-ai-input-bubble{position:fixed;bottom:30px;left:50%;transform:translateX(-50%) translateY(0);z-index:30;width:480px;max-width:480px;pointer-events:none;transition:opacity 150ms ease,\n transform 150ms ease;opacity:1}.ask-ai-input-wrapper{display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 24px;border:1px solid light-dark(rgb(var(--gray-950) / 0.2), rgb(255 255 255/0.2));border-radius:16px;background-color:light-dark(rgba(252, 252, 252, 0.8), rgba(26, 26, 26, 0.8));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);box-shadow:0 25px 50px -12px rgba(0, 0, 0, 0.05);pointer-events:auto;transition:border-color 400ms,\n opacity 150ms ease;width:100%}.ask-ai-input-bubble:focus-within .ask-ai-input-wrapper{border-color:#0588f0}.ask-ai-input{flex:1;padding:16px 0;border:none;background:transparent;color:light-dark(rgb(var(--gray-600)), rgb(var(--gray-400)));font-size:0.875rem;font-family:inherit;outline:none;outline-width:0;min-width:0}.ask-ai-input::placeholder{color:light-dark(rgb(var(--gray-600)), var(--gray-400))}.ask-ai-shortcut{font-size:0.75rem;font-weight:600;user-select:none;pointer-events:none;margin:0 8px;color:light-dark(rgb(var(--gray-600)), rgb(var(--gray-400)));display:none}@media (min-width: 1024px){.ask-ai-shortcut{display:inline}}.ask-ai-send-button{display:flex;justify-content:center;align-items:center;padding:6px;width:32px;height:32px;border-radius:50%;border:none;background-color:light-dark(rgba(5, 136, 240, 0.3), rgba(5, 136, 240, 0.3));color:white;cursor:pointer;transition:background-color 0.2s ease,\n opacity 0.2s ease;flex-shrink:0}.ask-ai-send-button svg{width:22px;height:22px}.ask-ai-send-button:not(:disabled){background-color:#0588f0}.ask-ai-send-button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.ask-ai-input-bubble-hidden{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(10px)}@media (max-width: 1024px){.ask-ai-input-bubble{bottom:16px;left:50%;transform:translateX(-50%) translateY(0);width:calc(100% - 64px);max-width:320px}.ask-ai-input-bubble-hidden{transform:translateX(-50%) translateY(10px)}.ask-ai-input-wrapper{padding:0 12px 0 16px}.ask-ai-input{padding:12px 0;pointer-events:none;cursor:pointer}.ask-ai-input-wrapper{cursor:pointer}.ask-ai-send-button{display:none}.ask-ai-shortcut{display:none}}"}],"page":{"pagePath":"integrations/integration-guides/googlecalendar","slug":"/integrations/integration-guides/googlecalendar","pageMetadata":{"title":"Google Calendar","description":"Add a bot to Google Calendar using the official integration.","icon":"/integrations/integration-guides/assets/icons/googlecalendar.svg","href":"/integrations/integration-guides/googlecalendar"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Add a bot to Google Calendar using the official integration.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const OpenInHub=({integration})=>{const _components={a:`a`,..._provideComponents()};const{version,id}=integration||{};const basePath=`https://studio.botpress.cloud/home?exploreHub=1\u0026hubItemId=`;const url=`${basePath}${id}`;return _jsxs(_Fragment,{children:[_jsx(_components.a,{className:`button mint-rounded-xl`,href:url,children:_jsx(`span`,{children:`Open in Hub`})}),_jsxs(`i`,{style:{margin:`0`,fontStyle:`normal`,color:`#666`,fontSize:`0.85rem`,padding:`.5rem`},children:[`v`,version]})]})};const integrationVersions={\"accelo\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQHPVKP4XTKMNXC2RZKZ88`},\"activecampaign\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQHVA0Z25PFC7H13EQ41FR`},\"acumatica\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQHZTNGNHPPS9CKD35Q6EY`},\"airtable\":{\"version\":`3.0.0`,\"id\":`intver_01KQYW202230PVRW9RVA68VRYR`},\"alchemer\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQQZRS9ZQ7WBWHCF1MKGCM`},\"anthropic\":{\"version\":`18.0.1`,\"id\":`intver_01KQYW62BM57D669VPPSAKXGHG`},\"anydesk\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQR4048H4976FCKT2YHD2X`},\"apollo\":{\"version\":`3.0.2`,\"id\":`intver_01K6BJFKR5WZV44VNENAN6XBT1`},\"asana\":{\"version\":`0.3.13`,\"id\":`intver_01KMZACD2E15B0RZB8RJ2XN2JX`},\"attio\":{\"version\":`1.0.3`,\"id\":`intver_01KMZACN5Z3VJK0W280ED7G4Y0`},\"avoma\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQRC955G4CXN8QTFHXAPXZ`},\"bamboohr\":{\"version\":`2.1.2`,\"id\":`intver_01KMZACXWM0GDNQF5PS3QBPQDN`},\"beehiiv\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQRGRRB95YC5YKWB1BFHZH`},\"bigcommerce\":{\"version\":`3.2.4`,\"id\":`intver_01KMZAD5GM0P6BGFJHKE2QDDR8`},\"bigin\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQRS4Q0AY8CEAGYTDMPEPV`},\"bolt\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQRXGEVSFY1PYM195NAWQ6`},\"box\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQS1NBSGECDYX5MTTFN7RK`},\"braze\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQS5V6T5HF7MRJ46NMP42B`},\"brevo\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSA1R5F1JGJZS55VTC1RP`},\"britive\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSE7EMRGQE8EQD2CB6AZR`},\"browser\":{\"version\":`0.8.8`,\"id\":`intver_01KPBEHKBJD4MZ0ZDWEBMHX74D`},\"bynder\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSJT5N0Q2J2K7KGG12QQ5`},\"calcom\":{\"version\":`0.4.2`,\"id\":`intver_01KMZADKWGWXARSDEH5VES64JY`},\"calendly\":{\"version\":`0.0.5`,\"id\":`intver_01KMZADVPKFVFATR33S36R2NQ8`},\"canny\":{\"version\":`0.2.3`,\"id\":`intver_01KMZAE3W37N658H69Y6ZPSREQ`},\"capsule-crm\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSQ6CJJ6G9FK7PAACKE6X`},\"cerebras\":{\"version\":`9.0.0`,\"id\":`intver_01KNRZZPBTBA0FAHVDVGAJNBJ1`},\"charts\":{\"version\":`0.2.8`,\"id\":`intver_01KMZAEJVYBMNRMP01816TVEBH`},\"chat\":{\"version\":`1.0.0`,\"id\":`intver_01KNSDHSSEHCX633DGB62V2ZB8`},\"checkout\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSVA80GG51V7QKTARFG0E`},\"clari\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQSZVXNWXV8371M8ACEPFV`},\"clay\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQT424E25GR5K1Q8PZC4SC`},\"clickup\":{\"version\":`0.0.3`,\"id\":`intver_01KMZAF5TCYZNN80SFM4MCASB5`},\"close\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQT8BMZG66DNJM1DBZ2EQ3`},\"cognism\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQTCC9XR5N28RA4SNZ8KYJ`},\"comeet\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQTGMDYR086FC0VEQ95VGC`},\"confluence\":{\"version\":`3.3.4`,\"id\":`intver_01KMZAFH0Z4679X7P0SSY18DPV`},\"copper\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQTS5YQTVNMSRMTH12X4YC`},\"creatio\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQTXY9Z4S1XDWSBT4J4KJJ`},\"crmone\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQV28DCXF7SV71N9Q5BJC8`},\"dalle\":{\"version\":`0.3.8`,\"id\":`intver_01KMZAFVDB02KE332TQ930T76J`},\"databricks\":{\"version\":`0.0.4`,\"id\":`intver_01JBMK24H270H1ZTH2E8P34V4J`},\"demandbase\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQV9ZZ9MHH2ENEQ1ERMY2G`},\"desk\":{\"version\":`1.0.0`,\"id\":`intver_01KGQ972H97YAN3D3KY9425JYN`},\"discord\":{\"version\":`1.2.1`,\"id\":`intver_01KREWJHF8AZMBHH3JC5XFSFTB`},\"docusign\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQVKFW4F7BBRSDD7EEZE6Z`},\"dropbox\":{\"version\":`2.0.1`,\"id\":`intver_01KMZAG63Y41V6CJGWD858VKQN`},\"email\":{\"version\":`0.1.4`,\"id\":`intver_01KMZAGF70MCA75BCVVY3DGHXD`},\"enchant\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQVQQ60DZV01V3D1GA29YG`},\"engagebay\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQVVW42J4KNWCEZ6VQ3ZSJ`},\"fathom\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQW0QPEJS7M4EPVN9GJJDK`},\"feature-base\":{\"version\":`1.0.3`,\"id\":`intver_01KMZAGPXHR49811P7S89CWN35`},\"fireworks-ai\":{\"version\":`11.0.0`,\"id\":`intver_01KNS0091R8GPT9C088F3F3PE0`},\"fivetran\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQW55482FWTDSPCYT53DWE`},\"flodesk\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQW9APE7Z8E81T2F58VDM7`},\"folk\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQWDVG2DVFYKJRD8DMHVPZ`},\"freshchat\":{\"version\":`1.5.5`,\"id\":`intver_01KMZAH6YY639ZNJTGDMTH25GT`},\"freshsales\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQWJ3CC3DJ5KG0W6XP33FD`},\"fullstory\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQWPM0T9EH5SAGDQ3Z14ZC`},\"gainsight\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQWTPKB13Y7619A6GEN5HQ`},\"getaccept\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQWZ0SAMDJVQNNA86RG21M`},\"getresponse\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQX34P2PBW0EM9NC6ZGFT5`},\"github\":{\"version\":`1.2.1`,\"id\":`intver_01KMZAHF5WMDMTT9H6V3DQ8T50`},\"gladly\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQX7B29WE85VA8N5BCST16`},\"gmail\":{\"version\":`1.0.7`,\"id\":`intver_01KMZAHQQ8YSB2DRVR1B6YXNCN`},\"google-ai\":{\"version\":`8.0.0`,\"id\":`intver_01KNS00R1R8P4N2J4SVN6HHX4P`},\"google-analytics\":{\"version\":`1.0.0`,\"id\":`intver_01KPRHR42CF02FMDDGSF0TG0DB`},\"googlecalendar\":{\"version\":`2.0.9`,\"id\":`intver_01KMZAJAKBEZKGH0ZPQJBR1VAE`},\"googledrive\":{\"version\":`0.4.2`,\"id\":`intver_01KMZAJJE94ZYG631DQM93B9RN`},\"groq\":{\"version\":`16.0.0`,\"id\":`intver_01KNS015P14BRMA1C0CJG239M4`},\"gsheets\":{\"version\":`2.1.9`,\"id\":`intver_01KP5Z7BRNQNGVY406742M7BBE`},\"gusto\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR75Y17N5EWS6P0PC93RHQ`},\"happyfox\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQXFNYWCXX819GTBHJ470W`},\"help-scout\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQXKX61YWJMMHYK3YDFZ0K`},\"hitl\":{\"version\":`2.0.2`,\"id\":`intver_01K0SV5HZAT9FSVVEB7S91SH4F`},\"honeybook\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQXRQ8TADY78EBPBKSXFPC`},\"hubspot\":{\"version\":`6.0.9`,\"id\":`intver_01KTV8S0ZX48N54R7AVG24CHJZ`},\"hunter\":{\"version\":`1.0.2`,\"id\":`intver_01KMZAKV7RM16T6375G0JXDYHH`},\"instagram\":{\"version\":`4.1.9`,\"id\":`intver_01KRC18D2WGRKT0G2SRZQ5VE3Z`},\"instantly\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQXWNN3ZM0DAQBE7N2BP54`},\"intercom\":{\"version\":`2.0.4`,\"id\":`intver_01KMZAMCN5KTKK60239ADVZGCP`},\"keap\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQY1A6AQGSZRPKRJ11649R`},\"kit\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQYAZCH51RNSK7XT8ZKFZC`},\"klaviyo\":{\"version\":`3.0.2`,\"id\":`intver_01K6BFXSKB0G4KMVGJPTR1X835`},\"knack\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQYKKW7JQJYH5GQW95AXFJ`},\"kommo\":{\"version\":`0.1.0`,\"id\":`intver_01KN89QSX1YDM04NFRHK0WKZMG`},\"kustomer\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQYR6A4M0527JHDSNXN4TY`},\"kylas\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQYWG9PSP9076S99BE546R`},\"leadsquared\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZ0PFZ7W5AJN0MZQJHGW7`},\"leandata\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZ54J1MYP5D4WXZ1Z7KK7`},\"less-annoying-crm\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZ99G8ZWD4847189A4EGS`},\"line\":{\"version\":`2.0.6`,\"id\":`intver_01KMZAMNQDY2BZAW86RZ58VSQY`},\"linear\":{\"version\":`2.5.0`,\"id\":`intver_01KRHWEFJX783DXZG4XZ7B6ER8`},\"linkedin\":{\"version\":`0.1.3`,\"id\":`intver_01KN89RB1CBCP1MGAYEBHMCT5Q`},\"localiq\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZDKZQV3J44CJF074YHXZ`},\"loops\":{\"version\":`0.1.5`,\"id\":`intver_01KMZANASVEZEW761JG63F1RM0`},\"mailchimp\":{\"version\":`0.3.12`,\"id\":`intver_01KMZANJGYPESPJHZJ7NPEE7C6`},\"mailerlite\":{\"version\":`3.0.2`,\"id\":`intver_01K6BFZTMA8A1Z3KV1QXGWB61S`},\"make\":{\"version\":`0.3.9`,\"id\":`intver_01KMZANTJE8DN94EE6K74ETJ0Z`},\"mcp-client\":{\"version\":`0.1.0`,\"id\":`intver_01KQWWKVJFV3DD65PR233GRHMH`},\"messenger\":{\"version\":`5.1.8`,\"id\":`intver_01KPDRM4RJN85JM6DRP43W48PX`},\"mindtickle\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZNRAZMBAEZ943WY44EXD`},\"mintlify\":{\"version\":`1.0.1`,\"id\":`intver_01KMZAPEVTD6HZ9BPRHVK09DC5`},\"mistral-ai\":{\"version\":`1.0.0`,\"id\":`intver_01KNS021C2ZFXWGAXC5TFAXBA9`},\"monday\":{\"version\":`1.0.2`,\"id\":`intver_01KMZAQ1357YEQBMVPHQ8QYSAF`},\"mural\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZT1R0PR8C59Z1MHWMG83`},\"notion\":{\"version\":`3.0.5`,\"id\":`intver_01KN89RW8Z2ZK98F8JM8X66RXS`},\"nutshell\":{\"version\":`2.0.0`,\"id\":`intver_01JFAQZYAY7HCM2VTWTZK0GHZ6`},\"odoo\":{\"version\":`0.1.0`,\"id\":`intver_01KRC19AE1XTHSSW6D0FZPJZ1H`},\"okta\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR02JMED7RK95YXCDRVNXX`},\"openai\":{\"version\":`20.0.0`,\"id\":`intver_01KNS02E7FF0WQAYXWJDM3ZZNQ`},\"outreach\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR0717CX7YJNEX0FXRR8TN`},\"pandadoc\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR0BBGR1EGMRR2PRGHRABB`},\"pdf-generator\":{\"version\":`0.0.7`,\"id\":`intver_01KMZAQP6WG231KVJSEY88KG2J`},\"pimcore\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR0FRDMZNK1B1EYKTHKANP`},\"pipedrive\":{\"version\":`5.0.1`,\"id\":`intver_01K6BG0EMJ1FQ0E5DCZZEN9301`},\"pipeliner\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR0R7XHB7VYX0Q0ETV9B3F`},\"plaid\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR0WH09T4MRTTQHRAH2ESD`},\"planhat\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR10SHDPEPXTJN6RRB9H6S`},\"plus/apify\":{\"version\":`1.0.4`,\"id\":`intver_01KH6R8P2ZYNACH8KQED02E9YC`},\"plus/brevo-hitl\":{\"version\":`2.0.0`,\"id\":`intver_01K392AS04342HT6Z2HZZ60A2D`},\"plus/chatwoot\":{\"version\":`1.0.4`,\"id\":`intver_01KD3BFCBTV2PNJ80V3VYFBC4M`},\"plus/email-notifier\":{\"version\":`1.1.1`,\"id\":`intver_01KB0YDR2AQ5A8H0GBZ35J51MQ`},\"plus/go-high-level\":{\"version\":`1.0.4`,\"id\":`intver_01K6BDMWTZ7FNKTGD4N8YDPH1H`},\"plus/google-analytics\":{\"version\":`0.2.4`,\"id\":`intver_01HXS7S3FCANEG2EN5FKKWH722`},\"plus/google-chat-spaces\":{\"version\":`1.0.3`,\"id\":`intver_01K6BDNG0ZNW5JXRA5RDQJQCWN`},\"plus/google-sheets\":{\"version\":`1.2.5`,\"id\":`intver_01K6BDP63K6Y5HFVJ84R7EKP0Y`},\"plus/hitl-api\":{\"version\":`0.2.0`,\"id\":`intver_01J804C5W78Y5FWHHNVWMR5VM3`},\"plus/hubspot-help-desk-hitl\":{\"version\":`3.1.1`,\"id\":`intver_01KC2AWT9BDMTHV36AJRVEF4DN`},\"plus/hubspot-hitl\":{\"version\":`5.0.4`,\"id\":`intver_01K6BF9Q6D3M6T3J3V541ZJC8Z`},\"plus/huggingface\":{\"version\":`0.0.1`,\"id\":`intver_01J6FP62B7KEHH4NC4R7NBBTW5`},\"plus/intercom-hitl\":{\"version\":`2.0.5`,\"id\":`intver_01KEWH6D0NF81Q1WB8W8V225A8`},\"plus/jira\":{\"version\":`0.2.4`,\"id\":`intver_01KCVM0T96KA8YK723W3N8P494`},\"plus/livechat-hitl\":{\"version\":`3.0.2`,\"id\":`intver_01K6BFYE44DVXKVFXBHKZED8P9`},\"plus/magento2\":{\"version\":`2.0.4`,\"id\":`intver_01K6BKG43JX1R6ZEB4CXJ6R65D`},\"plus/messaging\":{\"version\":`0.2.3`,\"id\":`intver_01HVM0R2R0QXWNH3BEZPYFK6ZJ`},\"plus/mixpanel\":{\"version\":`0.2.3`,\"id\":`intver_01HXABTRSS5J9K0G1S1MPCX8J9`},\"plus/persat\":{\"version\":`1.0.0`,\"id\":`intver_01K75D7C0JTQ5FY058T1187G32`},\"plus/salesforce\":{\"version\":`1.0.2`,\"id\":`intver_01JRTXEF3N4CG8D668ANNW40DS`},\"plus/segment\":{\"version\":`0.2.4`,\"id\":`intver_01HX7R8GHK3BKX2RHER1KYV0VT`},\"plus/sharepoint\":{\"version\":`4.1.0`,\"id\":`intver_01K8XWKTBHY5AX8JTBV4T0D4V6`},\"plus/sharepoint-excel\":{\"version\":`2.2.1`,\"id\":`intver_01K6BKHB4TQ5RFVA6W1VKAREFB`},\"plus/shopify-products-sync\":{\"version\":`3.0.2`,\"id\":`intver_01K8VDHZ8FM3ZDMTYA8Y7EDXTT`},\"plus/twiliovoice\":{\"version\":`0.2.3`,\"id\":`intver_01K6BKKDTZ1X8ECNS52N96M8AM`},\"plus/zoho\":{\"version\":`3.0.0`,\"id\":`intver_01JNRREVZ0BA8VKEKMPMRF0DW5`},\"plus/zohosalesiq\":{\"version\":`2.0.0`,\"id\":`intver_01JP37YJSERZGZQQW369F7W27C`},\"plus/zoho-sales-iq-hitl\":{\"version\":`3.0.0`,\"id\":`intver_01K397TXPTA9982A829WV7XNX5`},\"plus/zoom\":{\"version\":`3.1.1`,\"id\":`intver_01KAEBBGJ327TGZ0AZW31H6S19`},\"posthog\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR153DTQEGNZXMA4PAAV7D`},\"postman\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR19F7PZWCD9CBKAB30540`},\"postmark\":{\"version\":`0.1.0`,\"id\":`intver_01KQ01G3YEPEXVNP2SFH49079G`},\"quickbooks\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR1E05TRXX8ZHQ52QMG2KJ`},\"reachdesk\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR1JD70W5VTGDEDGFQXKEB`},\"resend\":{\"version\":`0.1.10`,\"id\":`intver_01KMZAQXVC4KP20TFCJNGY8PKV`},\"revenuehero\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR1PDG5ZQHDAT4PX3J67N5`},\"rippling\":{\"version\":`0.0.4`,\"id\":`intver_01JBMK2M3NWMH63ZTQBSQSEXHB`},\"sage\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR8RTCW2P6C8VWSMN7FQFS`},\"salesflare\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2316BGX6S5NS812P3K1Z`},\"salesforce\":{\"version\":`1.0.0`,\"id\":`intver_01KN5FRKT6KRAB6RM9T34J70M2`},\"salesloft\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR27CFAGF2479ER2FSSDF7`},\"sap\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2BP4TDJTAGWN841KBC1S`},\"seismic\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2G7J0GAC6J69K8TN3429`},\"sendgrid\":{\"version\":`0.1.10`,\"id\":`intver_01KMZAR5KN275G2NPSSFZ9WTSE`},\"showpad\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2MD45546TPY7V2CPBAMD`},\"sisense\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2RSBXRYQ5YX9JNTP4A9C`},\"slack\":{\"version\":`5.0.2`,\"id\":`intver_01KQF3XKNH2W5EPAXK6G4CMW96`},\"smartsheet\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR2WXTE6FV2C2HP7V0WBTE`},\"splunk\":{\"version\":`0.0.4`,\"id\":`intver_01JBMK2Y874WV5BGHXYN07HKHE`},\"square\":{\"version\":`2.0.0`,\"id\":`intver_01JFARACGK6NT3YTKC5KVXVKX6`},\"stripe\":{\"version\":`0.5.6`,\"id\":`intver_01KMZARNC46Y0CJTQNR5AA8AKD`},\"sunco\":{\"version\":`2.0.1`,\"id\":`intver_01KMZARX5E90SJEDCQ6GKZ4ZBV`},\"surveymonkey\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3A2K8BEMP4XHQ7F5R47R`},\"tableau\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3E9K4XXVYFE7SSGT1C9E`},\"tally\":{\"version\":`0.1.2`,\"id\":`intver_01KMZAS4KR8F34JNE9VP1HJXT9`},\"teamleader\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3JKE5HAGV6TBCW7SV4QM`},\"teams\":{\"version\":`2.0.4`,\"id\":`intver_01KMZASBVV28FFKB2227618RRM`},\"teamviewer\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3PY3EBMYYBKQTZAHESXP`},\"telegram\":{\"version\":`1.0.7`,\"id\":`intver_01KQYYDZKSAHXH5DRK1ES6CKNS`},\"thryv\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3VQXXNJTR85472MM0RDY`},\"todoist\":{\"version\":`1.0.5`,\"id\":`intver_01KMZASWGQHERWV5WESYJR1W1R`},\"trello\":{\"version\":`2.1.3`,\"id\":`intver_01KMZAT7K4J1JWT5VCV838TFRN`},\"twilio\":{\"version\":`1.3.2`,\"id\":`intver_01KMZATFC2J1KF4J3T93HPFKGF`},\"vcita\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR3ZXVBWKYYJ53W7C4E4VB`},\"vercel\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR44YN7JA1Z86S8CACVG5C`},\"viber\":{\"version\":`1.0.5`,\"id\":`intver_01KMZATNKPMTPMYBQNZN6744N4`},\"vonage\":{\"version\":`1.0.4`,\"id\":`intver_01KMZATWVPMNCXAF3XB72FNHKS`},\"webchat\":{\"version\":`0.3.0`,\"id\":`intver_01JBVV0VQW8XN3Z5V9K8DB1M3B`},\"webflow\":{\"version\":`3.1.4`,\"id\":`intver_01KMZAV5CCPAJKR8S1M36266M8`},\"webhook\":{\"version\":`1.1.5`,\"id\":`intver_01KMZAVBMNBFJBA9SM7ATDS5R8`},\"wechat\":{\"version\":`0.1.1`,\"id\":`intver_01KMZAVJTKWA8CQ8A7KFRDYR5X`},\"whatsapp\":{\"version\":`4.15.0`,\"id\":`intver_01KRC1AEDCE4P5HTZP5G41495H`},\"workable\":{\"version\":`0.1.2`,\"id\":`intver_01KMZAWAMH776SVXW1R98ABBHP`},\"workday\":{\"version\":`2.0.0`,\"id\":`intver_01JFARBCCKWG9BS7DT2RBW9D7B`},\"wrike\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR4H5WXG78YBE7MEG967MW`},\"zapier\":{\"version\":`0.3.10`,\"id\":`intver_01KMZAWN77ZX053EB5VJH7C9B9`},\"zendesk\":{\"version\":`3.0.6`,\"id\":`intver_01KFGPZM7JH7PMSEBRSSM5C4H8`},\"zendesk-messaging-hitl\":{\"version\":`1.1.0`,\"id\":`intver_01KPRHTAYTB64Z5QEDC1XZCSYH`},\"zendesk-sell\":{\"version\":`2.0.0`,\"id\":`intver_01JFAR4NP3JGG1BPV4MFJ2HBC3`},\"zoho\":{\"version\":`3.1.4`,\"id\":`intver_01KMZAX48A0JA4Q0CD3B7REDT0`},\"zoom\":{\"version\":`0.1.0`,\"id\":`intver_01KNSQZR3F06SRHJY3BCN20JH9`}};function _createMdxContent(props){const _components={a:`a`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Check,CodeBlock,Expandable,Heading,Info,Note,ResponseField,Step,Steps,Tab,Table,Tabs,Tip,Warning,_MdxComponentBoundary}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Check)_missingMdxReference(`Check`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[`\n`,_jsx(_MdxComponentBoundary,{name:`OpenInHub`,children:_jsx(OpenInHub,{integration:integrationVersions.googlecalendar})}),`\n`,_jsx(_components.p,{children:`The official Google Calendar integration allows your bot to access your Google Calendar data and manage events.`}),`\n`,_jsx(Heading,{level:`2`,id:`setup`,children:`Setup`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Basic configuration`,id:`basic-configuration`,children:[_jsxs(Info,{children:[_jsx(_components.p,{children:`You will need:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.a,{href:`/get-started/quick-start`,children:`published bot`})]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.a,{href:`https://www.google.com/url?sa=t\u0026source=web\u0026rct=j\u0026opi=89978449\u0026url=https://accounts.google.ca/\u0026ved=2ahUKEwjT06jO35CSAxWy5MkDHcRzEJIQFnoECAwQAQ\u0026usg=AOvVaw2kpHPlQsXrFmVVEu4DOt-N`,children:`Google account`})]}),`\n`]})]}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`In Botpress Studio, select `,_jsx(_components.strong,{children:`Explore Hub`}),` in the upper-right corner.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Search for the `,_jsx(_components.strong,{children:`Google Calendar`}),` integration, then select `,_jsx(_components.strong,{children:`Install Integration`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Configuration`}),` menu, select `,_jsx(_components.strong,{children:`Authorize Google Calendar`}),`.`]})}),_jsx(Step,{children:_jsx(_components.p,{children:`Follow the instructions to connect Botpress to your Google account.`})})]})]}),_jsxs(Tab,{title:`Manual configuration`,id:`manual-configuration`,\"data-child-heading-ids\":`[\"step-1%3A-create-a-google-cloud-project\",\"step-2%3A-enable-the-google-calendar-api\",\"step-3%3A-create-a-service-account\",\"step-4%3A-enable-domain-wide-delegation-google-workspace-only\",\"step-5%3A-configure-oauth-consent-screen-if-not-already-configured\",\"step-6%3A-create-oauth-client\",\"step-7%3A-configure-scopes\",\"step-8%3A-grant-calendar-access-to-the-service-account\",\"step-9%3A-configure-the-integration-in-botpress\"]`,children:[_jsx(_components.p,{children:`For more advanced use cases, you can manually configure the integration.`}),_jsxs(Info,{children:[_jsx(_components.p,{children:`You will need:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.a,{href:`/get-started/quick-start`,children:`published bot`})]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.a,{href:`https://accounts.google.com/signup`,children:`Google account`})]}),`\n`,_jsxs(_components.li,{children:[`Access to `,_jsx(_components.a,{href:`https://console.developers.google.com/`,children:`Google Cloud Console`})]}),`\n`]})]}),_jsx(Heading,{level:`3`,id:`step-1-create-a-google-cloud-project`,children:`Step 1: Create a Google Cloud project`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Go to the `,_jsx(_components.a,{href:`https://console.developers.google.com/`,children:`Google Cloud Console`}),` and sign in with your Google account.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Select a project`}),`, then select `,_jsx(_components.strong,{children:`New Project`}),`.`]})}),_jsxs(Step,{children:[_jsx(_components.p,{children:`Enter your project details:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Project name`}),`: Choose a descriptive name for your project.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Organization`}),`: Select your organization (if applicable).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Location`}),`: Choose the appropriate location.`]}),`\n`]})]}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Create`}),` and wait for the project to be created.`]})}),_jsx(Step,{children:_jsx(_components.p,{children:`Verify you’re in the correct project by checking the project name next to the Google logo.`})})]}),_jsx(Heading,{level:`3`,id:`step-2-enable-the-google-calendar-api`,children:`Step 2: Enable the Google Calendar API`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`In the Google Cloud Console, open the left sidebar and go to `,_jsx(_components.strong,{children:`API \u0026 Services > Credentials`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`+ Create Credentials > API Key`}),` to create an API key. Copy and store it somewhere.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Library`}),`, search for “Google Calendar API”, and select `,_jsx(_components.strong,{children:`Enable`}),`.`]})})]}),_jsx(Heading,{level:`3`,id:`step-3-create-a-service-account`,children:`Step 3: Create a service account`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Open the left sidebar again and go to `,_jsx(_components.strong,{children:`API \u0026 Services > Credentials`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`+ Create Credentials > Service Account`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Enter a `,_jsx(_components.strong,{children:`Service account name`}),`. The Service Account ID will be automatically generated.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`The remaining fields are optional. Select `,_jsx(_components.strong,{children:`Done`}),` to create the service account.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select your newly created service account, then go to the `,_jsx(_components.strong,{children:`Keys`}),` tab.`]})}),_jsxs(Step,{children:[_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Add Key > Create new key`}),`, choose `,_jsx(_components.strong,{children:`JSON`}),` as the key type, then select `,_jsx(_components.strong,{children:`Create`}),`.`]}),_jsx(_components.p,{children:`A JSON file will be downloaded to your machine. Keep this file secure—you’ll need it to configure the integration.`})]})]}),_jsxs(Note,{children:[_jsx(_components.p,{children:`The downloaded JSON file contains sensitive credentials. Store it securely and never share it publicly. The file structure looks like this:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes light-plus dark-plus`,style:{backgroundColor:`#FFFFFF`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#000000`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"service_account\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"project_id\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"your-project-id\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"private_key_id\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"private_key\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"client_email\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"your-service-account@your-project.iam.gserviceaccount.com\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"client_id\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"auth_uri\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"token_uri\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"auth_provider_x509_cert_url\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"client_x509_cert_url\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"...\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0451A5`,\"--shiki-dark\":`#9CDCFE`},children:` \"universe_domain\"`}),_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#A31515`,\"--shiki-dark\":`#CE9178`},children:`\"googleapis.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#000000`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),_jsx(Heading,{level:`3`,id:`step-4-enable-domain-wide-delegation-google-workspace-only`,children:`Step 4: Enable domain-wide delegation (Google Workspace only)`}),_jsxs(Warning,{children:[_jsxs(_components.p,{children:[`Domain-wide delegation is `,_jsx(_components.strong,{children:`required`}),` if you want your bot to:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Create Google Meet links for events`}),`\n`,_jsx(_components.li,{children:`Send invitations to attendees`}),`\n`,_jsx(_components.li,{children:`Act on behalf of users in your organization`}),`\n`]}),_jsx(_components.p,{children:`Without domain-wide delegation, the service account can only manage its own calendar and cannot invite attendees or create Meet links.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This feature is only available for Google Workspace accounts.`}),` Personal `,_jsx(_components.code,{children:`@gmail.com`}),` accounts do not support domain-wide delegation.`]})]}),_jsxs(_components.p,{children:[`Follow Google’s official guide to `,_jsx(_components.a,{href:`https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority`,children:`delegate domain-wide authority to your service account`}),`.`]}),_jsx(_components.p,{children:`When configuring the OAuth scopes in the Google Admin Console, paste in the following scopes (comma-separated):`}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes light-plus dark-plus`,style:{backgroundColor:`#FFFFFF`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#000000`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://www.googleapis.com/auth/calendar,https://www.googleapis.com/auth/calendar.events`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Heading,{level:`3`,id:`step-5-configure-oauth-consent-screen-if-not-already-configured`,children:`Step 5: Configure OAuth consent screen (if not already configured)`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Open the left sidebar again and go to `,_jsx(_components.strong,{children:`API \u0026 Services > OAuth consent screen`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Get started`}),`.`]})}),_jsxs(Step,{children:[_jsxs(_components.p,{children:[`Configure the OAuth consent screen. Under `,_jsx(_components.strong,{children:`App Information`}),`:`]}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`App name`}),`: Enter a name for your application.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User support email`}),`: Select your email address.`]}),`\n`]}),_jsxs(_components.p,{children:[`Then, select `,_jsx(_components.strong,{children:`Next`}),`.`]})]}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Audience`}),`, select `,_jsx(_components.strong,{children:`Internal`}),`. Then, select `,_jsx(_components.strong,{children:`Next`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Contact Information`}),`, enter a contact email address. Then, select `,_jsx(_components.strong,{children:`Next`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Agree to the Google API policy, then select `,_jsx(_components.strong,{children:`Create`}),`.`]})})]}),_jsx(Heading,{level:`3`,id:`step-6-create-oauth-client`,children:`Step 6: Create OAuth client`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Create OAuth client`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select an `,_jsx(_components.strong,{children:`Application type`}),` and enter a name. Then select `,_jsx(_components.strong,{children:`Create`}),`.`]})})]}),_jsx(Heading,{level:`3`,id:`step-7-configure-scopes`,children:`Step 7: Configure scopes`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Data Access`}),` in the left sidebar, then select `,_jsx(_components.strong,{children:`Add or remove scopes`}),`.`]})}),_jsxs(Step,{children:[_jsx(_components.p,{children:`Add the following scopes:`}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`https://www.googleapis.com/auth/calendar`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`https://www.googleapis.com/auth/calendar.events`})}),`\n`]})]}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Update`}),`.`]})})]}),_jsx(Heading,{level:`3`,id:`step-8-grant-calendar-access-to-the-service-account`,children:`Step 8: Grant calendar access to the service account`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.a,{href:`https://calendar.google.com`,children:`Google Calendar`}),` and select the settings icon in the upper-right corner. Then, select `,_jsx(_components.strong,{children:`Settings`}),`.`]})}),_jsx(Step,{children:_jsx(_components.p,{children:`In the left sidebar, select the calendar you want to share with your bot.`})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Shared with`}),` > `,_jsx(_components.strong,{children:`+ Add people and groups`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.code,{children:`client_email`}),` from your downloaded JSON file (for example, `,_jsx(_components.code,{children:`your-service-account@your-project.iam.gserviceaccount.com`}),`).`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Set the permission to `,_jsx(_components.strong,{children:`Make changes to events`}),` so the bot can manage calendar events.`]})})]}),_jsx(Heading,{level:`3`,id:`step-9-configure-the-integration-in-botpress`,children:`Step 9: Configure the integration in Botpress`}),_jsxs(Steps,{children:[_jsx(Step,{children:_jsxs(_components.p,{children:[`In Botpress Studio, select `,_jsx(_components.strong,{children:`Explore Hub`}),` in the upper-right corner.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`Search for the `,_jsx(_components.strong,{children:`Google Calendar`}),` integration, then select `,_jsx(_components.strong,{children:`Install Integration`}),`.`]})}),_jsx(Step,{children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Configuration`}),` menu, select the drop-down and choose `,_jsx(_components.strong,{children:`Configure manually`}),`.`]})})]}),_jsx(_components.p,{children:`Fill in the integration’s configuration fields:`}),_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Calendar ID`,id:`calendar-id`,children:_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In Google Calendar, go to `,_jsx(_components.strong,{children:`Settings`}),` and select your calendar.`]}),`\n`,_jsxs(_components.li,{children:[`Scroll to `,_jsx(_components.strong,{children:`Integrate calendar`}),` to find your Calendar ID.`]}),`\n`,_jsxs(_components.li,{children:[`Copy the Calendar ID and paste it into the `,_jsx(_components.strong,{children:`Calendar ID`}),` field in Botpress.`]}),`\n`]})}),_jsx(Accordion,{title:`Client Email`,id:`client-email`,children:_jsxs(_components.p,{children:[`Open the JSON file you downloaded in `,_jsx(_components.a,{href:`#step-3-create-a-service-account`,children:`Step 3`}),` and copy the `,_jsx(_components.code,{children:`client_email`}),` value.`]})}),_jsx(Accordion,{title:`Private Key`,id:`private-key`,children:_jsxs(_components.p,{children:[`Open the JSON file you downloaded in `,_jsx(_components.a,{href:`#step-3-create-a-service-account`,children:`Step 3`}),` and copy the entire `,_jsx(_components.code,{children:`private_key`}),` value, including the `,_jsx(_components.code,{children:`-----BEGIN PRIVATE KEY-----`}),` and `,_jsx(_components.code,{children:`-----END PRIVATE KEY-----`}),` markers.`]})}),_jsxs(Accordion,{title:`Impersonate Email (Google Workspace only)`,id:`impersonate-email-google-workspace-only`,children:[_jsx(_components.p,{children:`Enter the email address of a user in your Google Workspace that the service account will impersonate.`}),_jsxs(_components.p,{children:[`This field is `,_jsx(_components.strong,{children:`required`}),` for:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Creating Google Meet links`}),`\n`,_jsx(_components.li,{children:`Sending attendee invitations`}),`\n`]}),_jsx(_components.p,{children:`The email must belong to an actual user in your Google Workspace domain. Without this field configured, Meet creation and attendee invitations will not work.`}),_jsx(Note,{children:_jsxs(_components.p,{children:[`This field only applies if you have configured `,_jsx(_components.a,{href:`#step-4-enable-domain-wide-delegation-google-workspace-only`,children:`domain-wide delegation`}),`. Personal @gmail.com accounts do not support impersonation.`]})})]})]}),_jsxs(_components.p,{children:[`When you’ve filled in all the fields, select `,_jsx(_components.strong,{children:`Save Configuration`}),`.`]}),_jsx(Check,{children:_jsx(_components.p,{children:`You’ve successfully configured the Google Calendar integration!`})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`limitations`,children:`Limitations`}),`\n`,_jsx(_components.p,{children:`Different Google account types have different capabilities when using this integration.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Feature`}),_jsx(_components.th,{style:{textAlign:`center`},children:`Google Workspace`}),_jsxs(_components.th,{style:{textAlign:`center`},children:[`Personal (`,_jsx(_components.code,{children:`@gmail.com`}),`)`]})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Create, read, update, delete events`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Yes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Create Google Meet links`}),_jsx(_components.td,{style:{textAlign:`center`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`center`},children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Invite attendees`}),_jsxs(_components.td,{style:{textAlign:`center`},children:[`Yes (`,_jsx(_components.a,{href:`#step-4%3A-enable-domain-wide-delegation-google-workspace-only`,children:`requires domain-wide delegation`}),`)`]}),_jsx(_components.td,{style:{textAlign:`center`},children:`No`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`cards`,children:`Cards`}),`\n`,`\n`,_jsxs(_components.p,{children:[`Here’s a reference for all `,_jsx(_components.a,{href:`/studio/concepts/cards/introduction`,children:`Cards`}),` available with the integration:`]}),`\n`,_jsx(Heading,{level:`3`,id:`check-availability`,children:`Check Availability`}),`\n`,_jsx(`span`,{children:`Checks calendar availability and returns free time slots for the specified date range.`}),`\n`,_jsx(ResponseField,{name:`input`,type:`object`,id:`param-input`,children:_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`timeMin`,type:`string`,required:true,id:`param-time-min`,children:_jsx(`span`,{children:`Start of the time range to check (ISO 8601 format, e.g., \"2025-11-05T09:00:00-04:00\").`})}),_jsx(ResponseField,{name:`timeMax`,type:`string`,required:true,id:`param-time-max`,children:_jsx(`span`,{children:`End of the time range to check (ISO 8601 format, e.g., \"2025-11-05T17:00:00-04:00\").`})}),_jsx(ResponseField,{name:`slotDurationMinutes`,type:`number`,default:45,id:`param-slot-duration-minutes`,children:_jsx(`span`,{children:`Duration of each time slot in minutes. Defaults to 45 minutes.`})}),_jsx(ResponseField,{name:`timezone`,type:`string`,default:`America/Toronto`,id:`param-timezone`,children:_jsx(`span`,{children:`Timezone for formatting output (e.g., \"America/Toronto\"). Defaults to America/Toronto.`})})]})}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output`,children:_jsxs(Expandable,{children:[_jsxs(ResponseField,{name:`freeSlots`,type:`array`,required:true,id:`param-free-slots`,children:[_jsx(`span`,{children:`Array of available time slots in ISO format.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`start`,type:`string`,required:true,id:`param-start`,children:_jsx(`span`,{children:`ISO 8601 formatted start time of the free slot.`})}),_jsx(ResponseField,{name:`end`,type:`string`,required:true,id:`param-end`,children:_jsx(`span`,{children:`ISO 8601 formatted end time of the free slot.`})})]})]}),_jsx(ResponseField,{name:`formattedFreeSlots`,type:`array`,required:true,id:`param-formatted-free-slots`,children:_jsx(`span`,{children:`Array of human-readable formatted free slots (e.g., \"9:00 AM – 9:45 AM\").`})}),_jsxs(ResponseField,{name:`busySlots`,type:`array`,required:true,id:`param-busy-slots`,children:[_jsx(`span`,{children:`Array of busy time slots in ISO format.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`start`,type:`string`,required:true,id:`param-start-1`,children:_jsx(`span`,{children:`ISO 8601 formatted start time of the busy slot.`})}),_jsx(ResponseField,{name:`end`,type:`string`,required:true,id:`param-end-1`,children:_jsx(`span`,{children:`ISO 8601 formatted end time of the busy slot.`})})]})]})]})}),`\n`,_jsx(Heading,{level:`3`,id:`create-event`,children:`Create Event`}),`\n`,_jsx(`span`,{children:`Creates a new event in the calendar.`}),`\n`,_jsxs(ResponseField,{name:`input`,type:`object`,id:`param-input-1`,children:[_jsx(`span`,{children:`The definition of the new event.`}),_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`summary`,type:`string`,required:true,id:`param-summary`,children:_jsx(`span`,{children:`Title of the event.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description`,children:_jsx(`span`,{children:`Description of the event. Can contain HTML. Optional.`})}),_jsx(ResponseField,{name:`location`,type:`string`,id:`param-location`,children:_jsx(`span`,{children:`Geographic location of the event as free-form text. Optional. (e.g., \"Meeting Room\").`})}),_jsx(ResponseField,{name:`startDateTime`,type:`string`,required:true,id:`param-start-date-time`,children:_jsx(`span`,{children:`The start date and time in RFC3339 format (e.g., \"2023-12-31T10:00:00.000Z\").`})}),_jsx(ResponseField,{name:`endDateTime`,type:`string`,required:true,id:`param-end-date-time`,children:_jsx(`span`,{children:`The end date and time in RFC3339 format (e.g., \"2023-12-31T12:00:00.000Z\").`})}),_jsx(ResponseField,{name:`colorId`,type:`string`,id:`param-color-id`,children:_jsx(`span`,{children:`The color ID of the event. Optional.`})}),_jsx(ResponseField,{name:`guestsCanInviteOthers`,type:`boolean`,default:true,id:`param-guests-can-invite-others`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can invite others to the event. Optional. The default is True.`})}),_jsx(ResponseField,{name:`guestsCanSeeOtherGuests`,type:`boolean`,default:true,id:`param-guests-can-see-other-guests`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.`})}),_jsx(ResponseField,{name:`recurrence`,type:`array`,id:`param-recurrence`,children:_jsx(`span`,{children:`List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. This field is omitted for single events or instances of recurring events.`})}),_jsxs(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status`,children:[_jsx(`span`,{children:`Status of the event. Optional. The default value is \"confirmed\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})]}),_jsxs(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility`,children:[_jsx(`span`,{children:`Visibility of the event. Optional. The default value is \"default\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})]}),_jsx(ResponseField,{name:`enableGoogleMeet`,type:`boolean`,default:false,id:`param-enable-google-meet`,children:_jsx(`span`,{children:`Whether to enable Google Meet for the event. Optional. The default value is false.`})}),_jsx(ResponseField,{name:`sendNotifications`,type:`boolean`,default:true,id:`param-send-notifications`,children:_jsx(`span`,{children:`Whether to send notifications to attendees. Optional. The default value is true.`})}),_jsxs(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees`,children:[_jsx(`span`,{children:`List of attendees for the event. Email invitations will be sent automatically.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`email`,type:`string (email)`,required:true,id:`param-email`,children:_jsx(`span`,{children:`The email address of the attendee.`})}),_jsx(ResponseField,{name:`displayName`,type:`string`,id:`param-display-name`,children:_jsx(`span`,{children:`The name of the attendee. Optional.`})}),_jsx(ResponseField,{name:`optional`,type:`boolean`,default:false,id:`param-optional`,children:_jsx(`span`,{children:`Whether this is an optional attendee. Optional. The default is False.`})})]})]})]})]}),`\n`,_jsxs(ResponseField,{name:`output`,type:`object`,id:`param-output-1`,children:[_jsx(`span`,{children:`The data of the new event.`}),_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(`span`,{children:`Opaque identifier of the event.`})}),_jsx(ResponseField,{name:`summary`,type:`string`,required:true,id:`param-summary-1`,children:_jsx(`span`,{children:`Title of the event.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-1`,children:_jsx(`span`,{children:`Description of the event. Can contain HTML. Optional.`})}),_jsx(ResponseField,{name:`location`,type:`string`,id:`param-location-1`,children:_jsx(`span`,{children:`Geographic location of the event as free-form text. Optional. (e.g., \"Meeting Room\").`})}),_jsx(ResponseField,{name:`startDateTime`,type:`string`,required:true,id:`param-start-date-time-1`,children:_jsx(`span`,{children:`The start date and time in RFC3339 format (e.g., \"2023-12-31T10:00:00.000Z\").`})}),_jsx(ResponseField,{name:`endDateTime`,type:`string`,required:true,id:`param-end-date-time-1`,children:_jsx(`span`,{children:`The end date and time in RFC3339 format (e.g., \"2023-12-31T12:00:00.000Z\").`})}),_jsx(ResponseField,{name:`colorId`,type:`string`,id:`param-color-id-1`,children:_jsx(`span`,{children:`The color ID of the event. Optional.`})}),_jsxs(ResponseField,{name:`eventType`,type:`enum\u003cstring>`,required:true,id:`param-event-type`,children:[_jsx(`span`,{children:`Specific type of the event. This cannot be modified after the event is created.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`birthday`}),`, `,_jsx(_components.code,{children:`focusTime`}),`, `,_jsx(_components.code,{children:`fromGmail`}),`, `,_jsx(_components.code,{children:`outOfOffice`}),`, `,_jsx(_components.code,{children:`workingLocation`})]})]}),_jsx(ResponseField,{name:`guestsCanInviteOthers`,type:`boolean`,default:true,id:`param-guests-can-invite-others-1`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can invite others to the event. Optional. The default is True.`})}),_jsx(ResponseField,{name:`guestsCanSeeOtherGuests`,type:`boolean`,default:true,id:`param-guests-can-see-other-guests-1`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.`})}),_jsx(ResponseField,{name:`htmlLink`,type:`string`,required:true,id:`param-html-link`,children:_jsx(`span`,{children:`URL of the event page in the Google Calendar Web UI.`})}),_jsx(ResponseField,{name:`recurrence`,type:`array`,id:`param-recurrence-1`,children:_jsx(`span`,{children:`List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. This field is omitted for single events or instances of recurring events.`})}),_jsxs(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-1`,children:[_jsx(`span`,{children:`Status of the event. Optional. The default value is \"confirmed\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})]}),_jsxs(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-1`,children:[_jsx(`span`,{children:`Visibility of the event. Optional. The default value is \"default\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})]}),_jsx(ResponseField,{name:`enableGoogleMeet`,type:`boolean`,default:false,id:`param-enable-google-meet-1`,children:_jsx(`span`,{children:`Whether to enable Google Meet for the event. Optional. The default value is false.`})}),_jsx(ResponseField,{name:`sendNotifications`,type:`boolean`,default:true,id:`param-send-notifications-1`,children:_jsx(`span`,{children:`Whether to send notifications to attendees. Optional. The default value is true.`})}),_jsxs(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-1`,children:[_jsx(`span`,{children:`List of attendees for the event. Email invitations will be sent automatically.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email-1`,children:_jsx(`span`,{children:`The email address of the attendee.`})}),_jsx(ResponseField,{name:`displayName`,type:`string`,id:`param-display-name-1`,children:_jsx(`span`,{children:`The name of the attendee. Optional.`})}),_jsx(ResponseField,{name:`optional`,type:`boolean`,default:false,id:`param-optional-1`,children:_jsx(`span`,{children:`Whether this is an optional attendee. Optional. The default is False.`})}),_jsxs(ResponseField,{name:`responseStatus`,type:`enum\u003cstring>`,id:`param-response-status`,children:[_jsx(`span`,{children:`The attendee's response status. Read-only when creating events.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`needsAction`}),`, `,_jsx(_components.code,{children:`declined`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`accepted`})]})]})]})]}),_jsx(ResponseField,{name:`conferenceLink`,type:`string`,id:`param-conference-link`,children:_jsx(`span`,{children:`The Google Meet link for the event. This is automatically generated when enableGoogleMeet is true.`})})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`delete-event`,children:`Delete Event`}),`\n`,_jsx(`span`,{children:`Deletes an event from the calendar.`}),`\n`,_jsx(ResponseField,{name:`input`,type:`object`,id:`param-input-2`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`eventId`,type:`string`,required:true,id:`param-event-id`,children:_jsx(`span`,{children:`The ID of the calendar event to delete.`})})})}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output-2`,children:_jsx(_components.p,{children:`This Card has no output.`})}),`\n`,_jsx(Heading,{level:`3`,id:`list-events`,children:`List Events`}),`\n`,_jsx(`span`,{children:`Retrieves events from the calendar.`}),`\n`,_jsx(ResponseField,{name:`input`,type:`object`,id:`param-input-3`,children:_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`count`,type:`number`,default:100,id:`param-count`,children:_jsx(`span`,{children:`The maximum number of events to return. Defaults to 100.`})}),_jsx(ResponseField,{name:`pageToken`,type:`string`,id:`param-page-token`,children:_jsx(`span`,{children:`Token specifying which result page to return.`})}),_jsx(ResponseField,{name:`timeMin`,type:`string`,id:`param-time-min-1`,children:_jsx(`span`,{children:`Only return events occurring on or after this date. Must be in RFC3339 format. Defaults to now if not specified.`})})]})}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output-3`,children:_jsxs(Expandable,{children:[_jsxs(ResponseField,{name:`events`,type:`array`,required:true,id:`param-events`,children:[_jsx(`span`,{children:`The list of calendar events.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-1`,children:_jsx(`span`,{children:`Opaque identifier of the event.`})}),_jsx(ResponseField,{name:`summary`,type:`string`,required:true,id:`param-summary-2`,children:_jsx(`span`,{children:`Title of the event.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-2`,children:_jsx(`span`,{children:`Description of the event. Can contain HTML. Optional.`})}),_jsx(ResponseField,{name:`location`,type:`string`,id:`param-location-2`,children:_jsx(`span`,{children:`Geographic location of the event as free-form text. Optional. (e.g., \"Meeting Room\").`})}),_jsx(ResponseField,{name:`startDateTime`,type:`string`,required:true,id:`param-start-date-time-2`,children:_jsx(`span`,{children:`The start date and time in RFC3339 format (e.g., \"2023-12-31T10:00:00.000Z\").`})}),_jsx(ResponseField,{name:`endDateTime`,type:`string`,required:true,id:`param-end-date-time-2`,children:_jsx(`span`,{children:`The end date and time in RFC3339 format (e.g., \"2023-12-31T12:00:00.000Z\").`})}),_jsx(ResponseField,{name:`colorId`,type:`string`,id:`param-color-id-2`,children:_jsx(`span`,{children:`The color ID of the event. Optional.`})}),_jsxs(ResponseField,{name:`eventType`,type:`enum\u003cstring>`,required:true,id:`param-event-type-1`,children:[_jsx(`span`,{children:`Specific type of the event. This cannot be modified after the event is created.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`birthday`}),`, `,_jsx(_components.code,{children:`focusTime`}),`, `,_jsx(_components.code,{children:`fromGmail`}),`, `,_jsx(_components.code,{children:`outOfOffice`}),`, `,_jsx(_components.code,{children:`workingLocation`})]})]}),_jsx(ResponseField,{name:`guestsCanInviteOthers`,type:`boolean`,default:true,id:`param-guests-can-invite-others-2`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can invite others to the event. Optional. The default is True.`})}),_jsx(ResponseField,{name:`guestsCanSeeOtherGuests`,type:`boolean`,default:true,id:`param-guests-can-see-other-guests-2`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.`})}),_jsx(ResponseField,{name:`htmlLink`,type:`string`,required:true,id:`param-html-link-1`,children:_jsx(`span`,{children:`URL of the event page in the Google Calendar Web UI.`})}),_jsx(ResponseField,{name:`recurrence`,type:`array`,id:`param-recurrence-2`,children:_jsx(`span`,{children:`List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. This field is omitted for single events or instances of recurring events.`})}),_jsxs(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-2`,children:[_jsx(`span`,{children:`Status of the event. Optional. The default value is \"confirmed\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})]}),_jsxs(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-2`,children:[_jsx(`span`,{children:`Visibility of the event. Optional. The default value is \"default\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})]}),_jsx(ResponseField,{name:`enableGoogleMeet`,type:`boolean`,default:false,id:`param-enable-google-meet-2`,children:_jsx(`span`,{children:`Whether to enable Google Meet for the event. Optional. The default value is false.`})}),_jsx(ResponseField,{name:`sendNotifications`,type:`boolean`,default:true,id:`param-send-notifications-2`,children:_jsx(`span`,{children:`Whether to send notifications to attendees. Optional. The default value is true.`})}),_jsxs(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-2`,children:[_jsx(`span`,{children:`List of attendees for the event. Email invitations will be sent automatically.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email-2`,children:_jsx(`span`,{children:`The email address of the attendee.`})}),_jsx(ResponseField,{name:`displayName`,type:`string`,id:`param-display-name-2`,children:_jsx(`span`,{children:`The name of the attendee. Optional.`})}),_jsx(ResponseField,{name:`optional`,type:`boolean`,default:false,id:`param-optional-2`,children:_jsx(`span`,{children:`Whether this is an optional attendee. Optional. The default is False.`})}),_jsxs(ResponseField,{name:`responseStatus`,type:`enum\u003cstring>`,id:`param-response-status-1`,children:[_jsx(`span`,{children:`The attendee's response status. Read-only when creating events.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`needsAction`}),`, `,_jsx(_components.code,{children:`declined`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`accepted`})]})]})]})]}),_jsx(ResponseField,{name:`conferenceLink`,type:`string`,id:`param-conference-link-1`,children:_jsx(`span`,{children:`The Google Meet link for the event. This is automatically generated when enableGoogleMeet is true.`})})]})]}),_jsx(ResponseField,{name:`nextPageToken`,type:`string`,id:`param-next-page-token`,children:_jsx(`span`,{children:`Token used to access the next page of this result. Omitted if no further results are available.`})})]})}),`\n`,_jsx(Heading,{level:`3`,id:`update-event`,children:`Update Event`}),`\n`,_jsx(`span`,{children:`Updates an existing event in the calendar. Omitted properties are left unchanged.`}),`\n`,_jsx(ResponseField,{name:`input`,type:`object`,id:`param-input-4`,children:_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-2`,children:_jsx(`span`,{children:`The ID of the calendar event to update.`})}),_jsx(ResponseField,{name:`summary`,type:`string`,required:true,id:`param-summary-3`,children:_jsx(`span`,{children:`Title of the event.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-3`,children:_jsx(`span`,{children:`Description of the event. Can contain HTML. Optional.`})}),_jsx(ResponseField,{name:`location`,type:`string`,id:`param-location-3`,children:_jsx(`span`,{children:`Geographic location of the event as free-form text. Optional. (e.g., \"Meeting Room\").`})}),_jsx(ResponseField,{name:`startDateTime`,type:`string`,required:true,id:`param-start-date-time-3`,children:_jsx(`span`,{children:`The start date and time in RFC3339 format (e.g., \"2023-12-31T10:00:00.000Z\").`})}),_jsx(ResponseField,{name:`endDateTime`,type:`string`,required:true,id:`param-end-date-time-3`,children:_jsx(`span`,{children:`The end date and time in RFC3339 format (e.g., \"2023-12-31T12:00:00.000Z\").`})}),_jsx(ResponseField,{name:`colorId`,type:`string`,id:`param-color-id-3`,children:_jsx(`span`,{children:`The color ID of the event. Optional.`})}),_jsx(ResponseField,{name:`guestsCanInviteOthers`,type:`boolean`,default:true,id:`param-guests-can-invite-others-3`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can invite others to the event. Optional. The default is True.`})}),_jsx(ResponseField,{name:`guestsCanSeeOtherGuests`,type:`boolean`,default:true,id:`param-guests-can-see-other-guests-3`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.`})}),_jsx(ResponseField,{name:`recurrence`,type:`array`,id:`param-recurrence-3`,children:_jsx(`span`,{children:`List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. This field is omitted for single events or instances of recurring events.`})}),_jsxs(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-3`,children:[_jsx(`span`,{children:`Status of the event. Optional. The default value is \"confirmed\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})]}),_jsxs(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-3`,children:[_jsx(`span`,{children:`Visibility of the event. Optional. The default value is \"default\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})]}),_jsx(ResponseField,{name:`enableGoogleMeet`,type:`boolean`,default:false,id:`param-enable-google-meet-3`,children:_jsx(`span`,{children:`Whether to enable Google Meet for the event. Optional. The default value is false.`})}),_jsx(ResponseField,{name:`sendNotifications`,type:`boolean`,default:true,id:`param-send-notifications-3`,children:_jsx(`span`,{children:`Whether to send notifications to attendees. Optional. The default value is true.`})}),_jsxs(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-3`,children:[_jsx(`span`,{children:`List of attendees for the event.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`email`,type:`string (email)`,required:true,id:`param-email-3`,children:_jsx(`span`,{children:`The email address of the attendee.`})}),_jsx(ResponseField,{name:`displayName`,type:`string`,id:`param-display-name-3`,children:_jsx(`span`,{children:`The name of the attendee. Optional.`})}),_jsx(ResponseField,{name:`optional`,type:`boolean`,default:false,id:`param-optional-3`,children:_jsx(`span`,{children:`Whether this is an optional attendee. Optional. The default is False.`})})]})]})]})}),`\n`,_jsxs(ResponseField,{name:`output`,type:`object`,id:`param-output-4`,children:[_jsx(`span`,{children:`The data of the event.`}),_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-3`,children:_jsx(`span`,{children:`Opaque identifier of the event.`})}),_jsx(ResponseField,{name:`summary`,type:`string`,required:true,id:`param-summary-4`,children:_jsx(`span`,{children:`Title of the event.`})}),_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-4`,children:_jsx(`span`,{children:`Description of the event. Can contain HTML. Optional.`})}),_jsx(ResponseField,{name:`location`,type:`string`,id:`param-location-4`,children:_jsx(`span`,{children:`Geographic location of the event as free-form text. Optional. (e.g., \"Meeting Room\").`})}),_jsx(ResponseField,{name:`startDateTime`,type:`string`,required:true,id:`param-start-date-time-4`,children:_jsx(`span`,{children:`The start date and time in RFC3339 format (e.g., \"2023-12-31T10:00:00.000Z\").`})}),_jsx(ResponseField,{name:`endDateTime`,type:`string`,required:true,id:`param-end-date-time-4`,children:_jsx(`span`,{children:`The end date and time in RFC3339 format (e.g., \"2023-12-31T12:00:00.000Z\").`})}),_jsx(ResponseField,{name:`colorId`,type:`string`,id:`param-color-id-4`,children:_jsx(`span`,{children:`The color ID of the event. Optional.`})}),_jsxs(ResponseField,{name:`eventType`,type:`enum\u003cstring>`,required:true,id:`param-event-type-2`,children:[_jsx(`span`,{children:`Specific type of the event. This cannot be modified after the event is created.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`birthday`}),`, `,_jsx(_components.code,{children:`focusTime`}),`, `,_jsx(_components.code,{children:`fromGmail`}),`, `,_jsx(_components.code,{children:`outOfOffice`}),`, `,_jsx(_components.code,{children:`workingLocation`})]})]}),_jsx(ResponseField,{name:`guestsCanInviteOthers`,type:`boolean`,default:true,id:`param-guests-can-invite-others-4`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can invite others to the event. Optional. The default is True.`})}),_jsx(ResponseField,{name:`guestsCanSeeOtherGuests`,type:`boolean`,default:true,id:`param-guests-can-see-other-guests-4`,children:_jsx(`span`,{children:`Whether attendees other than the organizer can see who the event's attendees are. Optional. The default is True.`})}),_jsx(ResponseField,{name:`htmlLink`,type:`string`,required:true,id:`param-html-link-2`,children:_jsx(`span`,{children:`URL of the event page in the Google Calendar Web UI.`})}),_jsx(ResponseField,{name:`recurrence`,type:`array`,id:`param-recurrence-4`,children:_jsx(`span`,{children:`List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. This field is omitted for single events or instances of recurring events.`})}),_jsxs(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-4`,children:[_jsx(`span`,{children:`Status of the event. Optional. The default value is \"confirmed\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})]}),_jsxs(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-4`,children:[_jsx(`span`,{children:`Visibility of the event. Optional. The default value is \"default\".`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})]}),_jsx(ResponseField,{name:`enableGoogleMeet`,type:`boolean`,default:false,id:`param-enable-google-meet-4`,children:_jsx(`span`,{children:`Whether to enable Google Meet for the event. Optional. The default value is false.`})}),_jsx(ResponseField,{name:`sendNotifications`,type:`boolean`,default:true,id:`param-send-notifications-4`,children:_jsx(`span`,{children:`Whether to send notifications to attendees. Optional. The default value is true.`})}),_jsxs(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-4`,children:[_jsx(`span`,{children:`List of attendees for the event. Email invitations will be sent automatically.`}),_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`email`,type:`string`,required:true,id:`param-email-4`,children:_jsx(`span`,{children:`The email address of the attendee.`})}),_jsx(ResponseField,{name:`displayName`,type:`string`,id:`param-display-name-4`,children:_jsx(`span`,{children:`The name of the attendee. Optional.`})}),_jsx(ResponseField,{name:`optional`,type:`boolean`,default:false,id:`param-optional-4`,children:_jsx(`span`,{children:`Whether this is an optional attendee. Optional. The default is False.`})}),_jsxs(ResponseField,{name:`responseStatus`,type:`enum\u003cstring>`,id:`param-response-status-2`,children:[_jsx(`span`,{children:`The attendee's response status. Read-only when creating events.`}),_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`needsAction`}),`, `,_jsx(_components.code,{children:`declined`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`accepted`})]})]})]})]}),_jsx(ResponseField,{name:`conferenceLink`,type:`string`,id:`param-conference-link-2`,children:_jsx(`span`,{children:`The Google Meet link for the event. This is automatically generated when enableGoogleMeet is true.`})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`triggers`,children:`Triggers`}),`\n`,`\n`,_jsxs(_components.p,{children:[`Here’s a reference for all `,_jsx(_components.a,{href:`/studio/concepts/triggers/`,children:`Triggers`}),` available with the integration:`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can access data returned from any of these Triggers by reading `,_jsx(_components.code,{children:`event.payload`}),` after the Trigger fires.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`event-created`,children:`Event Created`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`item`,type:`string`,required:true,id:`param-item`})})}),`\n`,_jsx(Heading,{level:`3`,id:`event-deleted`,children:`Event Deleted`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload-1`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id-4`})})}),`\n`,_jsx(Heading,{level:`3`,id:`event-updated`,children:`Event Updated`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload-2`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`item`,type:`string`,required:true,id:`param-item-1`})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{OpenInHub,integrationVersions,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"light-plus","dark":"dark-plus"}},"config":{},"pageMetadata":{"title":"Google Calendar","description":"Add a bot to Google Calendar using the official integration.","icon":"/integrations/integration-guides/assets/icons/googlecalendar.svg","href":"/integrations/integration-guides/googlecalendar"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[145,15206,")=>null;const integrationVersions=undefined;function _create"],[16549,16595,""],[39727,42222,""],[42294,42362,""],[42419,52856,""],[52921,56561,""],[56625,56739,"`,children:_jsxs(_co"],[56933,56955,"}),_jsx(ResponseFiel"],[57034,57150,"`,children:_jsxs(_co"],[57391,63851,"})]})}),`\n`,_jsx(Res"],[63907,63979,"`,children:_jsxs(Exp"],[64024,65238,""],[65303,65432,"`,children:_jsxs(_co"],[65784,66791,"}),_jsx(ResponseFiel"],[66865,66977,"1`,children:_jsxs(_c"],[67172,67194,"}),_jsx(ResponseFiel"],[67274,67388,"1`,children:_jsxs(_c"],[67630,68100,"}),_jsx(ResponseFiel"],[68152,68281,"`,children:_jsx(Expa"],[68328,68848,"_jsx(ResponseField,{"],[68915,69028,"`,children:_jsxs(_co"],[69273,70151,"})})})]})}),`\n`,_jsx(Heading,{level:`3`,id:`delete-event`,children:`Delete Event`}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output-1`,children:_jsx(_components.p,{children:`This Card has no output.`})}),`\n`,_jsx(Heading,{level:`3`,id:`list-events`,children:`List Events`}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output-2`,children:_jsx"],[70199,71242,"events`,type:`array`,required:true,id:`param-events`,children:_jsxs(Expandable,{title:`array item properties`,children:[_jsx(ResponseField,{name:`eventType`,type:`enum\u003cstring>`,required:true,id:`param-event-type-1`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`birthday`}),`, `,_jsx(_components.code,{children:`focusTime`}),`, `,_jsx(_components.code,{children:`fromGmail`}),`, `,_jsx(_components.code,{children:`outOfOffice`}),`, `,_jsx(_components.code,{children:`workingLocation`})]})}),_jsx(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-2`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})}),_jsx(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-2`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})}),_jsx(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-1`,children:_jsx(Expandable,{title:`array item properties`,children:_jsx(ResponseField,{name:`responseStatus`,type:`enum\u003cstring>`,id:`param-response-status-1`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`needsAction`}),`, `,_jsx(_components.code,{children:`declined`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`accepted`})]})})})})]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`update-event`,children:`Update Event`}),`\n`,_jsx(ResponseField,{name:`input`,type:`object`,id:`param-input-1`,children:_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-3`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})}),_jsx(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-3`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})})]})}),`\n`,_jsx(ResponseField,{name:`output`,type:`object`,id:`param-output-3`,children:_jsxs(Expandable,{children:[_jsx(ResponseField,{name:`eventType`,type:`enum\u003cstring>`,required:true,id:`param-event-type-2`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`birthday`}),`, `,_jsx(_components.code,{children:`focusTime`}),`, `,_jsx(_components.code,{children:`fromGmail`}),`, `,_jsx(_components.code,{children:`outOfOffice`}),`, `,_jsx(_components.code,{children:`workingLocation`})]})}),_jsx(ResponseField,{name:`status`,type:`enum\u003cstring>`,default:`confirmed`,id:`param-status-4`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`confirmed`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`cancelled`})]})}),_jsx(ResponseField,{name:`visibility`,type:`enum\u003cstring>`,default:`default`,id:`param-visibility-4`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`default`}),`, `,_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`private`}),`, `,_jsx(_components.code,{children:`confidential`})]})}),_jsx(ResponseField,{name:`attendees`,type:`array`,id:`param-attendees-2`,children:_jsx(Expandable,{title:`array item properties`,children:_jsx(ResponseField,{name:`responseStatus`,type:`enum\u003cstring>`,id:`param-response-status-2`,children:_jsxs(_components.p,{children:[`Available options: `,_jsx(_components.code,{children:`needsAction`}),`, `,_jsx(_components.code,{children:`declined`}),`, `,_jsx(_components.code,{children:`tentative`}),`, `,_jsx(_components.code,{children:`accepted`})]})})})})]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`triggers`,children:`Triggers`}),`\n`,`\n`,_jsxs(_components.p,{children:[`Here’s a reference for all `,_jsx(_components.a,{href:`/studio/concepts/triggers/`,children:`Triggers`}),` available with the integration:`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`You can access data returned from any of these Triggers by reading `,_jsx(_components.code,{children:`event.payload`}),` after the Trigger fires.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`event-created`,children:`Event Created`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`item`,type:`string`,required:true,id:`param-item`})})}),`\n`,_jsx(Heading,{level:`3`,id:`event-deleted`,children:`Event Deleted`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload-1`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id`})})}),`\n`,_jsx(Heading,{level:`3`,id:`event-updated`,children:`Event Updated`}),`\n`,_jsx(ResponseField,{name:`payload`,type:`object`,id:`param-payload-2`,children:_jsx(Expandable,{children:_jsx(ResponseField,{name:`item`,type:`string`,required:true,id:`param-item-1`})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{OpenInHub,integrationVersions,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Setup","slug":"setup","depth":2,"children":[{"title":"Step 1: Create a Google Cloud project","slug":"step-1-create-a-google-cloud-project","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 2: Enable the Google Calendar API","slug":"step-2-enable-the-google-calendar-api","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 3: Create a service account","slug":"step-3-create-a-service-account","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 4: Enable domain-wide delegation (Google Workspace only)","slug":"step-4-enable-domain-wide-delegation-google-workspace-only","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 5: Configure OAuth consent screen (if not already configured)","slug":"step-5-configure-oauth-consent-screen-if-not-already-configured","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 6: Create OAuth client","slug":"step-6-create-oauth-client","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 7: Configure scopes","slug":"step-7-configure-scopes","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 8: Grant calendar access to the service account","slug":"step-8-grant-calendar-access-to-the-service-account","depth":3,"children":[],"tabId":"manual-configuration"},{"title":"Step 9: Configure the integration in Botpress","slug":"step-9-configure-the-integration-in-botpress","depth":3,"children":[],"tabId":"manual-configuration"}]},{"title":"Limitations","slug":"limitations","depth":2,"children":[]},{"title":"Cards","slug":"cards","depth":2,"children":[{"title":"Check Availability","slug":"check-availability","depth":3,"children":[]},{"title":"Create Event","slug":"create-event","depth":3,"children":[]},{"title":"Delete Event","slug":"delete-event","depth":3,"children":[]},{"title":"List Events","slug":"list-events","depth":3,"children":[]},{"title":"Update Event","slug":"update-event","depth":3,"children":[]}]},{"title":"Triggers","slug":"triggers","depth":2,"children":[{"title":"Event Created","slug":"event-created","depth":3,"children":[]},{"title":"Event Deleted","slug":"event-deleted","depth":3,"children":[]},{"title":"Event Updated","slug":"event-updated","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/botpress/23aca718097b723a/assistant.js"],"dynamicCss":".mint-rounded-xl {\n border-radius: 0.75rem\n}","subdomain":"botpress","siteName":"Botpress","title":"Google Calendar - Botpress","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-12T15:06:50.635Z","gitLastModified":"2026-01-19T20:53:31.000Z","originalFileLocation":"integrations/integration-guides/googlecalendar.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add a bot to Google Calendar using the official integration.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Botpress\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Google Calendar - Botpress\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add a bot to Google Calendar using the official integration.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Botpress\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://botpress.com/docs/integrations/integration-guides/googlecalendar\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://botpress.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=Google+Calendar\u0026amp;description=Add+a+bot+to+Google+Calendar+using+the+official+integration.\u0026amp;theme=63a1c5595f8ccc36d23d20dd\u0026amp;signature=90869271cf671f89b7c5549e3c5a875495630c4f24a41c60347392bb6f942970\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Google Calendar - Botpress\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add a bot to Google Calendar using the official integration.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://botpress.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=Google+Calendar\u0026amp;description=Add+a+bot+to+Google+Calendar+using+the+official+integration.\u0026amp;theme=63a1c5595f8ccc36d23d20dd\u0026amp;signature=90869271cf671f89b7c5549e3c5a875495630c4f24a41c60347392bb6f942970\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/botpress/3EHKtqGGIcjUKtI6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Botpress\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0090FF\">\u003cmeta data-mint-head name=\"og:logo\" content=\"/meta-assets/meta-logo.png\">\u003clink data-mint-head rel=\"canonical\" href=\"https://botpress.com/docs/integrations/integration-guides/googlecalendar\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/integrations/integration-guides/googlecalendar.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://botpress.com/#organization\",\"name\":\"Botpress\",\"url\":\"https://botpress.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/botpress/U-4GnVaxESbJOVgP/logo/light.svg?fit=max\u0026auto=format\u0026n=U-4GnVaxESbJOVgP\u0026q=85\u0026s=df22258e2155256a01174f5316ebc024\"}},{\"@type\":\"WebSite\",\"@id\":\"https://botpress.com/docs#website\",\"name\":\"Botpress\",\"url\":\"https://botpress.com/docs\",\"publisher\":{\"@id\":\"https://botpress.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar#webpage\",\"url\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar\",\"name\":\"Google Calendar\",\"description\":\"Add a bot to Google Calendar using the official integration.\",\"dateModified\":\"2026-01-19T20:53:31.000Z\",\"isPartOf\":{\"@id\":\"https://botpress.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integrations\",\"item\":\"https://botpress.com/docs/integrations/get-started/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guides\",\"item\":\"https://botpress.com/docs/integrations/integration-guides/plus-apify\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Google Calendar\",\"item\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar#article\",\"headline\":\"Google Calendar\",\"name\":\"Google Calendar\",\"description\":\"Add a bot to Google Calendar using the official integration.\",\"url\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar\",\"mainEntityOfPage\":{\"@id\":\"https://botpress.com/docs/integrations/integration-guides/googlecalendar#webpage\"},\"dateModified\":\"2026-01-19T20:53:31.000Z\",\"publisher\":{\"@id\":\"https://botpress.com/#organization\"},\"isPartOf\":{\"@id\":\"https://botpress.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Botpress\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Botpress","nav":{"global":{"anchors":[{"anchor":"Community Discord","icon":"discord","href":"https://discord.com/invite/botpress"},{"anchor":"News \u0026 Resources","icon":"newspaper","href":"https://botpress.com/blog"}]},"tabs":[{"tab":"Docs","pages":[{"group":"Get started","pages":[{"title":"Welcome to Botpress","mode":"frame","href":""},{"title":"Quickstart","href":"/get-started/quick-start"},{"group":"Manage your agent","pages":[{"title":"Preview","href":"/get-started/manage-your-agent/preview"},{"title":"Monitor performance","href":"/get-started/manage-your-agent/monitor"},{"title":"Add knowledge sources","href":"/get-started/manage-your-agent/knowledge"},{"title":"Inspect behaviour","href":"/get-started/manage-your-agent/inspect"},{"title":"Configure Human Handoff","tag":"Plus","href":"/get-started/manage-your-agent/human-handoff"},{"title":"Edit appearance","href":"/get-started/manage-your-agent/edit-appearance"},{"title":"Control access to your agent","sidebarTitle":"Control access","tag":"Team","href":"/get-started/manage-your-agent/control-access"}]},{"title":"Configure your workspace","href":"/get-started/configure-your-workspace"}]},{"group":"ADK","pages":[{"title":"Botpress ADK","sidebarTitle":"Get started","href":"/adk"}]},{"group":"Studio","pages":[{"title":"Introduction to Studio","sidebarTitle":"Introduction","href":"/studio/introduction"},{"title":"Tutorial","href":"/tutorial"},{"group":"Concepts","pages":[{"title":"Home","icon":"house","href":"/studio/concepts/home"},{"group":"Nodes","icon":"square-mouse-pointer","pages":[{"title":"Nodes","sidebarTitle":"Introduction","href":"/studio/concepts/nodes/introduction"},{"title":"Autonomous Node","href":"/studio/concepts/nodes/autonomous-node"}]},{"group":"Cards","icon":"rows-3","pages":[{"title":"Cards","sidebarTitle":"Overview","href":"/studio/concepts/cards/introduction"},{"title":"Send Messages","href":"/studio/concepts/cards/send-messages"},{"title":"Execute Code","href":"/studio/concepts/cards/execute-code"},{"title":"Tables","href":"/studio/concepts/cards/tables"},{"title":"Set inactivity timeout","href":"/studio/concepts/cards/set-inactivity-timeout"},{"title":"Webchat","href":"/studio/concepts/cards/webchat"},{"title":"Flow Logic","href":"/studio/concepts/cards/flow-logic"},{"group":"AI","pages":[{"title":"AI","sidebarTitle":"Introduction","href":"/studio/concepts/cards/ai/introduction"},{"title":"AI Task","href":"/studio/concepts/cards/ai/ai-task"},{"title":"AI Transition","href":"/studio/concepts/cards/ai/ai-transition"},{"title":"AI Generate Text","href":"/studio/concepts/cards/ai/ai-generate-text"}]},{"title":"Capture Information","href":"/studio/concepts/cards/capture-information"},{"title":"Fixed Schedule","href":"/studio/concepts/cards/fixed-schedule"},{"title":"Agents","href":"/studio/concepts/cards/agents"},{"title":"Utilities","href":"/studio/concepts/cards/utilities"}]},{"title":"Workflows","icon":"workflow","href":"/studio/concepts/workflows"},{"group":"Knowledge Bases","icon":"book-open","pages":[{"title":"Knowledge Bases","sidebarTitle":"Overview","href":"/studio/concepts/knowledge-base/introduction"},{"title":"Add sources to Knowledge Base","sidebarTitle":"Add sources","href":"/studio/concepts/knowledge-base/add-sources"},{"title":"Knowledge Base Best Practices","sidebarTitle":"Best practices","href":"/studio/concepts/knowledge-base/knowledge-base-best-practices"}]},{"title":"Tables","icon":"table","href":"/studio/concepts/tables"},{"title":"Actions","icon":"bolt","href":"/studio/concepts/actions"},{"group":"Agents","icon":"bot","pages":[{"title":"Agents","sidebarTitle":"Introduction","href":"/studio/concepts/agents/introduction"},{"title":"Summary Agent","href":"/studio/concepts/agents/summary-agent"},{"title":"Personality Agent","href":"/studio/concepts/agents/personality-agent"},{"title":"Policy Agent","href":"/studio/concepts/agents/policy-agent"},{"title":"Translator Agent","href":"/studio/concepts/agents/translator-agent"},{"title":"Knowledge Agent","href":"/studio/concepts/agents/knowledge-agent"},{"title":"HITL Agent","href":"/studio/concepts/agents/hitl-agent"},{"title":"Vision Agent","href":"/studio/concepts/agents/vision-agent"},{"title":"Analytics Agent","href":"/studio/concepts/agents/analytics-agent"}]},{"title":"Hooks","icon":"anchor","href":"/studio/concepts/hooks"},{"title":"Hub","icon":"boxes","href":"/studio/concepts/card-hub"},{"title":"Integrations","icon":"plug","href":"/studio/concepts/integrations"},{"title":"Schemas","icon":"circle-dashed","href":"/studio/concepts/schemas"},{"title":"Versions","icon":"history","href":"/studio/concepts/versions"},{"title":"Bot Settings","icon":"settings","href":"/studio/concepts/bot-settings"},{"title":"Find","icon":"search","href":"/studio/concepts/find"},{"group":"Variables","icon":"variable","pages":[{"title":"Variables","sidebarTitle":"Overview","href":"/studio/concepts/variables/overview"},{"group":"Scopes","pages":[{"title":"Workflow variables","href":"/studio/concepts/variables/scopes/workflow"},{"title":"User variables","href":"/studio/concepts/variables/scopes/user"},{"title":"Conversation variables","href":"/studio/concepts/variables/scopes/conversation"},{"title":"Bot variables","href":"/studio/concepts/variables/scopes/bot"},{"title":"Configuration variables","href":"/studio/concepts/variables/scopes/configuration"}]},{"title":"Built-in variables","href":"/studio/concepts/variables/built-in"},{"title":"Pass variables between Workflows","sidebarTitle":"Pass between Workflows","href":"/studio/concepts/variables/pass-between-workflows"},{"title":"Use variables in code","href":"/studio/concepts/variables/in-code"}]},{"title":"Triggers","icon":"play","href":"/studio/concepts/triggers"},{"title":"Debugger, Logs \u0026 JSON","icon":"logs","href":"/studio/concepts/debugger-logs-json"},{"title":"Emulator","icon":"messages-square","href":"/studio/concepts/emulator"},{"title":"Import \u0026 Export","icon":"folder-sync","href":"/studio/concepts/import-export-bots"},{"title":"Copy to bot","icon":"copy","href":"/studio/concepts/copy-to-bot"},{"group":"Controls and Settings","icon":"wrench","pages":[{"title":"Keyboard Shortcuts","href":"/studio/concepts/controls-and-settings/keyboard-shortcuts"},{"title":"Commands","href":"/studio/concepts/controls-and-settings/studio-commands"},{"title":"Studio Preferences","href":"/studio/concepts/controls-and-settings/studio-preferences"}]}]},{"group":"Guides","pages":[{"title":"Introduction","href":"/studio/guides/introduction"},{"group":"How-to","pages":[{"title":"Translate Webchat UI","href":"/studio/guides/how-to/translate"},{"title":"Send reminders to conversations","href":"/studio/guides/how-to/send-reminders"},{"title":"Use different LLM for Autonomous Nodes","href":"/studio/guides/how-to/different-an-models"},{"title":"Track AI spend in a table","href":"/studio/guides/how-to/track-ai-spend-in-table"},{"title":"Send options as a dropdown menu","href":"/studio/guides/how-to/dropdown-menus"}]},{"group":"Advanced","pages":[{"title":"Using code in Studio","href":"/studio/guides/advanced/use-code"},{"title":"Event Properties","href":"/studio/guides/advanced/event-properties"},{"title":"State Management","href":"/studio/guides/advanced/best-practices-for-state-management"},{"group":"Safety","pages":[{"title":"Safety","sidebarTitle":"Introduction","href":"/studio/guides/advanced/safety/introduction"},{"title":"Preventing Abuse","href":"/studio/guides/advanced/safety/preventing-abuse"},{"title":"Brand Safety Framework","href":"/studio/guides/advanced/safety/brand-safety-framework"}]},{"group":"Exporting Data","pages":[{"title":"Exporting Data","sidebarTitle":"Introduction","href":"/studio/guides/advanced/exporting-data/introduction"},{"title":"Raw Conversations","href":"/studio/guides/advanced/exporting-data/exporting-raw-conversations-with-the-botpress-api"},{"title":"Conversation History","href":"/studio/guides/advanced/exporting-data/getting-the-conversation-history-from-within-your-bot"},{"title":"Streaming Analytics","href":"/studio/guides/advanced/exporting-data/streaming-analytics-from-within-your-bot-with-hooks"},{"title":"Compiled Bot Analytics","href":"/studio/guides/advanced/exporting-data/exporting-compiled-bot-analytics-with-the-botpress-api"},{"title":"Accessing The Autonomous Nodes Thought Process","href":"/studio/guides/advanced/exporting-data/analyze-llmz-responses"}]},{"title":"Advanced Starter Template","href":"/studio/guides/advanced/kitchen-sink-advanced-starter-template"},{"title":"Tips to optimize AI Cost","href":"/studio/guides/advanced/tips-to-optimize-ai-cost"},{"title":"Retention Period","href":"/studio/guides/advanced/retention-period"},{"title":"Botpress v12 (and self-hosted versions)","sidebarTitle":"Botpress v12","href":"/studio/guides/advanced/v12"}]}]}]},{"group":"Integrations","pages":[{"title":"Introduction to integrations","sidebarTitle":"Introduction","href":"/integrations/get-started/introduction"},{"title":"Botpress Hub","sidebarTitle":"Hub","href":"/integrations/get-started/botpress-hub"},{"group":"Guides","pages":[{"title":"Apify (Advanced Website Crawler)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/apify.svg","href":"/integrations/integration-guides/plus-apify"},{"title":"Apollo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/apollo.jpeg","href":"/integrations/integration-guides/apollo"},{"title":"Attio","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/attio.png","href":"/integrations/integration-guides/attio"},{"title":"Asana","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/asana.svg","href":"/integrations/integration-guides/asana"},{"title":"BambooHR","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/bamboohr.svg","href":"/integrations/integration-guides/bamboohr"},{"title":"Canny","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/canny.svg","href":"/integrations/integration-guides/canny"},{"title":"Chat","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/chat.svg","href":"/integrations/integration-guides/chat"},{"title":"Chatwoot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/chatwoot.svg","href":"/integrations/integration-guides/chatwoot"},{"title":"Discord","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/discord.svg","href":"/integrations/integration-guides/discord"},{"title":"Email Notifier","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/email-notifier.svg","href":"/integrations/integration-guides/plus-email-notifier"},{"title":"GitHub","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/github.svg","href":"/integrations/integration-guides/github"},{"title":"Gmail","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/gmail.svg","href":"/integrations/integration-guides/gmail"},{"title":"Google Analytics","description":"Add a bot to Google Analytics using the official integration.","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/google-analytics.svg","href":"/integrations/integration-guides/plus-google-analytics"},{"title":"Google Calendar","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/googlecalendar.svg","href":"/integrations/integration-guides/googlecalendar"},{"title":"Google Sheets","description":"Add a bot to Google Sheets using the official integration.","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/gsheets.svg","href":"/integrations/integration-guides/gsheets"},{"group":"HITL","icon":"/integrations/integration-guides/assets/icons/hitl.svg","pages":[{"title":"Human-in-the-Loop (HITL)","sidebarTitle":"Setup","href":"/integrations/integration-guides/hitl/introduction"},{"title":"Measure HITL Response Time","sidebarTitle":"Measure HITL Response Time","href":"/integrations/integration-guides/hitl/time-to-first-agent-response"}]},{"title":"HubSpot","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/hubspot.svg","href":"/integrations/integration-guides/hubspot"},{"title":"Hunter","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/hunter.svg","href":"/integrations/integration-guides/hunter"},{"title":"Improvement","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/improvement.svg","href":"/integrations/integration-guides/improvement"},{"title":"Instagram","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/instagram.svg","href":"/integrations/integration-guides/instagram"},{"title":"Intercom","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/intercom.svg","href":"/integrations/integration-guides/intercom"},{"title":"Klaviyo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/klaviyo.png","href":"/integrations/integration-guides/klaviyo"},{"title":"Knowledge Base Optimizer","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/knowledge-base-optimization.svg","href":"/integrations/integration-guides/knowledge-base-optimization"},{"title":"Kommo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/kommo.svg","tag":"New","href":"/integrations/integration-guides/kommo"},{"title":"Line","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/line.svg","href":"/integrations/integration-guides/line"},{"title":"Linear","icon":"https://cdn.simpleicons.org/linear/5E6AD2","href":"/integrations/integration-guides/linear"},{"title":"LinkedIn","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/linkedin.svg","tag":"New","href":"/integrations/integration-guides/linkedin"},{"title":"Loops","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/loops.svg","href":"/integrations/integration-guides/loops"},{"title":"MailerLite","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/mailerlite.svg","href":"/integrations/integration-guides/mailerlite"},{"title":"Messenger and Facebook","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/messenger-and-facebook.svg","href":"/integrations/integration-guides/messenger"},{"title":"Mintlify","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/mintlify.png","href":"/integrations/integration-guides/mintlify"},{"title":"Persat","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/persat.png","href":"/integrations/integration-guides/plus-persat"},{"title":"Microsoft Teams","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/teams.svg","href":"/integrations/integration-guides/teams"},{"title":"Notion","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/notion.png","href":"/integrations/integration-guides/notion"},{"title":"Pipedrive","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/pipedrive.svg","href":"/integrations/integration-guides/pipedrive"},{"title":"Slack","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/slack.svg","href":"/integrations/integration-guides/slack"},{"group":"Sunshine Conversation","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/sunco.svg","pages":[{"title":"Sunshine Conversations","sidebarTitle":"Introduction","href":"/integrations/integration-guides/sunshine-conversations/introduction"},{"title":"Zendesk Messaging","href":"/integrations/integration-guides/sunshine-conversations/zendesk-messaging"}]},{"title":"Telegram","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/telegram.svg","href":"/integrations/integration-guides/telegram"},{"title":"Trello","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/trello.svg","href":"/integrations/integration-guides/trello"},{"title":"Twilio","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/twilio.svg","href":"/integrations/integration-guides/twilio"},{"title":"Viber","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/viber.svg","href":"/integrations/integration-guides/viber"},{"title":"Vonage","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/vonage.png","href":"/integrations/integration-guides/vonage"},{"title":"Webhook","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/webhook.svg","href":"/integrations/integration-guides/webhook"},{"title":"Workable","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/workable.svg","href":"/integrations/integration-guides/workable"},{"group":"WhatsApp","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/whatsapp.svg","pages":[{"title":"WhatsApp Setup","sidebarTitle":"Setup","href":"/integrations/integration-guides/whatsapp/introduction"},{"group":"Mapping","pages":[{"title":"Mapping from Botpress to WhatsApp","sidebarTitle":"Botpress to WhatsApp","href":"/integrations/integration-guides/whatsapp/mapping/botpress-to-whatsapp"},{"title":"Mapping from WhatsApp to Botpress","sidebarTitle":"WhatsApp to Botpress","href":"/integrations/integration-guides/whatsapp/mapping/whatsapp-to-botpress"}]},{"title":"Start a WhatsApp conversation proactively","sidebarTitle":"Start proactively","href":"/integrations/integration-guides/whatsapp/whatsapp-start-proactively"},{"title":"Start a conversation on WhatsApp through a webhook","sidebarTitle":"Start conversation through a webhook","href":"/integrations/integration-guides/whatsapp/start-conversation-through-webhook"}]},{"title":"Zapier","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/zapier.svg","href":"/integrations/integration-guides/zapier"},{"title":"Zendesk","icon":"https://mintlify.s3.us-west-1.amazonaws.com/botpress/integrations/integration-guides/assets/icons/zendesk.jpeg","href":"/integrations/integration-guides/zendesk"}]},{"group":"SDK","pages":[{"title":"Overview","href":"/integrations/sdk/overview"},{"title":"Installation","href":"/integrations/sdk/installation"},{"group":"Integrations","pages":[{"title":"Get started","href":"/integrations/sdk/integration/getting-started"},{"title":"Integration for Messaging Channels","sidebarTitle":"Messaging","href":"/integrations/sdk/integration/messaging"},{"title":"Integrations Concepts","sidebarTitle":"Concepts","href":"/integrations/sdk/integration/concepts"},{"title":"Publish your integration on Botpress Hub","sidebarTitle":"Publish on Botpress Hub","href":"/integrations/sdk/integration/publish-your-integration-on-botpress-hub"},{"title":"Enable OAuth","sidebarTitle":"Allow installing with OAuth","href":"/integrations/sdk/integration/enable-oauth"},{"title":"Use your own LLM","href":"/integrations/sdk/integration/use-your-own-llm"}]},{"group":"Interfaces","pages":[{"title":"Introduction to interfaces","sidebarTitle":"Introduction","href":"/integrations/sdk/interface/introduction"},{"title":"How to implement an interface in your integration","sidebarTitle":"How to implement interfaces","href":"/integrations/sdk/interface/how-tos/add-and-implement"},{"title":"Implementing Human in the loop (HITL) in an integration","sidebarTitle":"Implement HITL","href":"/integrations/sdk/interface/how-tos/implementing-hitl"},{"title":"Implementing unidirectional file synchronization in an integration","sidebarTitle":"Implement File Sync","href":"/integrations/sdk/interface/how-tos/implementing-file-sync"}]},{"title":"Bots-as-code","href":"/integrations/sdk/bots-as-code"},{"title":"CLI reference","href":"/integrations/sdk/cli-reference"}]}]},{"group":"Webchat","pages":[{"title":"Introduction to Webchat","sidebarTitle":"Introduction","href":"/webchat/get-started/introduction"},{"title":"Quickstart","href":"/webchat/get-started/quick-start"},{"title":"Embed Webchat in an element","sidebarTitle":"Embed in element","href":"/webchat/get-started/embed-in-element"},{"title":"Configure Webchat","href":"/webchat/get-started/configure-your-webchat"},{"group":"Interact with Webchat","pages":[{"title":"Open/close your Webchat","href":"/webchat/interact/open-close-webchat"},{"title":"Use custom toggle to open/close Webchat","sidebarTitle":"Use custom toggle","href":"/webchat/interact/use-custom-toggle"},{"title":"Display proactive bubble","href":"/webchat/interact/proactive-message-bubble"},{"title":"Automatically open Webchat on page load","href":"/webchat/interact/open-webchat-on-page-load"},{"title":"Send user data","href":"/webchat/interact/send-user-data"},{"title":"Listen to events","href":"/webchat/interact/listen-to-events"},{"title":"Trigger actions when conversation starts","sidebarTitle":"Trigger actions on start","href":"/webchat/interact/start-trigger"},{"title":"Display notification bubble","href":"/webchat/interact/webchat-notification"},{"title":"Send a message from user","href":"/webchat/interact/send-message"},{"group":"Send custom events","pages":[{"title":"Send custom events from Webchat to your website","sidebarTitle":"From Webchat to your website","href":"/webchat/interact/send-custom-events/from-webchat"},{"title":"Send custom events from your website to Webchat","sidebarTitle":"From your website to Webchat","href":"/webchat/interact/send-custom-events/to-webchat"}]},{"title":"Update Webchat configuration","href":"/webchat/interact/update-config"},{"title":"Error handling","href":"/webchat/interact/error-handling"},{"title":"Webchat methods reference","sidebarTitle":"Methods reference","href":"/webchat/interact/reference"}]},{"group":"Integrations","pages":[{"title":"WordPress","href":"/webchat/integrations/wordpress"},{"title":"Wix","href":"/webchat/integrations/wix"},{"title":"Webflow","href":"/webchat/integrations/webflow"},{"title":"React Native","href":"/webchat/integrations/react-native"}]},{"group":"React library","pages":[{"title":"Get started","sidebarTitle":"Get started","href":"/webchat/react-library/get-started"},{"group":"Components","pages":[{"title":"Webchat","href":"/webchat/react-library/components/webchat"},{"title":"Floating Action Button","sidebarTitle":"Fab","href":"/webchat/react-library/components/fab"},{"title":"Container","href":"/webchat/react-library/components/container"},{"title":"Header","href":"/webchat/react-library/components/header"},{"title":"MessageList","href":"/webchat/react-library/components/message-list"},{"title":"Composer","href":"/webchat/react-library/components/composer"},{"title":"StylesheetProvider","href":"/webchat/react-library/components/stylesheet-provider"}]},{"group":"Hooks","pages":[{"title":"useWebchat","href":"/webchat/react-library/hooks/use-webchat-client"}]}]}]},{"group":"Botpress Desk","pages":[{"title":"Introduction to Botpress Desk","sidebarTitle":"Introduction","href":"/desk/introduction"}]}]},{"tab":"ADK","pages":[{"title":"ADK","href":"/adk/introduction"}]},{"tab":"Botpress Desk","href":"https://desk.support.channel"},{"tab":"Tutorial","pages":[{"title":"Tutorial","href":"/tutorial/introduction"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"basePath":"","title":"Google Calendar - Botpress","buildId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","deploymentId":"dpl_ATnXPMW25DMPUr9VBw6kL6MfBt6T","dynamics":[],"chunks":[]}