# Google Calendar

* [Як створити обліковий запис сервісу](#how-to-create-a-service-account)
* [Як завантажити файл ключа](#how-to-download-the-key-file)
* [Як знайти ідентифікатор календаря](#how-to-find-the-calendar-id)
* [Як створити новий календар](#how-to-create-a-new-calendar)
* [Як отримати інформацію про календар](#how-to-get-the-information-about-the-calendar)
* [Як отримати список календарів облікового запису сервісу](#how-to-get-the-list-of-the-service-accounts-calendars)
* [Як працювати з подіями](#how-to-work-with-events)

## Як створити обліковий запис сервісу

Для цього вам потрібно створити власний обліковий запис у сервісах Google.

Перейдіть за [**цим посиланням**](https://console.developers.google.com/cloud-resource-manager) і створіть новий проєкт:

![](https://lh5.googleusercontent.com/NG1WV05Itj6EeCf1J9zBHYqC8ZbDqXGaHpdLex4KIfUL42orPsIcFxxFfPMzqR2kJ-GU4F3d0aoLZYcjSmSzwTtmujFcCMHdp6YGTU6RcYoo4xvquTEmTvXIt238pJ_ZZHLaZ1kjr9OSrbj_sQ)

Придумайте назву для проєкту:

![](https://lh6.googleusercontent.com/-DGrD4022xKo01cvjPWcoADnzpk5xsneUOQy_04I6hIUXiDRrJvQTw8ZPZVuhz5dTbZ3FgBsOHaP_IuBWS3UcsidNYWePfPk0SThtOGFFJ192mzgerDv_SGzmzCJTlZjC6e-97rHn_PXJL9JsA)

Натисніть «Створити» і трохи зачекайте, поки проєкт буде створено.

Оновіть сторінку, а потім натисніть на щойно створений проєкт. Перевірте в полі ліворуч свій статус доступу — там має бути «Власник (1)»:

![](https://lh6.googleusercontent.com/9muFuGGA7dUF3bHo-GZa-XB8NyzclfD5q8iGAigEwUH_2MvBoHgzqyuoeP4drSlh2Zx0ASELNDLq_GKhc4UcQVdVZ6PhIZDd4tGGcTB_3haklI729SkI-2HvIUByewnDBzbfUtkUPIJr0UzF_Q)

Тепер перейдіть до налаштувань облікового запису сервісу:

![](https://lh5.googleusercontent.com/Q45Aug6B6BY2jJkJJxCXLqh7YrFYmR9Zp1KeVQy0x14ZkznGbVrIXzA_awcNsw7Yc5Aa_SFQ2xK0gB3qeZMT1YPTR6VF6eQ6ssxweXhrvZSwhgOrUlsOh0YQPMxl3IXr6JdGfAHPeGUMDO5wdQ)

Там потрібно відкрити розділ «Service accounts» і натиснути « + Create Service Account»:

![](https://lh5.googleusercontent.com/9KCh-Y4hP2xAubjCTQ9wK3V5lwYDNSGhCRVtc7TzQl5xsfBBKQrUR8kHq2YCFafMGh9asbDOQL_JgYlHUediL17wf8X42hTFJWt3LQnOYi10jEZOvBvv5pYsDUKKqHtr-fkVfHQTNz7johCoaQ)

Введіть назву та електронну адресу облікового запису сервісу:

![](https://lh6.googleusercontent.com/Oo5EpjcAEAhisFjWhGxEk7zBuo3TqHuyfNXWL_BatusaULn-U8qE-38mnEToYoOJZk6o24JccBBVVAha0CU6ZFvEOu8H-rculhxerQnB9yI5vBmnpSm1EyBg4LtVCCwUDMI52mdz503Q9qxODg)

Потім виберіть роль Owner:

![](https://lh4.googleusercontent.com/V3ndP4Csp309f2aAvvzPNGad2NQQNZEOrMFSYw5bqFeqEVBt-SAJpr6SI48Yn8JQmYmu20wZ8HjTBNSWaVsunMGT40RE1WnzuJojbJ0Iwcbt8EYIXKt_131lfi_r-Iibu3oaPLTT5ltaHos6tQ)

Натисніть «Done», а потім «Manage keys» у вибраному проєкті. Далі натисніть «Create new key»

![](https://lh4.googleusercontent.com/mvdV7hP-TSK-Kvr0aHm76l8I4ddetWVXYskOKYa6La3Xp7rwUuw3tP553hBRUENFepzriZsX67C9ve5hKU7iR6lBz2jg6PVTf2DYSrI7JZGSBMaz8dhBp6Zpjx47d8hLjiGkfVDFOi7kG8nQ6g)

Виберіть тип ключа JSON і натисніть «Create»

![](https://lh5.googleusercontent.com/JxAPsYM4zEjFmFbuXDnqVZQmmgHiEqtl-jMO4vmQqu8WyHssEN3Upm43xzcZNkYXNRbln0MuqAZQq76xNi99Nqj73aqgwxfBUGaYKtIvU9or0ukkm-RpBz3qPqpt4SsAdrkuo5PiLIQ0YGuM_Q)

Після створення ключа він автоматично зберігається на вашому комп’ютері

![](https://lh4.googleusercontent.com/kyAdhhQobVvR9HcexWGzBlFckXTZ-L82kSbEkCakbMld65KmtrjsXl2SgwldU77XNNaLsrN3YMlLPOr2WpLCk-KomTdiOMCossSkRTYKdp1VflZad1rEzOiSGj-y-dFnNuTRc7kz4C7hnFPgug)

Потім вам потрібно завантажити його на хостинг або в Salebot і поділитися посиланням на нього в параметрах запиту, передавши отриману URL-адресу в параметрі creds\_path.

Тепер вам також потрібно додати наші API-інтеграції. Для цього перейдіть сюди:

![](https://lh3.googleusercontent.com/7DPiPASSAdgFU9O5I7laKm9aQkEtvrq2ADlFTMUeu95OSQw26TS8hhAmWNgvw4oXClgElmHKEVHw6y7YsGYPTL5MhB8WSk9EycEz2F2yCO_GM-AcIdPGujVCieUu7nE1cFEzf9WlmxPpF07o1w)

Потім потрібно увімкнути APIs and services і знайти Google Calendar API у відкритому вікні:

![](https://lh6.googleusercontent.com/gLQvQQjADGonjX1uL3kIVIte6chCYzjmDmob5flHdzpUIkBLKF5oenob2Att_5b6Tu4fHZNsk7-adfizosbqEwvGjHiWKB_tZKr5Y2L3b831PqEHVkt12ggpxS_3Csw9fdW--atRK2sAXNkV7Q)

Натисніть на результат пошуку, а потім на «Enable»:

![](https://lh5.googleusercontent.com/3LpS3U0TyFp3QORLenGiy0924zXuQGNhePDobY8Xz5asuf7sYXJAHNHsuMJXyugngMoVRu0r73YSxDkbWCbYLYgXFRucxvCrEruxFUmy9pKGr6Rl0CGp0QLSbUkNe9duyb6W2WSGqlym9BF95g)

Цей крок завершує створення вашого облікового запису сервісу.

## Як завантажити файл ключа

Перейдіть у проєкт на Salebot і завантажте отриманий файл ключа в блок, наприклад ось так:

![](https://lh6.googleusercontent.com/Ru3wFP-gmQjC-np0U4tUJoYHfKUx4bQEq3sR5QvbIefpZxgT8P9DjjdBsdzJejElBCnDURleohA7ekpEyB7-N2Ha7emTYNHY7-_R6pWzpPCblVHEs6lMiYhYWyRLxzk_QYPrsk9BQQ09MPxm1Q)

Натисніть «Зберегти» і перейдіть до вікна безкоштовного тестування:

![](https://lh3.googleusercontent.com/GWgWz8uGZmRyo7oUIt1Hh32y-aPypPIveRuPnbrVut6wbiPPwzzob8vc8slphEjjZMFH5uZwdKokVGMq72nipIs32u4kOal-4EHKkcePLX1JDdUWra1l4SEvhzx-c8_O4uhRXwtTg-q4JCrm2A)

Введіть фразу, яку ви встановили як умову (у цьому випадку це «123»). У відповідь ви отримаєте посилання на файл із ключами:

![](https://lh5.googleusercontent.com/Fdpb36HCVWJteTrSoID1LFotJsYNDsQrE_uyyYsvMe0Iy6NNR_djCaKS8Kf9O_XLtb8KMGQL9tHl7aOhHrANj4D7108Qx6bRPj8wN5HKMH5RXLavLkrNyeEwqzgi5OyzrXAYbamr6VuDhpmJvg)

{% hint style="danger" %}
Ви не можете видалити блок, інакше файл буде видалено з сервера, і вам доведеться додати його знову.
{% endhint %}

Не забудьте зробити блок типу Not state, щоб він вам не заважав.

![](https://lh4.googleusercontent.com/rfNCUwnEr-FN-CCEnzeDCxrB1eqnTbUUUnLOmQkipoVzHmsCf56AM0-UtAWZWe0EhWFVMX-s9vFXTMrl78XT2bcJijvYptrTSE2kvpXWJUB3vF8BvlnDX_gjndY_UPDzGYYvnCfeUe2td8A87g)

Ви можете зберегти це посилання у змінній або передати його в параметрі creds\_path як є.

## Як знайти ідентифікатор календаря

Ідентифікатор наявного календаря можна знайти в його налаштуваннях у розділі «Integrate calendar»:

![](https://lh6.googleusercontent.com/ssPqnz_cQlA8v2pCzXmcaOC0tagTVBDV4Vyd-9UqvQF4VjbXyroqkwkwO6IaXOv-x0vOP3bAem5aB_vsdg9kemyO-n6quLhGf88a_5B62n1iJAIOOXwDTkmRAAv1rPGlwLM0Yx-1iH-lKnFuzg)

## Як створити новий календар

Ви можете створити новий календар двома способами: вручну та за допомогою функції.

### Створення календаря вручну:

![](https://lh4.googleusercontent.com/P49fLaIHyOh-0-FcQWdFBN5UygV9a-Tq6_92Q3Sn0ln5u1Sb7LmIDz88tKfDiRv1nTb7cofbFoi9Q_mdNk-Ol0Qt01MAd5HwfxIM9_pcifEIAwhWy_9eskUYVG8E7a4IfsVBNlCo0C2j_t8MPw)

Щоб ви могли додавати нотатки та редагувати наявний календар (або створений вручну), потрібно надати доступ обліковому запису сервісу. Для цього просто додайте електронну адресу облікового запису сервісу в налаштуваннях потрібного календаря:

![](https://lh4.googleusercontent.com/hQLBvQk36xq20jXLPWzLdNXWoSEXHj2qMshjZxQTGKneJj4H-HUy2Ekz3WJ5y5aVbGyfmE6-YQm-TIAqNwze_kFGhncbrWHLpnljDYaSDz8EXJ-Za3OutS9rIdJVgxpuHZZdXrdmQlUZ5iUUtg)

### Створення календаря за допомогою функції

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

**Параметри**:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - create \
**name** - назва календаря \
**description** - опис календаря

**Додаткові параметри**:

**time\_zone** - часовий пояс календаря.  Ідентифікатор часового поясу IANA. За замовчуванням — Europe/Moscow (GMT+3) \
**location** - географічне розташування календаря як текст у довільній формі

Ви також можете надати доступ іншому обліковому запису, наприклад, своєму основному:

**owner\_email** - електронна адреса облікового запису, який додається як власник календаря

{% hint style="warning" %}
За замовчуванням календар буде створено в обліковому записі сервісу. Щоб мати можливість візуально редагувати календар зі свого облікового запису, передайте свою електронну адресу в параметрі owner\_email.
{% endhint %}

**Збережені значення** із JSON-відповіді

Після успішного виконання функція повертає такі параметри, які ви можете зберегти:

`{'kind': 'calendar#calendar', 'etag': '"WgASl9FY_5zrEmCZvrt4Qlh6tGQ"', 'id': '7e2q3mka5dmfmcohdltfupclj4@group.calendar.google.com', 'summary': 'Назва календаря’', 'timeZone': 'UTC'}`

Збережімо id створеного календаря: `id -> calendar_id`&#x20;

![](https://lh6.googleusercontent.com/64BZuVj1APwealP0nIEY5gb_9I4ZV9gLApOEIbRhYYzIGSg2wKza1OggKASRFBOnSDkghoINjH2SKnXAUxFrA-i02kmtz5BrSqV2n0OS_7_dbNvQuLBhh3PsrQ8Qc7_KhqOshVf3JhaV6O_m-w)

Для тестування ви можете вивести змінну #{custom\_answer}.

Якщо було передано email (owner\_email), то після успішного запиту потрібно перейти до своєї поштової скриньки та підтвердити додавання календаря до свого облікового запису:

![](https://lh6.googleusercontent.com/Vt4Z3gvrMcWZDcR1FIjQdcJCJu8KnP9p3AXtWfW0D6LAjSrsdjd05pwjgeEivQl6f3Su7KEgOVLp4-usk1GiLwijbNA8rYW1kimicScJLI6cxj1lP3ezShCEVxeI-3_JoO-fo6NSrbUQIehWgw)

![](https://lh6.googleusercontent.com/tPzJigwrYpHh3MD3c-zX2rP32sHT_VM1Y6l-uebqvb2XUntTkiXNlAWex79NzZZuw3FxjAJZRtrXah9N-cqLjonAX0LhXhuJ7cTIb-UdfmM0auYaXnOQTQYP9QTNouQHFY5fsHtviWvpSgZKIw)

## Як отримати інформацію про календар

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

**Параметри**:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - get\_calendar; \
**calendar\_id** - id вибраного календаря

**Збережені значення**

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

Посилання **приклад** відповіді функції:

`{'kind': 'calendar#calendar', 'etag': '"6KN4OTLeoqGGu7Nr5uNIQgCGYsU"', 'id': 'rcdd8mimc6gjtasan9ansn8354@group.calendar.google.com', 'summary': 'Назва календаря', 'timeZone': 'UTC'}`

## Як отримати список календарів облікового запису сервісу

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

**Параметри**:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - calendars\_list

**Збережені значення**

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

Посилання **приклад** відповіді функції:

`{` \
&#x20;  `'kind': 'calendar#calendarList',` \
&#x20;  `'etag': '"p32o8pm47rfqf20g"',`\
&#x20;  `'nextSyncToken': 'CLCM2Ifb9PECEi5nc2hlZXRzQGdzaGVldHMtMjU0NzEzLmlhbS5nc2VydmljZWFjY291bnQuY29t',` \
&#x20;  `'items': [` \
&#x20;    `{` \
&#x20;      `'kind': 'calendar#calendarListEntry',` \
&#x20;      `'etag': '"1625235372775000"',` \
&#x20;      `'id': '74u4aogu34hisgvi9v0pjriqho@group.calendar.google.com',` \
&#x20;      `'summary': 'AAAAAAAAaa',` \
&#x20;      `'timeZone': 'Asia/Singapore',` \
&#x20;      `'colorId': '17',` \
&#x20;      `'backgroundColor': '#9a9cff',` \
&#x20;      `'foregroundColor': '#000000',` \
&#x20;      `'selected': True,` \
&#x20;      `'accessRole': 'owner',` \
&#x20;      `'defaultReminders': [` \
&#x20;     `]` \
&#x20;  `},` \
&#x20;  `{` \
&#x20;    `'kind': 'calendar#calendarListEntry',` \
&#x20;    `'etag': '"1625235805096000"',` \
&#x20;    `'id': '5u9q24kdh571mnm667t2d3q16c@group.calendar.google.com',` \
&#x20;    `'summary': 'AAAAAAAAaa',` \
&#x20;    `'timeZone': 'Asia/Singapore',` \
&#x20;    `'colorId': '21',` \
&#x20;    `'backgroundColor': '#cca6ac',` \
&#x20;    `'foregroundColor': '#000000',` \
&#x20;    `'selected': True,` \
&#x20;    `'accessRole': 'owner',` \
&#x20;    `'defaultReminders': [`\
&#x20;    `]` \
&#x20;   `}` \
&#x20; `]` \
`}`

## Як працювати з подіями

### Швидке додавання події

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

**Параметри**:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - quick\_add\_event; \
**calendar\_id** - id вибраного календаря;\
**event\_name** - назва події

Посилання **приклад** параметрів:

`{"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "command": "quick_add_event","event_name": "Incredible Event"}`

**Збережені значення**

Після успішного виконання функція повертає такі параметри, які ви можете зберегти. Щоб мати змогу потім редагувати створену подію, рекомендується зберегти її id: id -> event\_id.

Посилання **приклад** відповіді функції:

`{`\
`'kind': 'calendar#event',` \
`'etag': '"3253879667088000"',` \
`'id': 'ljp7a3ocp8oorbov9u2cq221s0',` \
`'status': 'confirmed',` \
`'htmlLink': 'https://www.google.com/calendar/event?eid=bGpwN2Ezb2NwOG9vcmJvdjl1MmNxMjIxczAgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw',` \
`'created': '2021-07-22T07:43:53.000Z',` \
`'updated': '2021-07-22T07:43:53.544Z',` \
`'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'},` \
`'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com',` \
`'displayName': 'Testov',` \
`'self': True},` \
`'start': {'dateTime': '2021-07-22T07:43:53Z', 'timeZone': 'UTC'},` \
`'end': {'dateTime': '2021-07-22T08:43:53Z', 'timeZone': 'UTC'},` \
`'iCalUID': 'ljp7a3ocp8oorbov9u2cq221s0@google.com',` \
`'sequence': 0,` \
`'reminders': {'useDefault': True},` \
`'eventType': 'default'`\
`}`

![](/files/a03ac277e19ee2ebfd0d6575b162138b25d82c7b)

### Як додати подію

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - add\_event \
**calendar\_id** - id вибраного календаря \
**event\_name** - назва події

Також потрібно задати один із двох варіантів параметрів: дата АБО дата й час.

Якщо подія відбувається протягом усього дня, тоді потрібно вказати дати:

1. **start\_date** - дата початку події у форматі DD.MM.YYYY (наприклад, 23.07.2010)
2. **end\_date** - дата завершення події у форматі DD.MM.YYYY (наприклад, 24.07.2010)

Якщо подія відбувається у визначений час, тоді потрібно вказати дату й час:

1. start\_datetime - дата й час початку події у форматі DD.MM.YYYY HH:MM (наприклад, 23.07.2010 12:00)
2. end\_datetime - дата й час завершення події у форматі DD.MM.YYYY HH:MM (наприклад, 23.07.2010 13:00)
3. time\_zone - часовий пояс події. Ідентифікатор часового поясу IANA. За замовчуванням — Europe/Moscow (GMT+3)

{% hint style="info" %}
Якщо часові пояси календаря та події різні, то подія з часом буде додана в часовий пояс календаря.
{% endhint %}

Приклад:

Календар у часовому поясі (tz) Europe/Kyiv +3, а подію додано з часовим поясом Europe/Berlin +2. Час події 12:00 (tz +2) буде додано до календаря як 13:00, тому що за київським часом 13:00 — це 12:00 у часовому поясі +2.

**Додаткові параметри:**

**event\_description** - опис події \
**location** - географічне розташування події як текст у довільній формі \
**email\_minutes** - час у хвилинах до події, коли надсилати сповіщення на email учасників \
**popup\_minutes** - час у хвилинах до події, коли надсилати сповіщення учасникам у вигляді спливаючого вікна

Приклад параметрів:

`{"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "command": "add_event", "event_name": "The greatest event of all time", "start_datetime": "27.07.2021 12:00", "end_datetime": "27.07.2021 14:00"}`

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

Для подальшого редагування створеної події рекомендується зберегти її id:

**id -> event\_id**

#### Приклад відповіді функції:

`{'kind': 'calendar#event', 'etag': '"3254057128970000"', 'id': 'ittr5291ppi7snapn8jbct5krs', 'status': 'confirmed', 'htmlLink': 'https://www.google.com/calendar/event?eid=aXR0cjUyOTFwcGk3c25hcG44amJjdDVrcnMgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-23T08:22:35.000Z', 'updated': '2021-07-23T08:22:53.109Z', 'summary': 'New Event44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': ‘Test’, 'self': True}, 'start': {'dateTime': '2021-07-23T13:30:00Z', 'timeZone': 'Europe/Kyiv}, 'end': {'dateTime': '2021-07-23T14:00:00Z', 'timeZone': 'Europe/Kyiv}, 'iCalUID': 'ittr5291ppi7snapn8jbct5krs@google.com', 'sequence': 0, 'attendees': [{'email': john@gmail.com', 'displayName': John, 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default'}`

![](https://lh4.googleusercontent.com/KVPS5xulK5hFYLTI9tsbvwd51rbH-FkxXMWArUuUNvTfTD-hTq486q4KSQvO45JqCet3U9wmrB65dwrSsOJQTeTxmt47tV5Jh1Qx6Wsri5cPW47QOohuwHY1rDdF7_G-hPNe8-xuCtEDY-rbIg)

### Редагування події

**URL функції**: <https://store.salebot.ai/function/gcalendar\\>
**Тип запиту**: POST-json

#### Обов’язкові параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - update\_event; \
**calendar\_id** - id календаря; \
**event\_id** - id події, яку потрібно редагувати

**Додаткові параметри** для оновлення:

Ви можете передавати як один, так і кілька параметрів.

**event\_name** - назва події \
**event\_description** - опис події \
**email\_minutes** - час у хвилинах до події, коли надсилати сповіщення на email учасників \
**popup\_minutes** - час у хвилинах до події, коли надсилати сповіщення учасникам у вигляді спливаючого вікна

Якщо подія відбувається протягом усього дня, тоді потрібно вказати дати:

**start\_date** - дата початку події у форматі DD.MM.YYYY (наприклад, 23.07.2010) \
**end\_date** - дата завершення події у форматі DD.MM.YYYY (наприклад, 24.07.2010)

Якщо подія відбувається у визначений час, тоді потрібно вказати дату й час:

**start\_datetime** - дата й час початку події у форматі DD.MM.YYYY HH:MM (наприклад, 23.07.2010 12:00) \
**end\_datetime** - дата й час завершення події у форматі DD.MM.YYYY HH:MM (наприклад, 23.07.2010 13:00) \
**time\_zone** - часовий пояс події. Ідентифікатор часового поясу IANA. За замовчуванням — Europe/Moscow (GMT+3)

Приклад параметрів:

`{"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "event_id": "j1lcpm4q2p9c0cv705alv3brug", "command": "update_event", "event_name": "Edited event", "start_datetime": "27.07.2021 12:00", "end_datetime": "27.07.2021 14:00","popup_minutes": "11","email_minutes": "22"}`

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

#### Приклад відповіді функції:

`{"kind":"calendar#event","etag":""3276713558524000"","id":"j1lcpm4q2p9c0cv705alv3brug","status":"confirmed","htmlLink":"https://www.google.com/calendar/event?eid=ajFsY3BtNHEycDljMGN2NzA1YWx2M2JydWcgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw","created":"2021-12-01T10:40:11.000Z","updated":"2021-12-01T10:43:16.738Z","summary":"Amazing","creator":{"email":"gsheets@gsheets-254713.iam.gserviceaccount.com"},"organizer":{"email":"i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com","displayName":"Test","self":true},"start":{"dateTime":"2021-12-28T09:00:00Z","timeZone":"Europe/Moscow"},"end":{"dateTime":"2021-12-29T11:00:00Z","timeZone":"Europe/Moscow"},"iCalUID":"j1lcpm4q2p9c0cv705alv3brug@google.com","sequence":0,"reminders":{"useDefault":false,"overrides":[{"method":"email","minutes":22},{"method":"popup","minutes":12}]},"eventType":"default","update_status":"ok"}`

### Отримання списку подій

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - get\_event\_list;\
**calendar\_id** - id календаря

Якщо ви не передасте додаткові параметри, результатом буде список подій на сьогодні

**Додаткові параметри:**

**start\_date** - дата, з якої ви хочете знайти події, у форматі DD.MM.YYYY (23.07.2021) \
**end\_date** - дата, до якої ви хочете знайти події, у форматі DD.MM.YYYY (24.07.2021)

Приклад параметрів:

Подію за 23 липня буде знайдено

`{"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "command": "get_event_list", "start_date": "22.07.2021", "end_date": "23.07.2021"}`

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

Список знайдених подій можна зберегти у змінній:

**items -> event\_list**

#### Приклад відповіді функції:

`{'kind': 'calendar#events', 'etag': '"p33odnesrinsv20g"', 'summary': 'Test', 'description': 'Test description', 'updated': '2021-07-23T12:13:05.686Z', 'timeZone': 'UTC', 'accessRole': 'owner', 'defaultReminders': [], 'items': [{'kind': 'calendar#event', 'etag': '"3254084771372000"', 'id': '6d8rocb9e2r21ue37jgsa0v06i', 'status': 'confirmed', 'htmlLink': 'https://www.google.com/calendar/event?eid=NmQ4cm9jYjllMnIyMXVlMzdqZ3NhMHYwNmkgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-23T12:11:13.000Z', 'updated': '2021-07-23T12:13:05.686Z', 'summary': 'DDDDDDDDD', 'creator': {'email': 'adnimdd@gmail.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Testov', 'self': True}, 'start': {'date': '2021-07-20'}, 'end': {'date': '2021-07-21'}, 'transparency': 'transparent', 'iCalUID': '6d8rocb9e2r21ue37jgsa0v06i@google.com', 'sequence': 0, 'reminders': {'useDefault': False}, 'eventType': 'default'}]}`

### Як перемістити події до іншого календаря

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - move\_event; \
**calendar\_id** - id календаря, з якого переміщується подія;\
**event\_id** - id події; \
**destination\_calendar\_id** - id календаря, до якого переміщується подія;

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

#### Приклад відповіді функції:

`{'kind': 'calendar#event', 'etag': '"3253880350568000"', 'id': 'ljp7a3ocp8oorbov9u2cq221s0', 'status': 'cancelled', 'htmlLink': 'https://www.google.com/calendar/event?eid=bGpwN2Ezb2NwOG9vcmJvdjl1MmNxMjIxczAgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-22T07:43:53.000Z', 'updated': '2021-07-22T07:49:35.284Z', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': '88q8fvkrv5ue7orsh109t6o60s@group.calendar.google.com', 'displayName': 'Тестовий календар'}, 'start': {'dateTime': '2021-07-22T07:43:53Z', 'timeZone': 'UTC'}, 'end': {'dateTime': '2021-07-22T08:43:53Z', 'timeZone': 'UTC'}, 'iCalUID': 'ljp7a3ocp8oorbov9u2cq221s0@google.com', 'sequence': 0, 'reminders': {'useDefault': True}, 'eventType': 'default'}`

### Як отримати інформацію про подію

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - get\_event; \
**calendar\_id** - id календаря; \
**event\_id** - id події

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

#### Приклад відповіді функції:

`{'kind': 'calendar#event', 'etag': '"3254067331414000"', 'id': 'ittr5291ppi7snapn8jbct5krs', 'status': 'confirmed', 'htmlLink': 'https://www.google.com/calendar/event?eid=aXR0cjUyOTFwcGk3c25hcG44amJjdDVrcnMgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-23T08:22:35.000Z', 'updated': '2021-07-23T11:12:55.553Z', 'summary': 'New Event44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Test', 'self': True}, 'start': {'dateTime': '2021-07-23T13:30:00Z', 'timeZone': 'Europe/Moscow'}, 'end': {'dateTime': '2021-07-23T14:00:00Z', 'timeZone': 'Europe/Moscow'}, 'iCalUID': 'ittr5291ppi7snapn8jbct5krs@google.com', 'sequence': 0, 'attendees': [{'email': 'adnimdd@gmail.com', 'displayName': 'John', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default'}`

### Як видалити подію

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - remove\_event; \
**calendar\_id** - id календаря; \
**event\_id** - id події, яку ви хочете видалити

#### Збережені значення з JSON-відповіді:

Після успішного виконання функція повертає такі параметри, які ви можете зберегти.

#### Приклад відповіді функції:

`{'status': 'ok'}`

### Як додати учасника події

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - add\_client; \
**calendar\_id** - id календаря; \
**event\_id** - id події; \
**client\_email** - електронна адреса клієнта, якого ви хочете додати

Додаткові параметри:&#x20;

**name** - назва події; \
**comment** - коментар учасника

**Приклад параметрів:**

`{` \
`"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json",` \
`"calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com",` \
`"command": "add_client",` \
`"event_id": "#{event_id}",` \
`"client_email": "asdc@mail.com",` \
`"name": "John",` \
`"comment": "Я буду першим!"` \
`}`

![](https://lh5.googleusercontent.com/8JxiPQ_0jmcLYLgDm342-ZfFX346G_QtephaPBQ6upoh1zWVphAZvve3OtpDM8UgJyreXmxFpkEV0tO6Jq15ECT2nMx-rg1lGpzybwCB4Hnd391H99IQ-hQ6fuEOvU-CRCHw2L74UVXJLHTCfQ)

#### Збережені значення з JSON-відповіді:

Функція завжди повертає статус **add\_status**. Він може мати одне з трьох значень:

**ok** - клієнта додано \
**exist** - клієнт уже існує \
**error** - під час додавання сталася помилка, тоді додатково разом із add\_status буде параметр error\_message з текстом помилки

#### Приклад відповіді функції у разі успіху:

`{'kind': 'calendar#event', 'etag': '"3254059247409000"', 'id': 'ittr5291ppi7snapn8jbct5krs', 'status': 'confirmed', 'htmlLink': 'https://www.google.com/calendar/event?eid=aXR0cjUyOTFwcGk3c25hcG44amJjdDVrcnMgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-23T08:22:35.000Z', 'updated': '2021-07-23T08:58:11.548Z', 'summary': 'New Event44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Test', 'self': True}, 'start': {'dateTime': '2021-07-23T13:30:00Z', 'timeZone': 'Europe/Moscow'}, 'end': {'dateTime': '2021-07-23T14:00:00Z', 'timeZone': 'Europe/Moscow'}, 'iCalUID': 'ittr5291ppi7snapn8jbct5krs@google.com', 'sequence': 0, 'attendees': [{'email': 'adnimdd@gmail.com', 'displayName': 'John', 'responseStatus': 'needsAction'}, {'email': 'adnimd@gmail.com', 'displayName': 'John', 'responseStatus': 'needsAction'}, {'email': 'adnidgmd@gmail.com', 'displayName': 'John2', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default', ‘add_status’: 'ok'}`&#x20;

### Як видалити учасника

**URL функції**: <https://store.salebot.ai/function/gcalendar> \
**Тип запиту**: POST-json

#### Параметри:

**creds\_path** - посилання на ключ доступу облікового запису сервісу до API календаря (отримане за інструкцією вище); \
**команду** - remove\_client; \
**calendar\_id** - id календаря; \
**event\_id** - id події; \
**client\_email** - електронна адреса клієнта

#### Приклад параметрів:

`{` \
`"creds_path": "https://files.salebot.ai/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json",` \
`"calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com",` \
`"command": "remove_client",` \
`"event_id": "#{event_id}",` \
`"client_email": "asdc@mail.com"` \
`}`

#### Збережені значення з JSON-відповіді:

Функція завжди повертає статус **remove\_status**. Він може мати одне з трьох значень:

**1** - клієнта успішно видалено \
**0** - клієнта не знайдено \
**error** - під час видалення сталася помилка, тоді додатково разом із remove\_status буде параметр error\_message з текстом помилки

#### Відповідь функції у разі успіху:

`{'kind': 'calendar#event', 'etag': '"3254059247409000"', 'id': 'ittr5291ppi7snapn8jbct5krs', 'status': 'confirmed', 'htmlLink': 'https://www.google.com/calendar/event?eid=aXR0cjUyOTFwcGk3c25hcG44amJjdDVrcnMgaTlzdmVydHN0dm9vMmZxMW8waThjbjM5YThAZw', 'created': '2021-07-23T08:22:35.000Z', 'updated': '2021-07-23T08:58:11.548Z', 'summary': 'New Event44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Test', 'self': True}, 'start': {'dateTime': '2021-07-23T13:30:00Z', 'timeZone': 'Europe/Moscow'}, 'end': {'dateTime': '2021-07-23T14:00:00Z', 'timeZone': 'Europe/Moscow'}, 'iCalUID': 'ittr5291ppi7snapn8jbct5krs@google.com', 'sequence': 0, 'attendees': [{'email': 'adnimdd@gmail.com', 'displayName': 'John', 'responseStatus': 'needsAction'}, {'email': 'adnimd@gmail.com', 'displayName': 'John', 'responseStatus': 'needsAction'}, {'email': 'adnidgmd@gmail.com', 'displayName': 'John2', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default', 'remove_status': '1'}`


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/uk/integrations/google/calendar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
