Я уже много лет пользуюсь Гугл календарём и Гугл контактами и единственная вещь которая мне не нравится это отдельный календарь, который не отображает возраст, а показывает только сам факт дня рождения. Ещё в 2019 году я написал скрипт, который решает эту проблему, но прошло 3 года и с помощью одного из читателей Хабра мы добавили склонения слов на русском языке при обозначения возраста и ещё несколько технических функций.
А ещё обновили похожий скрипт для детей: это когда каждый месяц скрипт автоматически создаёт событие в Гугл календаре, в заголовке к которому указано сколько исполнилось годов и месяцев вашему малышу (работает с самого рождения, 0 лет), а в описании указан возраст (годы и месяцы) каждого из родителей. Я сам обычно не помню никакие даты и этот скрипт стал для меня настоящим спасением.
Что изменилось по сравнению с предыдущими версиями
1. Использование слов "лет" и "год".
1 -- год 2, 3, 4 -- года 5, 6, 7, 8, 9, 10, 11, 12, и все остальные "-надцать", а также 20 -- лет 21 -- год 22, 23, 24 -- года и т.д.
2. Понятные для новичков комментарии.
Даже если вы не особо разбираетесь в JavaScript, то по комментариям можно разобраться что и где надо править чтобы получить именно свою редакцию.
3. Добавлено логирование на Гугл диск в виде текстового файла.
Поскольку скрипт запускается один раз в месяц и в автоматическом режиме - всегда можно посмотреть текущий лог в течении месяца и понять что именно пошло не так, если, например, мероприятия не были созданы.
Отображение возраста контактов в Гугл календаре в день их рождения
Текущая редакция скрипта вставлена как фрагментов кода Gist GitHub. Чтобы удобно скопировать - нажмите кнопку view raw справа внизу:
Напоминалка о возрасте ребёнка
Текущая редакция скрипта вставлена как фрагментов кода Gist GitHub. Чтобы удобно скопировать - нажмите кнопку view raw справа внизу:
Как пользоваться?
Для того, чтобы воспользоваться скриптом создайте новый скрипт через меню. Если у вас нет в меню такого пункта «Google Apps Script», то там же надо нажать «Подключить другие приложения» и в поиске найти «Google Apps Script» и подключить, тогда пункт в меню появится:
Скопируйте туда содержимое одного из примеров, я буду копировать отображение возраста контактов в Гугл календаре на день их рождения :
Тестово запустите функцию birthdayAgeToCalendar()
:
Теперь вам надо дать все необходимые разрешения, чтобы скрипт мог выполнять свою работу:
Перейдите в дополнительные настройки и просмотрите все разрешения:
Приложение запрашивает следующие разрешения:
Просмотр, создание, изменение и удаление всех файлов на Google Диске.
Просмотр, изменение, скачивание и безвозвратное удаление ваших контактов.
Просмотр, изменение и безвозвратное удаление всех календарей, с которыми вы можете работать в Google Календаре, а также предоставление доступа к ним.
Работа приложения во время отсутствия пользователя.
Нажмите «Разрешить», для того, чтобы начать использовать скрипт. Вы в любое время можете посмотреть список выданных вами разрешений на специальной странице и в один клик их отозвать.
После получения разрешения появится окно журнала выполнения:
Что в итоге?
В календаре появится запись о дне рождении, но только если в ближайшем месяце у вас обозначены дни рождения хотя бы у одного человека.
Измените данные примера на свои собственные для возраста малыша
Для второго варианта кода после тестового запуска внесите свои даты в код и исправьте имена:
После этого выполните функцию TriggersCreateTimeDriven()
для того чтобы каждый раз 1го числа каждого месяца этот скрипт выполнялся автоматически, создавая событие в календаре на грядущий месяц.
После этого обязательно задайте offset
. Если день рождение ребёнка приходится на 9 число, то этот параметр равен 8. Этот параметр - сдвиг в расчётах нужен потому что все расчёты будут выполняться первого числа каждого месяца, а день рождения, например, 9 числа.
Вот и всё!
Вы справились!
Автоматические напоминалки созданы.
Актуальную версию всегда можно посмотреть на Гитхабе - empenoso/Google-Apps-Script.
Автор: Михаил Шардин,
18 августа 2022 г.