Создаем свой ИИ Co-pilot к Google Calendar

от автора

Пример выполненного задания ИИ ботом в Google Calendar

Пример выполненного задания ИИ ботом в Google Calendar

В современном мире, где время — это деньги, автоматизация рутинных задач становится все более важной. В этой статье мы расскажем, как можно автоматизировать выполнение задач в Google Календаре с помощью скрипта Google Apps Script и любого ИИ сервиса (в примере использован ProTalk). Этот скрипт позволит вам создавать события в календаре, которые будут автоматически выполнять определенные действия, такие как отправка запросов в API и обновление информации в событии.

Что такое Google Apps Script?

Google Apps Script — это облачная платформа для создания скриптов, которая позволяет автоматизировать задачи в Google Workspace (ранее G Suite). С помощью Google Apps Script вы можете писать скрипты на языке JavaScript, которые взаимодействуют с различными сервисами Google, такими как Google Календарь, Google Таблицы, Google Документы и другие.

Что такое ProTalk?

ProTalk — это сервис, который позволяет создавать и управлять ботами для выполнения различных задач. В данном случае мы будем использовать ProTalk для выполнения команд, указанных в событиях Google Календаря.

Как это работает?

  1. Создание события в Google Календаре: Вы создаете событие в Google Календаре с заголовком, содержащим команду для бота. Например, заголовок может выглядеть так: @20040 2+2. Здесь 20040 — это идентификатор бота, а 2+2 — команда, которую бот должен выполнить.

  2. Скрипт Google Apps Script: Скрипт периодически проверяет события в календаре. Если он находит событие с командой для бота, он отправляет запрос в API ProTalk с этой командой.

  3. Обработка ответа: После получения ответа от API ProTalk, скрипт обновляет описание события, добавляя результат выполнения команды.

  4. Пометка события как отработанного: Чтобы избежать повторного выполнения одной и той же команды, скрипт помечает событие как отработанное, добавляя специальный тег в описание.

Как настроить скрипт?

Шаг 1: Создание нового проекта в Google Apps Script

  1. Откройте Google Apps Script.

  2. Нажмите на кнопку «Новый проект».

Шаг 2: Вставка скрипта

Скопируйте и вставьте следующий код в редактор скриптов:

function processCalendarEvents() {   const calendar = CalendarApp.getDefaultCalendar();   const timeZone = Session.getScriptTimeZone(); // Получаем часовой пояс скрипта   const now = new Date();   const endTime = new Date(now.getTime() + 1 * 60 * 1000); // Проверяем события на следующую минуту    Logger.log(`Текущее время: ${Utilities.formatDate(now, timeZone, 'yyyy-MM-dd HH:mm:ss')}`);   Logger.log(`Конечное время: ${Utilities.formatDate(endTime, timeZone, 'yyyy-MM-dd HH:mm:ss')}`);    // Список ботов ProTalk   let bots = {     "20040": "YOUR_BOT_TOKEN" // Замените YOUR_BOT_TOKEN на ваш реальный токен бота ProTalk   };    const botPattern = new RegExp(`@(${Object.keys(bots).join('|')})`, 'i');    // Получаем все актуальные события   const events = calendar.getEvents(now, endTime);    Logger.log(`Найдено ${events.length} событий для обработки.`);    events.forEach(event => {     const title = event.getTitle();     const description = event.getDescription();     const eventStartTime = event.getStartTime();     Logger.log(`Обрабатываем событие: ${title}, Дата: ${Utilities.formatDate(eventStartTime, timeZone, 'yyyy-MM-dd HH:mm:ss')}, Описание: ${description}`);      if (title && title.match(botPattern) && !description.includes('[ОТРАБОТАНО]')) {       const botId = title.match(botPattern)[1];       console.info(botId)       if (bots[botId]) {         const originalText = title + '\n' + description;         console.info('originalText', originalText)         const botToken = bots[botId];          // Обновляем название события         event.setTitle(`@${botId} думает...`);          // Выполняем запрос         let lastResponse = "";         let allSuccess = true;         const chatId = "gc_" + Date.now();          try {           // Убираем @botId из команды           let mainCommand = originalText.replace(`@${botId}`, '').trim();            // Разделяем команду на части по ##           const messageParts = mainCommand.split('##').map(p => p.trim()).filter(p => p);            // Отправляем все части последовательно с одним chat_id           for (let i = 0; i < messageParts.length; i++) {             const part = messageParts[i];             const response = UrlFetchApp.fetch(`https://us1.api.pro-talk.ru/api/v1.0/ask/${botToken}`, {               method: "post",               contentType: "application/json",               payload: JSON.stringify({                 bot_id: botId,                 chat_id: chatId,                 message: part               }),               muteHttpExceptions: true             });              const responseData = JSON.parse(response.getContentText());             if (responseData.done) {               lastResponse = responseData.done;             } else {               lastResponse = "Ошибка: " + (responseData.error || "Неизвестная ошибка");               allSuccess = false;               break; // Прерываем цепочку при ошибке             }           }         } catch (e) {           lastResponse = "Ошибка выполнения: " + e;           allSuccess = false;         }          // Обновляем описание события и помечаем его как отработанное         if (allSuccess) {           event.setDescription(`✅ ${originalText}\n\n${lastResponse}\n\n[ОТРАБОТАНО]`);           event.setTitle(`✅ @${botId}`);         } else {           event.setDescription(`❌ ${originalText}\n\n${lastResponse}\n\n[ОТРАБОТАНО]`);           event.setTitle(`❌ @${botId}`);         }       }     }   });    Logger.log(`Обработано ${events.length} событий`); }

Шаг 3: Установка часового пояса

  1. В редакторе скриптов выберите функцию setTimeZoneToMoscow.

  2. Нажмите кнопку «Выполнить» (Run), чтобы установить часовой пояс Москвы.

Шаг 4: Установка триггера

  1. В редакторе скриптов выберите функцию createTimeDrivenTrigger.

  2. Нажмите кнопку «Выполнить» (Run), чтобы установить триггер, который будет запускать скрипт каждую минуту.

Как использовать скрипт?

  1. Создайте событие в Google Календаре: Укажите в заголовке события команду для бота. Например: @20040 2+2.

  2. Дождитесь выполнения скрипта: Скрипт будет автоматически проверять события каждую минуту. Когда он найдет событие с командой для бота, он отправит запрос в API ProTalk и обновит описание события с результатом выполнения команды.

Заключение

С помощью этого скрипта вы можете автоматизировать выполнение задач в Google Календаре, используя мощь ботов ProTalk. Это позволит вам сэкономить время и усилия, автоматизировав рутинные задачи. Просто скопируйте скрипт, замените токен бота на свой и настройте триггер — и вы готовы к работе!

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


ссылка на оригинал статьи https://habr.com/ru/articles/896664/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *