Google, расширяем функционал

Давно уже всё моё поурочное планирование расположено в облаках Google. А именно в google таблице. Здесь реализуется возможность автоматического расчёта дат и времени проводимых занятий.
Пример
Но этого мне показалось мало - да, я могу открыть файл в любом веб-браузере, посмотреть планирование. Но ведь на это опять тратится много времени.
Было бы здорово связать два приложения Google - таблицы и календарь. Ведь календарь Google установлен практически на любом Android смартфоне. Под рукой (а точнее в руках) у преподавателя будет инструмент, с помощью которого он сможет "вспомнить" тему следующего урока, по ссылке перейти на документ с конспектом урока, по ссылке же выставить оценки ученикам. Так для себя, а не для широкой публики.
Да я знаю, везде и всюду внедрены электронные журналы, но ведь свой велосипед куда как быстрее ездит :).
В общем есть способ сделать всё вышеизложенное. Нужны скрипты Google. Расположены они в меню Инструменты->Редактор скриптов любого документа Google.
Если вставить следующий код в проект

function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('Скрипты')
.addItem('Сохранить в календарь', 'saveCal')
.addToUi();
}
function saveCal() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
var sheetname = sheet.getSheetName();
var calname = CalendarApp.getCalendarsByName(sheetname);
if (calname.length > 0) {
currentCalendar = CalendarApp.getCalendarsByName(sheetname)[0];
}
else {
var calendar = CalendarApp.createCalendar(sheetname);
currentCalendar = calendar;
}
for (var i = 0; i < data.length; i++) {

var events = currentCalendar.getEventsForDay(new Date(data[i][1]));

if (events[0] != undefined){
var desc = events[0].getDescription();
if (desc != data[i][4]){
events[0].deleteEvent();
var startData = new Date(data[i][5]);
var endData = new Date(data[i][6]);
event = currentCalendar.createEvent(data[i][0],startData,endData, {description: data[i][4]});
}
}
else {
var startData = new Date(data[i][5]);
var endData = new Date(data[i][6]);
event = currentCalendar.createEvent(data[i][0],startData,endData, {description: data[i][4]});

}
}
}

а затем сохранить, у нас появится возможность вызывать функцию saveCal через меню Скрипты->Сохранить в календарь, которое появится в документе после обновления страницы.
Добавление событий в календарь будет происходить если мы выдадим разрешение скрипту сделать это. Данный скрипт будет работать в таблицах в которых столбцы расположены так же как в примере.

Дело за малым - добавить в таблицу листы с другими классами, на смартфоне добавить календари (в настройках Календарь), которые будут называться точно также как листы в таблице.
Все кратко, простите. Если заинтересует публикация можно задать вопросы прямо здесь в комментариях, постараюсь ответить на все. ;)