Если у вас есть маленькие дети, один или несколько, то возможно вам будет интересен этот скрипт, который ежемесячно создаёт событие в гугл календаре, в котором точно указан возраст ребенка, а также указаны значимые вехи из жизни родителей.
С этим скриптом вам не придётся помнить даты, а ещё вам придёт оповещение стандартными средствами гугл календаря. Вот результат работы этого скрипта:
![Созданное событие в Calendar with Google Созданное событие в Calendar with Google](https://habrastorage.org/getpro/habr/upload_files/0ab/a12/dde/0aba12ddeab4ba02a1c6dfa8d08e5a46.png)
Перед вами улучшенная версия моего скрипта, который впервые был опубликован ещё в 2019 году на гитхабе. Вот его текущая редакция:
Как пользоваться?
Для того, чтобы воспользоваться скриптом создайте новый скрипт через меню. Если у вас нет в меню такого пункта «Google Apps Script», то там же надо нажать «Подключить другие приложения» и в поиске найти «Google Apps Script» и подключить, тогда пункт в меню появится:
![Создание файла скрипта Создание файла скрипта](https://habrastorage.org/getpro/habr/upload_files/f4f/76b/f31/f4f76bf31a0240a1cd33ce8fa80e309e.png)
Скопируйте туда содержимое примера:
![Содержимое файла скрипта Содержимое файла скрипта](https://habrastorage.org/getpro/habr/upload_files/9a6/36f/beb/9a636fbeb21dcbe46dc6b17e4ff8f1cb.png)
Тестово запустите функцию AddCalendarCurrentAge()
:
![Тестовый запуск Тестовый запуск](https://habrastorage.org/getpro/habr/upload_files/447/c3b/c2e/447c3bc2ea1c3e26574d03535c3307ae.png)
Теперь вам надо дать все необходимые разрешения, чтобы скрипт мог выполнять свою работу:
![Окно авторизации при первом запуске Окно авторизации при первом запуске](https://habrastorage.org/getpro/habr/upload_files/b0a/a6d/7b1/b0aa6d7b1488fa5d42383b1c839da6ca.png)
Перейдите в дополнительные настройки и просмотрите все разрешения:
![Авторизация этого скрипта Авторизация этого скрипта](https://habrastorage.org/getpro/habr/upload_files/98c/a32/e8b/98ca32e8b7bf16ad97d2cee31486d7b5.png)
Приложение запрашивает следующие разрешения:
Просмотр, изменение и безвозвратное удаление всех календарей, с которыми вы можете работать в Google Календаре, а также предоставление доступа к ним
Подключение к внешнему сервису
Работа приложения во время отсутствия пользователя
Нажмите «Разрешить», для того, чтобы начать использовать скрипт. Вы в любое время можете посмотреть список выданных вами разрешений на специальной странице и в один клик их отозвать.
После получения разрешения появится окно журнала выполнения:
![Результат работы скрипта Результат работы скрипта](https://habrastorage.org/getpro/habr/upload_files/d86/780/37c/d8678037c853fbf7514cd6bd7f71959f.png)
Что в итоге?
В календаре появится созданная тестовая запись через 9 дней (это значение offset
) от текущей даты:
![Автоматически созданная запись Автоматически созданная запись](https://habrastorage.org/getpro/habr/upload_files/068/e9b/fb4/068e9bfb41d8607439a0ae4f9f763712.png)
Измените данные примера на свои собственные
После того, как всё заработало, просто внесите свои даты в код и исправьте имена:
![Изменение данных и имён Изменение данных и имён](https://habrastorage.org/getpro/habr/upload_files/c23/dcc/7c6/c23dcc7c69404816498f9fdd03c91703.png)
После этого выполните функцию TriggersCreateTimeDriven()
для того чтобы каждый раз 1го числа каждого месяца этот скрипт выполнялся автоматически, создавая событие в календаре на грядущий месяц:
![Автопостановка триггера на исполнение Автопостановка триггера на исполнение](https://habrastorage.org/getpro/habr/upload_files/de8/4fb/e44/de84fbe440f7909127373079acd81be6.png)
После этого обязательно задайте offset
. Если день рождение ребёнка приходится на 9 число, то этот параметр равен 9. Этот параметр - сдвиг в расчётах нужен потому что все расчёты будут выполняться первого числа каждого месяца, а день рождения, например, 9 числа:
![Задание сдвига - ведь скрипт будет работать 1го числа, а ДР может быть в любой день месяца Задание сдвига - ведь скрипт будет работать 1го числа, а ДР может быть в любой день месяца](https://habrastorage.org/getpro/habr/upload_files/525/d4c/fe3/525d4cfe3495326aa38f1c44b6e41285.png)
Вот и всё! Автоматическая напоминалка создана.
Автор: Михаил Шардин,
18 января 2022 г.
Комментарии (9)
benipaz
18.01.2022 11:04+2скрипт интересный, но...
в гугле в контактах есть поля день рождения, свадьба и т.п. при этом автоматом создается календарь "дни рождения" (у меня интерфейс на английском, поэтому могу перевести не точно), где все эти даты показываются.
empenoso Автор
18.01.2022 11:45+1Да, создается, но конечного возраста вы там не увидите. Только сам факт, что день рождения в определённый день.
benipaz
18.01.2022 12:01+1да, это минус, с которым и я столкнулся. если очень надо знать возраст, то добавляю год рождения.
empenoso Автор
18.01.2022 14:48+2Вообще для себя я эту проблему уже решил: Дни рождения в Google Календаре с обозначением возраста (другая моя статья).
Svibrager
18.01.2022 11:15+2Это просто праздник какой-то! Кроме Офисного пакета, поддерживающего VBA, мало где можно встретить такую заботу о пользователе.
Но гугл календарями страшновато пользоваться после того инцидента с добавлением сторонниими пользователями событий в чужие календари.
empenoso Автор
18.01.2022 11:27Одно время действительно было засилье спама, но последнее время вроде не было
sarhome
Если два ребенка, я все правильно сделал?
empenoso Автор
С компьютера посмотрю.
empenoso Автор
title
только одно может быть - надо объединить.