Настраиваем календарь в Гугл Таблицах
Хотите сами сделать календарь в Гугл Таблицах, но не знаете, с чего начать? Мы поможем! Выбрали самые простые и самые интересные варианты – изучите их все, а потом решите, на чем остановите свой выбор!
Шаблон
Мы начнем с самого простого ответа на вопрос, как создать календарь в Google Таблицах! Вы можете воспользоваться готовым шаблоном, который заботливо загрузили для вас разработчики сервиса.
Как это сделать? Нет ничего проще:
- Открывайте главную страницу сервиса;
- Вы увидите недавно открытые файлы и меню создания нового документа;
- Ищем наверху справа иконку «Галерея шаблонов» , нажимаем на нее.

В блоке «Личное» вы увидите сразу несколько доступных вариантов! К сожалению, календаря на 2022 в Гугл Таблицах нет, но есть два варианта на 2019 и 2020. Вдруг они вам пригодятся?

Что интересно: вы сами можете менять оформление каждого листа. Жаль, что переставлять даты вручную будет довольно сложно.
Если вам не нужен устаревший календарь в Гугл Таблицах, шаблон на 2022 год можно сделать самостоятельно! Это потребует некоторых усилий, но они окупятся сторицей.
Делаем вручную
А теперь о том, как сделать календарь в Гугл Таблице своими силами. Мы предложим вам самый простой вариант. А вы (в процессе) сможете дополнить его улучшениями, персонализировать.
Мы сделаем динамическую версию, позволяющую вставить календарь в ячейку Гугл Таблицы. Поэтому сначала пройдем подготовительный этап.
- Откройте новый документ или разверните уже существующий;

- Создайте новый лист (на нижней панели вы найдете иконку в виде +);

- Дайте ему подходящее название. Теперь начинаем работать!
На этом листе будет располагаться «техническая» информация для настройки календаря в ячейке Гугл Таблицы.
- В столбце А (начиная с самой первой ячейки) нужно прописать названия всех месяцев года;
- У вас должны быть заполнены строки с первой по двенадцатую (январь, февраль и так далее. Заканчивается все декабрем).

Чтобы сделать выпадающий календарь в Гугл Таблицах, нужно добавить даты. Ведь мы же не можем ориентироваться только на названия месяцев?
- Щелкните правой кнопкой мышки по ячейке «Январь» и выберите в самом конце раздел «Показать другие действия…» ;

- В открывшемся меню ищем вкладку «Настроить проверку данных» .

Появится новое окно, где мы и будем производить настройку. Диапазон ячеек мы не трогаем, сразу переходим к разделу «Правила» :
- Нажимаем на выпадающий список и выбираем параметр «Дата» ;

- Больше ничего не меняем, жмем на кнопку «Сохранить» .
Теперь возвращаемся к нашему листу и начинаем заполнять даты. Вручную ничего делать не придется, не бойтесь. Для календаря в Гугл Таблицах есть специальные формулы.
- Ставим курсор на ячейку В1 (напротив января) и два раза щелкаем ЛКМ;
- Появится календарик – жмем на первое число;

- Ячейка заполнится соответствующей датой. Это первое января текущего года;
- Теперь опускаемся ниже, к клетке В2 (напротив февраля);
- В поле fx вписываем формулу =КОНМЕСЯЦА(B1;0)+1;

- После этого выделяем ячейку В2 и тянем за синий маркер вниз, до последнего месяца.

Что должно получиться? Если вы все сделали правильно, напротив каждого месяца появится первое число текущего года. Все так, как нужно? Тогда можем продолжать.

Переходим к листу, в котором будем работать (подготовительный этап закончен).
- Нажимаем на ячейку, в которой будут отображаться месяцы;
- Жмем правой кнопкой мышки – и выбираем «Показать другие действия» ;

- Далее кликаем «Настроить проверку данных» ;

- Ищем в открывшемся окне правило «Значение из диапазона» ;
- Чтобы указать диапазон, жмем на четыре квадратика справа.

Теперь нам просто нужно выбрать тот самый лист, который мы предварительно заполнили – а иначе, как вставить календарь в Гугл Таблицу?
- На этом листе выделяем курсором перечень месяцев;
- Жмем на кнопку «ОК» ;
- Затем сохраняем изменения в окне с правилами.

Почти закончили! Теперь по щелчку мышки в этой ячейке будет появляться раскрывающийся список с месяцами.
Заканчиваем? Перейдем к клеточке, в которой будут отображаться даты:
- Вставляем в поле fx формулу =FILTER(‘лист1’!B:B; ‘лист1′!’A:A=A1’);

- Жмем на кнопку ввода.
Вместо «Лист1» вам нужно ввести название того листа, где вы составили простенькую табличку (на подготовительном этапе).
- Теперь переходим к следующей ячейке и продолжим заполнять ее датами;
- Вставим формулу =B1+1;

- Теперь выделяем клетку щелчком мышки, хватаем синий маркер;
- Тянем настолько, сколько чисел в месяце.

Растянули до 31 числа? Вот и все! Ваш динамический инструмент готов.
А напоследок отметим, что дополнительно вставлять Гугл Календарь в Гугл Таблицы не нужно. Эти инструменты уже интегрированы друг в друга – соответствующий значок вы найдете справа на вертикальной панели. Главное условие, пользоваться одной уче ной записью для работы в этих сервисах.
Рассказали вам, как добавить календарь в Гугл Таблицу и сделать его самостоятельно. Если у вас появятся крутые идеи по созданию собственного проекта – делитесь ими в комментариях! Уверены, многие оценят вашу помощь.
Синхронизация Гугл Таблицы с Гугл Календарем
У офисных работников, работающих с Таблицами и Календарем на платформе Google Disk рано или поздно возникает насущная потребность синхронизировать эти два сервиса. Ниже в виде инструкции (а еще ниже в виде инфографики) дается типичный вариант такого решения.
Задача: Есть Гугл Таблица с днями рождения партнеров. Надо сделать так, чтобы мы могли автоматически в Гугл Календаре иметь напоминания об этих днях рождения с извещением на электронную почту владельца Календаря, т.е. на наш e-mail.
Решение: 1) Создаем таблицу дней рождения в Гугл Таблицах; 2) Пишем скрипт на языке Google Apps Script, который считывает таблицу и ретранслирует ее строки в Гугл Календарь в виде напоминаний; 3) Рисуем кнопку в интерфейсе Таблиц и задаем ей связь со скриптом; 4) Запускаем скрипт этой кнопкой.
СОЗДАЕМ ТАБЛИЦУ
Создаем таблицу по шаблону: Имя | Фамилия | Дата рождения. Первая строка – заголовок. Именно на такой шаблон рассчитан скрипт ниже. При изменении шаблона потребуется некоторая корректировка скрипта.
ПИШЕМ СКРИПТ
В Таблице с нашим расписанием дней рождения через меню Tools > Script Editor зайти в редактор скриптов. Написать код:
Сохранить код по кнопке [Save] (изображение дискеты).
Код можно просто методом копирования перенести в редактор.
Некоторые пояснения:
- В первой строке фигурирует имя функции – DR – его можно изменить на другое. Его нужно запомнить, пригодится ниже.
- Создается новый календарь с именем «Личный_календарь».
- Если календарь с таким именем уже был, то он очищается от всех напоминаний с начала 2019 года по 2030 год.
- Согласно расписанию дней рождения в Таблице на дни, даты которых фигурируют в третьем столбце, в «Личный_Календарь» выставляются напоминания с email-уведомлением.
Желтым в коде подсвечены те участки, которые должны будут подвергнуться ревизии при изменении формата таблицы, заложенного в постановке задачи:
i = 1 Единица соответствует второй строке, т.к. в программировании счет начинается с нуля. Т.е., если у вас заголовок будет занимать две строки, то 1 надо будет заменить на 2. data[i][0] Это имя. data[i][1] Это фамилия. data[i][2] Это дата рождения. Т.е., если вы изменяете формат и вводите вторым столбцом отчество, сдвигая фамилию и дату вправо, то в коде на месте data[i][2] должно стоять data[i][3], а отчество в виде data[i][1] вставьте после имени, а именно data[i][0] замените на data[i][0]+” ”+data[i][1]. И прежнюю переменную data[i][1], отвечавшую за фамилию, измените на data[i][2].
Таким образом, актуализировать расписание Календаря можно в любое время нажатием на кнопку [ДР]. Прежнее содержание календаря «Личный_Календарь» будет полностью заменяться на расписание, которое присутствует в Таблице.
РИСУЕМ КНОПКУ ДЛЯ СКРИПТА
Для запуска скрипта из интерфейса Таблицы в ней создадим кнопку:
- В меню выбрать: Insert > Drawing.
- Выбрать инструмент Shape.
- Нарисовать фигуру, которая вам нравится. Можно задать на фигуре текст, например, «ДР».
- Сохранить по кнопке [Save and Close].
- В Таблице на появившейся кнопке нажать на три вертикальные точки – это меню кнопки.
- Выбрать пункт Assign Script.
- Выбрать имя функции «DR» (без кавычек и без скобок)
- Сохранить [Ok].
Теперь связь кнопки и скрипта организована.
Потом, при желании изменить имя функции у кнопки, или отредактировать ее дизайн, или удалить, надо нажать на эту кнопку правой кнопкой мыши, чтобы увидеть заветные три вертикальные точки.
ЗАПУСКАЕМ СКРИПТ
- Нажать на созданную кнопку [ДР].
- Если это первый запуск, то Google запросит разрешение на выполнения скрипта. Дать это согласие.
- После выполнения скрипта зайти в Google Календарь.
- Увидеть слева «Личный_Календарь» в списке календарей. Но назначенных событий пока не видно в ячейках дней.
- Переключить галочку «Личный_Календарь» в списке календарей. События появятся.
ИНФОГРАФИКА
Специально для визуалов ниже изображено то, что написано выше:

ВАРИАНТЫ ВЫЗОВА ФУНКЦИИ
Скрипт состоит из функций, часто независимых друг от друга. Вызвать функцию на исполнение можно из другой функции, а также независимо, и Гугл предоставляет 4 варианта такого независимого вызова:
Импорт событий в календарь
Часто обновляете календарь?
Планируете много мероприятий, которые повторяются из недели в неделю, из месяца в месяц?
Это отнимает много времени.
Вам поможет импорт событий в календарь из таблицы Google.
Здесь вы узнаете, как облегчить эту работу. Перед тем, как производить импорт событий в календарь, необходимо подготовить исходную таблицу.
1. Заполняем таблицу деталями
В таблицу поместите детали мероприятий (событий, events). Можно создать строки с разными типами событий, а затем их скопировать и отредактировать. Это сильно ускорит процесс.

Детали событий введите в ячейки A7:F.
Не оставляйте пустых строк между шапкой и строками с вашими данными!
Обратите внимание на даты: не забудьте указать время начала и окончания события.
2. Идентификатор календаря
Идентификатор календаря поместите в ячейку E3. Найти его просто:
- откройте календарь,
- в списке календарей нажмите на 3 точки справа от нужного календаря,
- выберите Настройки и общий доступ,
- затем Интеграция календаря.
3. Установка дополнения
Установите дополнение Good Events Planner *.
4. Импорт событий в календарь
В меню Дополнения выберите CreateEvents и Send.
* Этот пункт можно пропустить.

Также можно нажать на кнопку В КАЛЕНДАРЬ! (см. Часть 2 и 3, теперь не кнопка, а пункт в меню)
Дайте все необходимые разрешения. Это делается только раз при первом запуске.
В календаре появились запланированные события. При необходимости можно что-то добавить или поправить вручную.

Для любителей смотреть — видео
Я сделал шаблон, который вы можете использовать.
Сделайте копию таблицы (меню Файл > Создать копию), замените данные в шаблоне на свои и вперёд!
Загляните в меню Файл/Настройки таблицы/Часовой пояс. Если ваш часовой пояс отличается от московского, выберите свой.
Изучите таблицы Гугл за 5 часов в онлайн-курсе!
Здесь можно посмотреть Учебный план.
Как сделать календарь в гугл таблице

- Ігор Білецький
- 10.12.2021
- 2 комментария
Гугл календарь — довольно удобная штука, с помощью которой можно планировать события не только для своих нужд. Например, можно создать отдельный календарь для своей компании и вносить туда все запланированные действия. Если к календарю предоставить доступ всем сотрудникам, то больше шансов не пропустить важное для компании событие.
Еще круче то, что все действия можно делать не заходя в сам гугл календарь, а собирая нужную информацию в гугл таблице. Затем скриптом вся информация переносится в гугл календарь автоматически.
С другой стороны, с помощью скрипта можно получать запланированные события и затем совершать те или иные действия в зависимости от назначения события, его важности и прочих моментов.
В данной статье разберем, как работать с гугл календарем с помощью скриптов в гугл таблице.
Мы можем работать как с основным календарем, что создается автоматически для нашей учетной записи гугл, так и создавать дополнительные календари.
Создать дополнительный календарь можно как и в ручном режиме, так и с помощью скрипта.
let calendar = CalendarApp.createCalendar("Мой рабочий календарь");
Данным скриптом мы создаем новый календарь с именем «Мой рабочий календарь» и присваиваем его переменной calendar, чтобы потом можно было с ним удобно работать.
Например, мы можем установить для нашего календаря часовой пояс или получить его идентификатор.
calendar.setTimeZone('Europe/Kiev'); //устанавливаем часовой пояс let calendarID = calendar.getId(); //получаем идентификатор
В данном случае мы использовали вариант, когда только создали календарь. Однако, как правило, календарь уже создан и нам необходимо его получить (присвоить объект календарь переменной), чтобы в дальнейшем мы могли работать с ним.
Получить календарь можно по идентификатору или по имени.
let calendar = CalendarApp.getCalendarsByName("Мой рабочий календарь")[0]; let calendar = CalendarApp.getCalendarById('lo12qwertydmf41u5qhas@group.calendar.google.com');
В первом случаем мы для получения календаря и сохранения его в переменную используем имя календаря, во втором — его идентификатор.
Обратите внимание, что при обращении к календарю по имени мы получаем некий объект из которого берем первый элемент (с индексом 0).
Имя календаря также можно увидеть в списке доступных вам календарей, а идентификатор — скопировать из настроек календаря в разделе «Интеграция календаря».
В заключение этого блока хочу добавить, что вы можете получить список всех ваших календарей с помощью метода getAllOwnedCalendars.
let calendars = CalendarApp.getAllOwnedCalendars(); for (let i = 0; i
Данным скриптом мы получаем массив calendars со всеми календарями и в цикле выводим в консоль поочередно имя календаря и его идентификатор через запятую.
Теперь разберемся с событиями, поскольку нет смысла в календарях, если не использовать возможность создавать (планировать) события и получать напоминания о предстоящих (запланированных) событиях.
Добавить свое событие в календарь.
Для добавления нового события будем использовать метод createEvent (создать событие). Данный метод использует в качестве параметров title, startTime, endTime и options (при необходимости).
let dateStart = dataSheet.getRange("D6").getValue(); //дата начала события (28.11.2021 07:00:00) let dateEnd = dataSheet.getRange("E6").getValue(); //дата окончания события (28.11.2021 08:00:00) calendar.createEvent("Тестовое событие",dateStart,dateEnd);
Данным скриптом мы создадим новое событие с названием «Тестовое событие», которое начнется 28 ноября в 7 часов и окончится через 1 час (8 часов утра).
Обратите внимание, что при создании события мы не использовали параметр options. С помощью него мы можем задать описание события, место проведения, а также список адресов электронной почты, разделенных запятыми, которые следует добавить в качестве гостей и следует ли отправлять приглашения по электронной почте (по умолчанию: нет).
Теперь давайте реализуем более интересную задачу — используя заранее подготовленную таблицу, создадим несколько мероприятий.

Приведу пример исходных данных — таблицы запланированных событий, которые необходимо внести в наш календарь.
Теперь пример функции, которая выполнит загрузку данных в наш календарь
function inputEvents() < let calendar = CalendarApp.getCalendarById('lo12qwertydmf41u5qhas@group.calendar.google.com'); //получаем календарь let dataSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //берем активный лист (с данными для календаря) let arrData = dataSheet.getRange("A2:E" + dataSheet.getLastRow()).getValues(); //считываем данные в массив // проходим по нашим данным и создаем для каждой строки новое событие в календаре for (let i = 0; i < arrData.length; i++) < calendar.createEvent(arrData[i][0], arrData[i][3], arrData[i][4], ); > >
Обратите внимание, что теперь мы использовали options — объект, с помощью которого в метод создания нового события (createEvent) передали место проведения события (location) и описание события (description).

В результате отработки скрипта у нас в календаре создались запланированные события:
Получить список запланированных событий
Чтобы получить событие, будем использовать метод getEvents. Данный метод использует несколько параметров. Мы в рамках статьи рассмотрим простейший вариант — начало и окончание событий (startTime, endTime).
Итак, чтобы получить список событий за определенный период, воспользуемся строкой
let arrEvents = calendar.getEvents(dataStart, dataFinish);
В результате в переменной arrEvents получим список событий за указанный период.
Давайте реализуем данный пример на практике — выведем в таблицу список всех запланированных мероприятий за заданный пользователем период.

Скрин таблицы, куда будем выводить данные (перед работой скрипта):
Код функции, с помощью которой будем получать запланированный события:
function outputEvents() < let calendar = CalendarApp.getCalendarById('lod15q4elo930dmf41u544qhas@group.calendar.google.com'); //получаем объект календарь let dataSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //получаем текущий (активный) лист let dataStart = dataSheet.getRange("B1").getValue(); //берем дату начала событий let dataFinish = dataSheet.getRange("B2").getValue(); //берем дату окончания событий let arrEvents = calendar.getEvents(dataStart, dataFinish); //получаем события за указанный период //выводим события в таблице на листе for (let i = 0; i < arrEvents.length; i++) < dataSheet.getRange(5+i, 1).setValue(arrEvents[i].getTitle()); //название dataSheet.getRange(5+i, 2).setValue(arrEvents[i].getDescription()); //описание dataSheet.getRange(5+i, 3).setValue(arrEvents[i].getLocation()); //место dataSheet.getRange(5+i, 4).setValue(arrEvents[i].getStartTime()); //начало dataSheet.getRange(5+i, 5).setValue(arrEvents[i].getEndTime()); //окончание >>

И, собственно результат работы скрипта:
Как можно увидеть, скрипт берет информацию о начале и окончании событий из определенных ячеек (B1,B2) и выводит полученные в результате запроса данные в таблицу на свои места.
Запуск скрипта я повесил на клик по рисунку кнопки (как вариант).
Добавлю, что получив в переменную конкретное событие, вы можете его редактировать, например, продлить его, поменять цвет отображения на календаре, удалить и прочее. Более подробное описание различных методов вместе с примерами можно прочитать в официальной документации гугл о работе с классом Calendar.
На этом собственно можно заканчивать краткое описание о том, как можно использовать инструмент гугл календарь с помощью скриптов.
В заключении статьи поделюсь одной фишкой, которая может расширить ваши возможности в работе с календарем используя гугл скрипты.
Речь пойдет о так называемых тегах (методы setTag, getTag, deleteTag), которые можно использовать при работе с событиями.
Работа с тегами доступна только с помощью скриптов. Это значит, что просто посмотреть (тем более добавить, редактировать и пр.) теги для конкретного события в календаре не получиться.
Вначале кратко разберем, как добавить, получить и удалить тег для события, а затем я поделюсь парочкой готовых скриптов.
Предположим, что у нас в переменной event лежит наше событие, полученное одним из доступных способов.
Добавить тег:
event.setTag("доступ", "Только администраторы");
Замечу, что тег добавляется как пара «ключ-значение». В нашем скрипте мы для нашего события добавляем новый тег с именем «доступ», который имеет значение «Только администраторы».
Теперь, чтобы прочитать значение тега по имени «доступ», следует использовать:
let myVar = event.getTag("доступ");
В результате в переменной myVar получим значение «Только администраторы» — значение, которое мы ранее присвоили тегу с именем «доступ».
Соответственно, чтобы изменить существующий тег, необходимо знать его имя:
event.setTag("доступ", "Сотрудники отдела Х");
Теперь тег по имени «доступ» будет иметь новое значение «Сотрудники отдела Х».
Удалить определенный тег:
event.deleteTag("доступ");
На практике, если вы работаете с различными событиями, в т.ч. и с событиями, которые могут называться одинаково (например, «подготовить материалы для клиента»), вы можете использовать различные теги, затем в зависимости от значения тега, предпринимать те или иные действия.
Как и обещал, напоследок приведу несколько примеров работы с тегами.
//если есть определенный тег - делаем определенные действия let res = event.getTag("напомнить"); //пытаемся получить значение тега if (res != null) < //есть такой тег, т.к. получено значение event.addPopupReminder(Number(res)); //добавляем всплывающее напоминание (за сколько времени напомнить) >
Расшифровывать скрипт особо нечего. Если полученное событие содержит тег с именем «напомнить» и значением, за сколько времени собственно нужно напомнить, то мы к событию добавляем напоминание в виде всплывающего сообщения в календаре.
На практике можно реализовывать любые действия, какие возможно реализовать с помощью скриптов.
Еще пример. Реализуем пакетное добавление нескольких тегов к событию. Т.е., у вас к примеру есть некий объект, содержащий несколько пар тегов (ключ-значение) и вам необходимо ко всем событиям за определенный период добавить эти теги.
Как получить список событий за определенный период, описано выше. Поэтому я просто приведу часть кода, который собственно добавляет все заранее созданные теги в событие (для понимания — вы перебираете все события в массиве с помощью цикла и поочередно производите над ними определенные действия).
Вначале представим, что где-то ранее вы определили ваш список тегов (я использую объект Map):
let myTags = new Map(); myTags.set("доступ", "Сотрудники отдела"); myTags.set("напомнить", 30); myTags.set("приоритет", 5);
Как видим, у нас есть три пары «ключ-значение», по которым мы будем создавать наши теги.
Теперь представим, что мы получили список нужных нам событий и теперь перебираем их все в цикле, чтобы в каждое из них добавить наши теги. Определим, что на каждой из итераций цикла у нас в переменной event лежит текущее событие.
myTags.forEach((value, key) => < event.setTag(key, value); >);
Мы перебираем все элементы с помощью цикла forEach и для текущего события добавляем заранее приготовленные теги (key-ключ, value-значение).
В нашем примере для каждого события из списка будем добавлено по три тега.
Статья будет дополняться по мере поступления новых материалов, так что сохраните ссылочку
Также рекомендую к прочтению обзорную статью с различными наработками, готовыми решениями и скриптами.
Кстати, если наш сайт принес вам пользу и вы хотите сказать нам «Спасибо» и поддержать нас , то это можно сделать ЗДЕСЬ.
До скорых встреч!
Рекомендую почитать:
- «10 бирж фриланса и удаленной работы для новичков и профи: список и рекомендации по заработку»
- «Бесплатная мультиссылка за 5 минут для Инстаграм, Тик Ток и др.»
- «Скачать футажи, видео, видеошаблоны, презентации, графику и т.д.: цифровые ресурсы без ограничений»