Google-календарь

Как создать сервисный аккаунт

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

Переходим по ссылке и создаем проект:

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

Нажимаем Create и немного ждем, пока создается аккаунт.

Перезагружаем страницу. Нажимаем “F5”

Проверяем права доступа. Должно быть Полное -”Owner”

Переходим в настройки сервисного аккаунта

Заходим в “Сервисные аккаунты”

и создаём Сервисный аккаунт

Вводим название и почту сервисного аккаунта:

Далее роль -> owner (Владелец):

Сохраняем и попадаем в список сервисных аккаунтов. Переходим в настройки ключей и создаем новый:

Сразу после создания ключ автоматически загрузится на ваш компьютер. Далее его нужно загрузить на хостинг или в конструктор Salebot и передавать ссылку на него в параметрах запросов, передавая полученный URL в параметре creds_path.

Теперь надо добавить наше API-интеграции. Для этого заходим сюда.

Находим api календаря и включаем его в этом сервисном аккаунте:

На этом создание сервисного аккаунта завершено.

Как загрузить файл ключей

Переходим в проект и загружаем полученный файл в блок, например, вот так:

Нажимаем "Готово" и переходим в тестового бота:

Вводим фразу, которую задали для входа в блок. В примере это 123. В ответ получаем ссылку на файл с ключами:

Блок удалять нельзя, иначе файл удалится с сервера и нужно будет заново добавлять.

Не забудьте в дальнейшем блок схемы бота выставить как "Не состояние", чтобы в дальнейшем не возникла утечка ключа:

Эту ссылку можно сохранить в переменную или передавать в параметре creds_path как есть.

Как найти идентификатор календаря

Идентификатор существующего календаря можно посмотреть в его настройках:

Как создать новый календарь

Создать новый календарь можно двумя способами: вручную и через функцию (расскажем ниже).

Ручное создание календаря:

Чтобы можно было добавлять записи и редактировать существующий календарь (или созданный вручную), нужно добавить соответствующий доступ сервисному аккаунту. Для этого перейдите в настройки нужного календаря и добавьте email сервисного аккаунта.

Как создать календарь с помощью функции

! URL функции: https://store.salebot.pro/function/gcalendar

! Тип запроса: POST-json

ПараметрыЗначениеПримечание

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

create

name

название календаря

description

описание календаря

recurrence_days

параметр для задания периодичности события

Например: "SU,MO,TU,WE,TH,FR,SA" - событие активно каждую неделю каждый день. "MO,TU,WE,TH,FR" - событие активно каждую неделю каждый день. кроме субботы и воскресенья.

По умолчанию календарь создастся в сервисном аккаунте. Чтобы иметь возможность визуального редактирования календаря из своего аккаунта, передавайте свой email в параметре owner_email

Пример:

{"creds_path": "https://files.salebot.pro/uploads/message/file/30037/calendar-project-320517-c241d9ab0577.json", "calendar_id": "mail@gmail.com", "command": "update_event", "event_id": "v40c3d6j2ibl6vpg2m842538l0", "popup_minutes": "11","email_minutes": "22", "recurrence_days": "MO,TU,FR" }

Сохраняемые значения из JSON-ответа:

После успешного выполнения функция вернет следующие параметры, которые можно сохранить:

{'kind': 'calendar#calendar', 'etag': '"WgASl9FY_5zrEmCZvrt4Qlh6tGQ"', 'id': '7e2q3mka5dmfmcohdltfupclj4@group.calendar.google.com', 'summary': 'Название календаря’', 'timeZone': 'UTC'} Сохраним id созданного календаря: id -> calendar_id

Для тестирования вы можете вывести на экран переменную #{custom_answer}.

Если был передан email (параметр owner_email), то после успешного запроса необходимо перейти во Входящие и подтвердить добавление календаря в ваш аккаунт:

Как получить информацию о календаре

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыОписание параметра

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

get_calendar

calendar_id

идентификатор календаря

Сохраняемые значения из JSON-ответа: После успешного выполнения функция вернет следующие параметры, которые можно сохранить. Пример ответа функции:

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

Как получить список календарей сервисного аккаунта

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

calendars_list

Сохраняемые значения из JSON-ответа:

После успешного выполнения функция вернет следующие параметры, которые можно сохранить. Пример ответа функции:

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

Как работать с событиями/мероприятиями (Events)

Быстрое добавление события (мероприятия)

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

creds_path - ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше) command - quick_add_event calendar_id - идентификатор календаря event_name - название события

Пример параметров: {"creds_path": "https://files.salebot.pro/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "command": "quick_add_event","event_name": "Супер мероприятие"} Сохраняемые значения из JSON-ответа:

После успешного выполнения функция вернет следующие параметры, которые можно сохранить по своему усмотрению.

Для дальнейшего редактирования созданного события рекомендуется сохранить его идентификатор: 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'}

Как добавить событие (мероприятие)

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

add_event

calendar_id

идентификатор календаря

event_name

название события

Также нужно указать один из вариантов: дату или дату и время. Если мероприятие будет проводится весь день, то нужно передать даты:

  1. start_date - дата начала мероприятия в формате дд.мм.гггг (23.07.2021)

  2. end_date - дата завершения мероприятия в формате дд.мм.гггг (24.07.2021)

Если мероприятие в определенное время, то нужно передать дату:

  1. start_datetime - дата и время начала мероприятия в формате дд.мм.гггг чч:мм (23.07.2021 12:00)

  2. end_datetime - дата и время завершения мероприятия в формате дд.мм.гггг чч:мм (24.07.2021 13:00)

  3. time_zone - Часовой пояс события. Идентификатор часового пояса IANA. По умолчанию: Europe/Moscow

Если часовой пояс календаря и события разный, то событие добавится со временем в часовом поясе календаря.

Пример:

Календарь в часовом поясе (чс) Europe/Moscow +3, а событие добавляется с часовым поясом Europe/Berlin +2. Время события 12:00 (чс +2) в календарь добавится на 13:00, так как по московскому времени 13:00 соответствует 12:00 в часовом поясе +2

Дополнительные параметры:

ПараметрыЗначениеПримечание

event_description

описание события

location

географическое положение мероприятия в виде текста произвольной формы

email_minutes

время в минутах: за сколько до начала события отправить уведомление участникам на емейл

popup_minutes

время в минутах: за сколько до начала события отправить уведомление участникам во всплывающих уведомлениях.

transparency

блокировка времени в календаре, может принимать два значения "opaque" или "transparent"

"opaque" - значение по умолчанию. Событие блокирует время в календаре. Это эквивалентно настройке Показывать как занятой в пользовательском интерфейсе календаря.

"transparent" — событие не блокирует время в календаре. Это эквивалентно настройке «Показать как доступно» в пользовательском интерфейсе календаря.

recurrence_days

параметр для задания периодичности события.

Например:

"SU,MO,TU,WE,TH,FR,SA" - событие активно каждую неделю каждый день.

"MO,TU,WE,TH,FR" - событие активно каждую неделю каждый день. кроме субботы и воскресенья

Календарь в часовом поясе (чс) Europe/Moscow +3, а событие добавляется с часовым поясом Europe/Berlin +2. Время события 12:00 (чс +2) в календарь добавится на 13:00, так как по московскому времени 13:00 соответствует 12:00 в часовом поясе +2

{"creds_path": "https://files.salebot.pro/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "command": "add_event", "event_name": "Супер мероприятие", "start_datetime": "27.07.2021 12:00", "end_datetime": "27.07.2021 14:00"}

Сохраняемые значения из JSON-ответа:

После успешного выполнения функция вернет следующие параметры, которые можно сохранить.

Для дальнейшего редактирования созданного события рекомендуется сохранить его идентификатор: 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': 'Новое событие44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Testov', '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': 'vasya@gmail.com', 'displayName': 'Vasya', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default'}

Редактирование события (мероприятия)

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры обязательные:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

update_event calendar_id - идентификатор календаря

event_id

идентификатор изменяемого события

Возможные параметры для обновления:

ПараметрыЗначение

event_name

название события

event_description

описание события location - географическое положение мероприятия в виде текста произвольной формы

email_minutes

время в минутах: за сколько до начала события отправить уведомление участникам на емейл

popup_minutes

время в минутах: за сколько до начала события отправить уведомление во всплывающих уведомлениях

Можно передать как один, так и несколько параметров.

Если мероприятие будет проводится весь день, то можно передать даты:

start_date - дата начала мероприятия в формате дд.мм.гггг (23.07.2021)

end_date - дата завершения мероприятия в формате дд.мм.гггг (24.07.2021)

Если мероприятие в определенное время, то можно передать дату со временем:

start_datetime - дата и время начала мероприятия в формате дд.мм.гггг чч:мм (23.07.2021 12:00)

end_datetime - дата и время завершения мероприятия в формате дд.мм.гггг чч:мм (24.07.2021 13:00)

time_zone - Часовой пояс события. Идентификатор часового пояса IANA. По умолчанию: Europe/Moscow

transparency - блокировка времени в календаре, может принимать два значения "opaque" или "transparent":

  • "opaque" - значение по умолчанию. Событие блокирует время в календаре. Это эквивалентно настройке Показывать как занятой в пользовательском интерфейсе календаря.

  • "transparent" — событие не блокирует время в календаре. Это эквивалентно настройке «Показать как доступно» в пользовательском интерфейсе календаря.

recurrence_days - параметр для задания периодичности события. Например: "SU,MO,TU,WE,TH,FR,SA" - событие активно каждую неделю каждый день. "MO,TU,WE,TH,FR" - событие активно каждую неделю каждый день. кроме субботы и воскресенья.

Пример параметров:

{"creds_path": "https://files.salebot.pro/uploads/message/file/30037/calendar-project-320517-c241d9ab0565.json", "calendar_id": "i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com", "event_id": "j1lcpm4q2p9c0cv705alv3brug", "command": "update_event", "event_name": "Обновленное мероприятие", "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":"Супер","creator":{"email":"gsheets@gsheets-254713.iam.gserviceaccount.com"},"organizer":{"email":"i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com","displayName":"Testov","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.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

get_event_list

calendar_id

идентификатор календаря

Пример параметров: Будут найдены события за 23 июля

{"creds_path": "https://files.salebot.pro/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': 'Testov', 'description': 'Testov 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.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ОписаниеЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

move_event

calendar_id

идентификатор календаря, из которого перемещается событие

event_id

идентификатор события

destination_calendar_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.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

get_event

calendar_id

идентификатор календаря

event_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': 'Новое событие44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Testov', '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': 'Vasya', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default'}

Как удалить мероприятие

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

remove_event

calendar_id

идентификатор календаря

event_id

идентификатор удаляемого события

Сохраняемые значения из JSON-ответа:

После успешного выполнения функция вернет следующие параметры, которые можно сохранить. Пример ответа функции:

{'status': 'ok'}

Как добавить участника мероприятия

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

add_client

calendar_id

идентификатор календаря

event_id

идентификатор события

client_email

электронная почта клиента

Пример параметров:

{ "creds_path": "https://files.salebot.pro/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": "Viktor", "comment": "Буду первым!" }

Сохраняемые значения из 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': 'Новое событие44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Testov', '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': 'Vasya', 'responseStatus': 'needsAction'}, {'email': 'adnimd@gmail.com', 'displayName': 'Vasya', 'responseStatus': 'needsAction'}, {'email': 'adnidgmd@gmail.com', 'displayName': 'Vasya2', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default', ‘add_status’: 'ok'}

Как удалить участника мероприятия

URL функции: https://store.salebot.pro/function/gcalendar

Тип запроса: POST-json

Параметры:

ПараметрыЗначение

creds_path

ссылка на ключ доступа сервисного аккаунта к апи календаря (полученный по инструкции выше)

command

remove_client

calendar_id

идентификатор календаря

event_id

идентификатор события

client_email

электронная почта клиента

Пример параметров:

{ "creds_path": "https://files.salebot.pro/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': 'Новое событие44', 'description': 'Descri xbb xhjxkv', 'location': 'city London', 'creator': {'email': 'gsheets@gsheets-254713.iam.gserviceaccount.com'}, 'organizer': {'email': 'i9svertstvoo2fq1o0i8cn39a8@group.calendar.google.com', 'displayName': 'Testov', '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': 'Vasya', 'responseStatus': 'needsAction'}, {'email': 'adnimd@gmail.com', 'displayName': 'Vasya', 'responseStatus': 'needsAction'}, {'email': 'adnidgmd@gmail.com', 'displayName': 'Vasya2', 'responseStatus': 'needsAction'}], 'reminders': {'useDefault': False, 'overrides': [{'method': 'email', 'minutes': 10}, {'method': 'popup', 'minutes': 10}]}, 'eventType': 'default', 'remove_status': '1'}

Last updated