Задать вопрос

Как настроить уведомления о наступлении даты события в таблице Google Docs (Drive)?

Есть таблица в Google Docs (drive). В одном из столбцов содержится дата срока окончания определенного события.
Возможно ли сделать так, чтобы при наступлении этой даты автоматически отсылалось E-Mail или какое-либо другое уведомление, либо создавалось новое событие с напоминанием в Google Calendar?
В старых таблицах можно было в скриптах Add Reminder добавить. А теперь скрипы убрали... В Extension поискал reminder, notify, - ничего подобного не нашел...
  • Вопрос задан
  • 25804 просмотра
Подписаться 7 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
@dkarmazin
директор веб-студии
Тоже нужна такая функция.
Ответ написан
@n_shtain
1.Пример организации данных:
https://docs.google.com/spreadsheets/d/1Vx2P0pmdyW...
2.Скрипт который нужно поместить в "Код.gs" через меню Инструменты->Редактор скриптов:
function emailsend () //Отправляет e-mail при выполнении условия описанного в if
{
  var sovpadenieDat = in_array(reminder (), perebor_dat());
  if(sovpadenieDat > -1) 
  {
    MailApp.sendEmail(
                      "example@mail.ru",
                       perebor_dat()[in_array(reminder (), perebor_dat())] + " тебе нужно " + vozvrat_temy()[in_array(reminder (), perebor_dat())],                             
                      'Привет! Это напоминание про дело которм тебе нельзя забывать.'
                     )
  }
} 
 
function reminder ()  //Прибавляет к текущей дате 3 дня. Возвращается не дата, а строка но ее сравнение с содержимым массива perebor_dat() прокатывает
{
  var dates = new Date()
  var reminderMonth = dates.getMonth()+1;
  var reminderDate = dates.getDate() +3 ;
  var reminderYear = '2015';
  return reminderDate + "." + reminderMonth 	+ "." + reminderYear;
}

function perebor_dat() //Возвращает массив отформатированных значений содержащихся на текущем листе в диапазоне A2:Z2. Проблема с возвратом значений из ячеек AA2, AB2 так как цикл проходит только по алфавиту
{
  var kolonkaplus = [];
  for (var i=65; i<=90; i++)
  {
    kolonkaplus.push(Utilities.formatDate(new Date(SpreadsheetApp.getActiveSheet().getRange(String.fromCharCode(i)+'2').getValues()), "GMT+3", "d.M.yyyy"));
  }
  return kolonkaplus;
}

function vozvrat_temy() //Возвращает массив отформатированных значений содержащихся на текущем листе в диапазоне A1:Z1. Проблема с возвратом значений из ячеек AA1, AB1 так как цикл проходит только по алфавиту
{
  var kolonkaplus = [];
  for (var i=65; i<=90; i++)
  {
    kolonkaplus.push(SpreadsheetApp.getActiveSheet().getRange(String.fromCharCode(i)+'1').getValues());
  }
  return kolonkaplus;
}

function in_array(value, array) //Проверяет массив на наличие в нем значения
{
  for(var i = 0; i < array.length; i++) 
  {
    if(array[i] == value) return i;
  }
  return -1;
}

3. В редакторе скриптов нужно установить треггер текущего проекта на то время в которое вы хотите чтобы вам приходила напоминалка.
4. example@mail.ru вместо этого устанавливаете свою почту. var reminderDate = dates.getDate() +3 тройку меняете в зависимости от того за какой срок в сутках до даты события вам нужно отправлять напоминалку.

Обновления здесь: https://github.com/mc-sim/GoogleDocs_uvedomlenie_o...
PS: С гитхабом только начинаю разбираться.
Ответ написан
MakhmudovDamir
@MakhmudovDamir
Реализовать такую функцию можно с помощью Google Apps Script. Скрипт будет встроен в таблицу. Если еще нужно, могу помочь. Можем расширить функции вашей таблицы еще больше. Пишите samrukov@gmail.com
Ответ написан
Комментировать
@annaivanovna1979
не работает :(
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы