← Главная

🗓 Google Calendar API — шпаргалка

DS-255 · Всё в одном месте для быстрого тестирования

⚙️ Подключение

Полный URL:
https://deploy-preview-827--chatplace-front.netlify.app/?preview-api-core=https://api-1764.review.chatplace.io/
API Base:
https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00
Авторизация: заголовок X-Auth-Token
Токен берём из cookie: document.cookie.match(/token=([^;]+)/)[1]
💡 Все запросы ниже — копируй в DevTools → Console (F12) на странице deploy-preview-827. Токен подставится автоматически из cookie.

✅ Рабочие запросы — с правильными данными

Ожидаем 200 OK

1. GET calendars — список календарей

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/calendars', {method:'GET', headers:{'X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}}).then(r=>r.text().then(t=>console.log(r.status, t)))

2. create-booking — создать бронирование

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/create-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Создай событие", defaultEventDuration:{value:30,unit:"minutes"}, createMeetLink:false, workingHours:[]})}).then(r=>r.text().then(t=>console.log(r.status, t)))

3. cancel-booking — отменить бронирование

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/cancel-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Отмени событие"})}).then(r=>r.text().then(t=>console.log(r.status, t)))

4. reschedule — перенести событие

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/reschedule', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Перенеси событие"})}).then(r=>r.text().then(t=>console.log(r.status, t)))

5. default-calendar — установить календарь по умолчанию

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/default-calendar', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({calendarId:"testchatplacenatalia@gmail.com"})}).then(r=>r.text().then(t=>console.log(r.status, t)))

6. privacy-consent — сохранить согласие

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/privacy-consent', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, text:"Политика конфиденциальности", url:"https://example.com/privacy"})}).then(r=>r.text().then(t=>console.log(r.status, t)))

7. connect-link — получить ссылку на OAuth

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/connect-link', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({source:"ai-assistant"})}).then(r=>r.text().then(t=>console.log(r.status, t)))

8. finish-connect — завершить подключение

С тестовым кодом вернёт ошибку — так и должно быть. С настоящим OAuth-кодом от Google — подключит календарь.

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/finish-connect', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({code:"invalid_test_code"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
✓ сохранено

📋 Валидация — проверяем обязательные поля

Отправляем пустое тело {} — API должен вернуть 422 со списком пропущенных полей

1. create-booking

Обязательные: isActive, defaultEventDuration (value, unit), createMeetLink

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/create-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

2. cancel-booking

Обязательные: isActive, prompt

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/cancel-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

3. reschedule

Обязательные: isActive, prompt

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/reschedule', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

4. default-calendar

Обязательные: calendarId

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/default-calendar', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

5. privacy-consent

Обязательные: isActive, text, url

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/privacy-consent', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

6. finish-connect

Обязательные: code

С невалидным кодом вернёт ошибку доступа — это ожидаемо

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/finish-connect', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))

7. connect-link

Обязательные: source

fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/connect-link', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
✓ сохранено

📊 Результаты прошлых проверок

Для справки — что получили при тестировании 02.04.2026

#EndpointМетодРезультатЧто вернул
1/google-calendar/calendarsGET200 OKСписок календарей
2/google-calendar/create-bookingPOST200 OKНастройки бронирования сохранены
3/google-calendar/cancel-bookingPOST200 OKНастройки отмены сохранены
4/google-calendar/reschedulePOST200 OKНастройки переноса сохранены
5/google-calendar/default-calendarPOST200 OKКалендарь по умолчанию установлен
6/google-calendar/privacy-consentPOST200 OKСогласие сохранено
7/integrations/google-calendar/connect-linkPOST200 OKGoogle OAuth URL
8/integrations/google-calendar/finish-connectPOST422 OKКорректная ошибка — тестовый код невалиден
✓ сохранено