# Google Calendar

* [Como criar uma conta de serviço](#how-to-create-a-service-account)
* [Como baixar o arquivo de chave](#how-to-download-the-key-file)
* [Como encontrar o ID do calendário](#how-to-find-the-calendar-id)
* [Como criar um novo calendário](#how-to-create-a-new-calendar)
* [Como obter informações sobre o calendário](#how-to-get-the-information-about-the-calendar)
* [Como obter a lista dos calendários da conta de serviço](#how-to-get-the-list-of-the-service-accounts-calendars)
* [Como trabalhar com eventos](#how-to-work-with-events)

## Como criar uma conta de serviço

Para isso, você precisa criar sua própria conta nos serviços do Google.

Vá para [**este link**](https://console.developers.google.com/cloud-resource-manager) e crie um novo projeto:

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

Pense em um nome para o projeto:

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

Pressione “Criar” e aguarde um pouco enquanto o projeto é criado.

Recarregue a página e então clique no projeto recém-criado. Verifique no campo à esquerda o seu status de acesso - ele deve mostrar “Proprietário (1)”:

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

Agora vá para as configurações da conta de serviço:

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

Lá você precisa abrir a seção “Contas de serviço” e pressionar “ + Criar conta de serviço”:

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

Digite o nome e o e-mail da conta de serviço:

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

Depois escolha a função de Proprietário:

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

Pressione “Concluir” e depois “Gerenciar chaves” no projeto escolhido. Em seguida, pressione “Criar nova chave”

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

Escolha o tipo de chave JSON e pressione “Criar”

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

Depois que você criar a chave, ela será salva automaticamente no seu computador

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

Depois você precisa enviá-la para a hospedagem ou para a Salebot e compartilhar o link para ela nos parâmetros da solicitação, enviando a URL obtida no parâmetro creds\_path.

Agora você também precisa adicionar nossas integrações de API. Para fazer isso, vá aqui:

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

Depois você precisa ativar as APIs e serviços e procurar por Google Calendar API na janela que se abrir:

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

Clique no resultado da pesquisa e depois em “Ativar”:

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

Esta etapa conclui a criação da sua conta de serviço.

## Como baixar o arquivo de chave

Vá para o projeto na Salebot e faça o download do arquivo de chave obtido para um bloco, por exemplo, assim:

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

Pressione “Salvar” e vá para a janela de teste livre:

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

Digite a frase que você definiu como condição (neste caso, é “123”). Você receberá como resposta um link para o arquivo com as chaves:

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

{% hint style="danger" %}
Você não pode excluir o bloco, caso contrário o arquivo será excluído do servidor e você terá que adicioná-lo novamente.
{% endhint %}

Não se esqueça de definir o bloco como do tipo Não, para que ele não atrapalhe você.

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

Você pode salvar este link em uma variável ou transferi-lo no parâmetro creds\_path como está.

## Como encontrar o ID do calendário

Você pode encontrar o ID do calendário existente nas configurações dele, na seção “Integrar calendário”:

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

## Como criar um novo calendário

Você pode criar um novo calendário de duas maneiras: manualmente e usando uma função.

### Criação manual do calendário:

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

Para que você possa adicionar notas e editar um calendário existente (ou criado manualmente), você deve conceder acesso à conta de serviço. Para fazer isso, basta adicionar o e-mail da conta de serviço nas configurações do calendário desejado:

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

### Criação de calendário usando uma função

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

**Parâmetros**:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - criar \
**name** - nome do calendário \
**description** - descrição do calendário

**Parâmetros adicionais**:

**time\_zone** - o fuso horário do calendário.  ID do fuso horário IANA. Por padrão, é Europe/Moscow (GMT+3) \
**location** - uma localização geográfica do calendário como um texto em formato livre

Você também pode conceder acesso a uma conta diferente, por exemplo, a sua principal:

**owner\_email** - e-mail da conta que será adicionada como proprietária do calendário

{% hint style="warning" %}
Por padrão, o calendário será criado na conta de serviço. Para poder editar visualmente o calendário a partir da sua própria conta, informe seu e-mail no parâmetro owner\_email.
{% endhint %}

**Valores armazenados** da resposta JSON

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar:

`{'kind': 'calendar#calendar', 'etag': '"WgASl9FY_5zrEmCZvrt4Qlh6tGQ"', 'id': '7e2q3mka5dmfmcohdltfupclj4@group.calendar.google.com', 'summary': 'Nome do calendário', 'timeZone': 'UTC'}`

Vamos armazenar o ID do calendário criado: `id -> calendar_id`&#x20;

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

Para testes, você pode exibir a variável #{custom\_answer}.

Se o e-mail (owner\_email) foi transferido, então, após a solicitação bem-sucedida, é necessário ir para a caixa de entrada do seu e-mail e confirmar a adição do calendário à sua conta:

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

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

## Como obter informações sobre o calendário

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

**Parâmetros**:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - get\_calendar; \
**calendar\_id** - o id do calendário escolhido

**Valores armazenados**

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

Um **exemplo** da resposta da função:

`{'kind': 'calendar#calendar', 'etag': '"6KN4OTLeoqGGu7Nr5uNIQgCGYsU"', 'id': 'rcdd8mimc6gjtasan9ansn8354@group.calendar.google.com', 'summary': 'Nome do calendário', 'timeZone': 'UTC'}`

## Como obter a lista dos calendários da conta de serviço

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

**Parâmetros**:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - calendars\_list

**Valores armazenados**

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

Um **exemplo** da resposta da função:

`{` \
&#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; `]` \
`}`

## Como trabalhar com eventos

### Adicionando um evento rapidamente

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

**Parâmetros**:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - quick\_add\_event; \
**calendar\_id** - o id do calendário escolhido;\
**event\_name** - o nome do evento

Um **exemplo** dos parâmetros:

`{"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"}`

**Valores armazenados**

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar. Para poder editar o evento criado mais tarde, é recomendável salvar o id dele: id -> event\_id.

Um **exemplo** da resposta da função:

`{`\
`'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/abcef022f2f3c42dded0cd58c80ebe1fdcd67b08)

### Como adicionar um evento

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - add\_event \
**calendar\_id** - o id do calendário escolhido \
**event\_name** - o nome do evento

Você também precisa definir uma de duas opções de parâmetro: data OU data e hora.

Se o evento ocorrer durante o dia inteiro, então você precisa especificar as datas:

1. **start\_date** - a data de início do evento no formato DD.MM.AAAA (ex.: 23.07.2010)
2. **end\_date** - a data de término do evento no formato DD.MM.AAAA (ex.: 24.07.2010)

Se o evento ocorrer em um horário definido, então você precisa especificar a data e a hora:

1. start\_datetime - a data e a hora em que o evento começa no formato DD.MM.AAAA HH:MM (ex.: 23.07.2010 12:00)
2. end\_datetime - a data e a hora em que o evento termina no formato DD.MM.AAAA HH:MM (ex.: 23.07.2010 13:00)
3. time\_zone - o fuso horário do evento. ID do fuso horário IANA. Por padrão, é Europe/Moscow (GMT+3)

{% hint style="info" %}
Se os fusos horários do calendário e do evento forem diferentes, então o evento com horário será adicionado ao fuso horário do calendário.
{% endhint %}

Exemplo:

O calendário está no fuso horário (tz) Europe/Kyiv +3, e o evento é adicionado com o fuso horário Europe/Berlin +2. O horário do evento às 12h (tz +2) será adicionado ao calendário como 13h, porque no horário de Kyiv 13h corresponde a 12h no fuso horário +2.

**Parâmetros adicionais:**

**event\_description** - a descrição do evento \
**location** - a localização geográfica do evento em texto livre \
**email\_minutes** - o tempo em minutos antes do evento para enviar uma notificação aos e-mails dos participantes \
**popup\_minutes** - o tempo em minutos antes do evento para enviar uma notificação aos participantes como um pop-up

Um exemplo dos parâmetros:

`{"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"}`

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

Para edição futura do evento criado, é recomendável salvar o id dele:

**id -> event\_id**

#### Um exemplo da resposta da função:

`{'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)

### Editando o evento

**URL da função**: <https://store.salebot.ai/function/gcalendar\\>
**Tipo de solicitação**: POST-json

#### Parâmetros obrigatórios:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - update\_event; \
**calendar\_id** - o id do calendário; \
**event\_id** - o id do evento que você precisa editar

**Parâmetros opcionais** para uma atualização:

Você pode enviar um, assim como vários parâmetros.

**event\_name** - o nome do evento \
**event\_description** - a descrição do evento \
**email\_minutes** - o tempo em minutos antes do evento para enviar uma notificação aos e-mails dos participantes \
**popup\_minutes** - o tempo em minutos antes do evento para enviar uma notificação aos participantes como um pop-up

Se o evento ocorrer durante o dia inteiro, então você precisa especificar as datas:

**start\_date** - a data de início do evento no formato DD.MM.AAAA (ex.: 23.07.2010) \
**end\_date** - a data de término do evento no formato DD.MM.AAAA (ex.: 24.07.2010)

Se o evento ocorrer em um horário definido, então você precisa especificar a data e a hora:

**start\_datetime** - a data e a hora em que o evento começa no formato DD.MM.AAAA HH:MM (ex.: 23.07.2010 12:00) \
**end\_datetime** - a data e a hora em que o evento termina no formato DD.MM.AAAA HH:MM (ex.: 23.07.2010 13:00) \
**time\_zone** - o fuso horário do evento. ID do fuso horário IANA. Por padrão, é Europe/Moscow (GMT+3)

Um exemplo dos parâmetros:

`{"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": "Evento editado", "start_datetime": "27.07.2021 12:00", "end_datetime": "27.07.2021 14:00","popup_minutes": "11","email_minutes": "22"}`

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

#### Um exemplo da resposta da função:

`{"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"}`

### Obtendo uma lista de eventos

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - get\_event\_list;\
**calendar\_id** - o id do calendário

Se você não enviar parâmetros adicionais, o resultado será uma lista dos eventos de hoje

**Parâmetros adicionais:**

**start\_date** - a data a partir da qual você quer encontrar eventos no formato DD.MM.AAAA (23.07.2021) \
**end\_date** - a data até a qual você quer encontrar eventos no formato DD.MM.AAAA (24.07.2021)

Um exemplo dos parâmetros:

O evento do dia 23 de julho será encontrado

`{"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"}`

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

A lista de eventos encontrados pode ser salva em uma variável:

**items -> event\_list**

#### Um exemplo da resposta da função:

`{'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'}]}`

### Como mover eventos para um calendário diferente

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - move\_event; \
**calendar\_id** - o id do calendário de onde o evento é movido;\
**event\_id** - o id do evento; \
**destination\_calendar\_id** - o id do calendário para o qual o evento é movido;

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

#### Um exemplo da resposta da função:

`{'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'}`

### Como obter informações sobre o evento

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - get\_event; \
**calendar\_id** - o id do calendário; \
**event\_id** - o id do evento

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

#### Um exemplo da resposta da função:

`{'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'}`

### Como excluir um evento

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - remove\_event; \
**calendar\_id** - o id do calendário; \
**event\_id** - o id do evento que você quer excluir

#### Valores armazenados da resposta JSON:

Após a execução bem-sucedida, a função retorna estes parâmetros a seguir que você pode salvar e armazenar.

#### Um exemplo da resposta da função:

`{'status': 'ok'}`

### Como adicionar um participante ao evento

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - add\_client; \
**calendar\_id** - o id do calendário; \
**event\_id** - o id do evento; \
**client\_email** - o e-mail do cliente que você quer adicionar

Parâmetros adicionais:&#x20;

**name** - o nome do evento; \
**comentário** - comentário do participante

**Um exemplo dos parâmetros:**

`{` \
`"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": "Eu serei o primeiro!"` \
`}`

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

#### Valores armazenados da resposta JSON:

A função sempre retorna o status **add\_status**. Ele pode assumir um de três valores:

**ok** - o cliente foi adicionado \
**exist** - o cliente já existe \
**error** - houve um erro durante o processo de adição; então, além de add\_status, haverá um parâmetro error\_message com o texto do erro

#### Um exemplo da resposta da função em caso de sucesso:

`{'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;

### Como excluir um participante

**URL da função**: <https://store.salebot.ai/function/gcalendar> \
**Tipo de solicitação**: POST-json

#### Parâmetros:

**creds\_path** - o link para a chave de acesso da conta de serviço à API do calendário (obtido usando a instrução acima); \
**comando** - remove\_client; \
**calendar\_id** - o id do calendário; \
**event\_id** - o id do evento; \
**client\_email** - o e-mail do cliente

#### Um exemplo dos parâmetros:

`{` \
`"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"` \
`}`

#### Valores armazenados da resposta JSON:

A função sempre retorna o status **remove\_status**. Ele pode assumir um de três valores:

**1** - o cliente foi removido com sucesso \
**0** - o cliente não foi encontrado \
**error** - ocorreu um erro durante o processo de remoção; então, além de remove\_status, haverá um parâmetro error\_message com o texto do erro

#### A resposta da função em caso de sucesso:

`{'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/pt/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.
