Отправка напоминания по электронной почте и календаря из листов Google - PullRequest
0 голосов
/ 27 февраля 2019

Данные Google Sheets

Я написал код, в котором скрипт отправляет мне напоминание по электронной почте.Но функция Календарь не работает.Пожалуйста, ознакомьте меня с этим.

function checkReminder() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);
var sheet = spreadsheet.getActiveSheet();
var calendar = CalendarApp.getCalendarById('email@email.com');
var lastRow = sheet.getLastRow();
var startRow = 2;

var range = sheet.getRange(2,3,lastRow-startRow+1,1 );
var numRows = range.getNumRows();

var days_left_values = range.getValues();
var range = sheet.getRange(2,1,lastRow-startRow+1, 1);
var reminder_info_values = range.getValues();
var warning_count = 0;
var msg = "";

for (var i = 0; i <= numRows - 1; i++) {
var days_left = days_left_values[i][0];
if(days_left <= 3) {
  var reminder_name = reminder_info_values[i][0];

  msg = msg + "Reminder: "+reminder_name+" is due in "+days_left+" days.\n";
  warning_count++;
}
}

  if(warning_count) {
MailApp.sendEmail("email@email.com","Reminder email", msg);
calendar.createEvent(reminder_name, new Date('March 3, 2019 09:00:00 IST'), new Date('March 3, 2019 10:00:00 IST'));
}
Logger.log(msg);   
};

также, если я не изменю статус на «завершено» в столбце D2 после даты напоминания, электронное письмо следует отправить моему брату.

1 Ответ

0 голосов
/ 28 февраля 2019

Это код, который я использую для создания событий в календаре DailyEvents.ЕА это просто массив.Первый элемент - это название события, второй - количество часов, а затем минуты для отдыха.

function createEventWithReminders(eA)
{
  var minute=60*1000;
  var hour=60*minute;
  var cal=CalendarApp.getCalendarById(getGlobal('DailyEventsId'));
  var now=new Date();
  var startValue=now.valueOf() + (Number(eA[1]) * hour ) + (Number(eA[2]) * minute);
  var start=new Date(startValue);
  var endValue=start.valueOf() + (10 * minute);  
  var end=new Date(endValue);
  var event=cal.createEvent(eA[0], start, end);
  if(eA.length>3)
  {
    for(var i=3;i<eA.length;i++)
    {
      event.addEmailReminder(eA[i]);
    }
  }
  else
  {
    event.addEmailReminder(0);
    event.addEmailReminder(15);
    event.addEmailReminder(30);
  }
  return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...