Reputation: 1
I have written a code wherein the script sends me a reminder via email. But the Calendar function is not working. Please guide me on this.
function checkReminder() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
SpreadsheetApp.setActiveSheet(spreadsheet.getSheets()[0]);
var sheet = spreadsheet.getActiveSheet();
var calendar = CalendarApp.getCalendarById('[email protected]');
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 protected]","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);
};
also, if I do not change the status to 'completed' in column D2 after the reminder date, an email should send to my brother.
Upvotes: 0
Views: 844
Reputation: 64082
This is the code I use to create events on my DailyEvents Calendar. eA is just an array. First Element is Event title, second is number of hours and then minutes for the rest.
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;
}
Upvotes: 0