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

Однако если вы скопируете все записи календаря в электронную таблицу Google, вы сможете легко их отформатировать и даже при необходимости выполнить анализ. Но календарные данные останутся неизменными.

Самый простой способ перенести все записи из выбранного Календаря Google на доску — использовать скрипт Google.

ТЛ;ДР
// 

function eventstospreadsheet() {
    //var cal = CalendarApp.getDefaultCalendar()
    var cal = CalendarApp.getCalendarById('[email protected]')
    var sheet = SpreadsheetApp.getActiveSheet()
    var values = [
        ["№ п/п", "Дата", "Имя", "Адрес", "Описание"]
    ]

    var events = cal.getEvents(new Date("1 January 1998"), new Date())

    for (var i = 0; i < events.length; i++) {
        values.push([i + 1, events[i].getStartTime(), events[i].getTitle(), events[i].getLocation(), events[i].getDescription()]) //.substring(0, 500)
    }

    Logger.log( JSON.stringify(values) )

    sheet.getRange("A1:E" + values.length).setValues(values)
}

1. Определите желаемый идентификатор календаря

Для начала вам нужно найти ID нужного календаря, так как их может быть несколько — для этого создайте пустую таблицу Google и вставьте в нее код Google Apps Script:

  1. Открыть Google Диск. Идти к Гугл Диск и войдите в свою учетную запись Google.

  2. Создать новую таблицу. Нажмите кнопку «+ Новый» в левом верхнем углу. Выберите Google Таблицы в раскрывающемся меню.

  3. Откройте редактор скриптов:
    – Открыв новую таблицу, перейдите в меню «Расширения».
    – В раскрывающемся списке выберите «Скрипт приложений».

  4. Вставьте скрипт для определения нужного идентификатора календаря:

// 

function getCalendars() { //получить список идентификаторов всех доступных календарей
    var calendars = CalendarApp.getAllCalendars();
    Logger.log('Этот пользователь подписан на %s календарей:', calendars.length);
    for (var i = 0; i < calendars.length; i++) {
        var calendar = calendars[i];
        Logger.log((i + 1) + 'й календарь: "' + calendar.getName() + '",\n ID: "' + calendar.getId() + '"\n');
    }
}

После этого сохраните скрипт и авторизуйте его – после запуска функции нажмите «Разрешить». getCalendarsдля того, чтобы начать использовать скрипт.

ЧИТАТЬ   В ДНР заявили о выводе сил ВСУ для нанесения удара в направлении Донецка

Вы можете просмотреть список выданных вами в любое время разрешения на специальной странице и вызвать их в один клик.

После запуска скрипта вы сможете узнать подписки на все ваши календари и необходимый идентификатор:

Найдите идентификатор календаря

Требуемый идентификатор календаря выглядит следующим образом (на скриншоте не показано):
[email protected]

2. Вставьте скрипт для копирования всех записей календаря в код Google Таблиц.

Как только идентификатор найден на шаге выше, мы вставляем код в редактор скриптов, который перенесет все записи для каждого события календаря в таблицу.

Идентификатор, указанный в коде [email protected], следует заменить на ваш, найденный на предыдущем шаге. И дата 1 January 1998 можно заменить на любую другую дату начала поиска событий календаря.

// 

function eventstospreadsheet() {
    //var cal = CalendarApp.getDefaultCalendar()
    var cal = CalendarApp.getCalendarById('[email protected]')
    var sheet = SpreadsheetApp.getActiveSheet()
    var values = [
        ["№ п/п", "Дата", "Имя", "Адрес", "Описание"]
    ]

    var events = cal.getEvents(new Date("1 January 1998"), new Date())

    for (var i = 0; i < events.length; i++) {
        values.push([i + 1, events[i].getStartTime(), events[i].getTitle(), events[i].getLocation(), events[i].getDescription()]) //.substring(0, 500)
    }

    Logger.log( JSON.stringify(values) )

    sheet.getRange("A1:E" + values.length).setValues(values)
}

Запуск кода не меняет расписание — он не удаляет и не модифицирует записи, а просто последовательно считывает информацию о каждой из записей.

3. Перенесите все записи из выбранного Календаря Google в электронную таблицу Google менее чем за минуту.

Функция eventstospreadsheet теперь можно запускать вручную из редактора скриптов. Для этого:

  1. Откройте Google Таблицу.

  2. Нажмите «Расширения» в строке меню.

  3. В раскрывающемся меню выберите «Скрипт приложений». Откроется редактор сценариев.

  4. В редакторе скриптов выберите функцию eventstospreadsheet который следует запустить, из выпадающего списка рядом с кнопкой воспроизведения (▶️).

  5. Нажмите кнопку «Воспроизведение» (▶️), чтобы запустить выбранную функцию.

Результат чтения данных календаря и создания копии в электронной таблице Google.

Результат чтения данных календаря и создания копии в электронной таблице Google.

Полученные результаты

В этой статье демонстрируется код сценария Google Apps, который использует службы Календаря Google и Google Таблиц для экспорта событий календаря в таблицу. С помощью кода вы сможете менее чем за минуту перенести все записи из выбранного календаря Google в таблицу, а затем удобно отформатировать ее или выполнить аналитику.

ЧИТАТЬ   Женщины, занявшие 6 из 10 верхних позиций в чарте альбомов Billboard.

Автор: Михаил Шардин,

30 апреля 2024 г.

Source

От admin