Настройка синхронизации google calendar с web приложением
В данной статье рассматривается ситуация, когда приложению необходимо получить доступ к одному или нескольким календарям, находящимся под управлением владельца приложения (то есть у приложения изначально есть права на использование и изменение информации в этих календарях).
Пример кода приведен на языке программирования Python.
В первую очередь в Google Cloud Platform Console нужно создать проект:

Далее рядом с логотипом google выбираем созданный проект:

Поскольку работать приложение будет с google calendar, необходимо проекту подключить Google Calendar API. Переходим в Библиотеку:

Находим Google Calendar API и нажимаем Включить:

Для получения бессрочного доступа к google calendar необходимо создать сервисный аккаунт. Для этого переходим в Учетные данные, Создать учетные данные и выбираем Сервисный аккаунт:

Выбираем имя для аккаунта и нажимаем Создать:

Затем пропускаем необязательные настройки и возвращаемся на вкладку Учетные данные.
Далее нужно перейти в сведения о сервисном аккаунте, нажав на имя аккаунта, и создать ключ:

Необходимо выбрать формат файла ключа JSON и на ПК будет загружен файл, который в дальнейшем будет считываться программой для получения доступа к сервисному аккаунту.
После переходим в календарь, к которому необходимо предоставить доступ приложению, заходим в его настройки:

Далее нажимаем Добавить пользователя, вставляем имя сервисного аккаунта и внимательно выбираем разрешения (в зависимости от функционала приложения):

Теперь переходим к коду приложения.
Устанавливаем следующие библиотеки:
pip install --upgrade google-api-python-client pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
После запускаем следующий код:
from __future__ import print_function import datetime import googleapiclient from google.oauth2 import service_account from googleapiclient.discovery import build SCOPES = ['https://www.googleapis.com/auth/calendar'] calendarId = 'lp285psodk309lilp73d9irek8@group.calendar.google.com' SERVICE_ACCOUNT_FILE = 'light-reality-285313-acdf4768fc46.json' class GoogleCalendar(object): def __init__(self): credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES) self.service = googleapiclient.discovery.build('calendar', 'v3', credentials=credentials) # создание словаря с информацией о событии def create_event_dict(self): event = < 'summary': 'test event', 'description': 'some info', 'start': < 'dateTime': '2020-08-03T03:00:00+03:00', >, 'end': < 'dateTime': '2020-08-03T05:30:00+03:00', >> return event # создание события в календаре def create_event(self, event): e = self.service.events().insert(calendarId=calendarId, body=event).execute() print('Event created: %s' % (e.get('id'))) # вывод списка из десяти предстоящих событий def get_events_list(self): now = datetime.datetime.utcnow().isoformat() + 'Z' print('Getting the upcoming 10 events') events_result = self.service.events().list(calendarId=calendarId, timeMin=now, maxResults=10, singleEvents=True, orderBy='startTime').execute() events = events_result.get('items', []) if not events: print('No upcoming events found.') for event in events: start = event['start'].get('dateTime', event['start'].get('date')) print(start, event['summary']) calendar = GoogleCalendar() print("+ - create event\n? - print event list\n") c = input() if c == '+': event = calendar.create_event_dict() calendar.create_event(event) elif c == '?': calendar.get_events_list() else: pass
В результате выполнения представленного выше кода с параметром ‘+’ видим созданное событие в календаре:

Ссылки на материалы:
- https://support.google.com/a/answer/7378726?hl=ru
- https://developers.google.com/calendar/quickstart/python
- google calendar
- python3
- синхронизация
Авто преписка в тг с привязкой к Google Calendar
У меня была такая проблема что я каждый день когда ложился спать всегда ставил в нике преписку что то по типу [БУДУ ЗАВТРА В 8:00] так вот в какой то момент меня это доконало и я решил сделать так что бы скрипт сам делал мне эту преписку, но будет брать события с Google Calendar. Думаю это довольно удобно ведь так можно будет записывать в календарь все свои дела а скрипт будет автоматически ко времени преписывать их к нику.
и начнем мы с самого сложного, настройкой своего гугл аккаунта
заходим на этот сайт https://console.cloud.google.com/ входим в аккаунт гугл (не бойтесь его потерять, это официальный сайт гугла) и заполняем небольшую анкету:
первым делом мы видим такую картину

укажите свою страну в указанном поле (если что России там нет, не пытайтесь ее искать, лучше выберите другую страну), нажмите на первый квадратик и нажмите на кнопку Agree and continue
Теперь нам нужно создать приложение
находим в левом меню кнопочку Home и нажимаем на нее

теперь мы находимся в главном меню, нажимаем на кнопку Create Project которая находится справа

и мы попали в меню создания приложения
сейчас нам нужно заполнить некоторые поля

в поле Project name вставьте название вашего приложения, можете не изменять предложенный вам вариант
после нажимаем на кнопку Create
и уже попадаем на другую страницу в которой пока идет загрузка, подождите 20-30 секунд пока загрузка завершится
когда завершилась загрузка, мы увидим много непонятного текста, но он нам не нужен
открываем снова наше меню в левой части экрана и наводим указатель мыши на кнопку APIs & Services так что бы у нас открылось еще одно мини меню

и нажимаем на кнопку OAuth consent screen
после чего попадаем на страницу где нам нужно сделать некоторые манипуляции
нажимаем на кружочек рядом с надписью External и нажимаем на кнопку Create

теперь уже мы попали в меню где надо заполнять очень много полей

все что я поместил в квадрат нужно заполнить
и еще внизу страницы есть поле

заполните его своими данными и нажмите кнопку Save and continue
после заполнения полей коректно мы приступаем к самой важней части настройки:
нажимаем на кнопку Add or remove scopes

теперь открылось меню в правой части экрана
сначала нажимаем вот на эту кнопочку и выбираем значение 100


после чего у нас высвечиваются все «сферы» которые мы должны задействовать

нажимаем эту кнопку и листаем в самый низ для того чтобы нажать кнопку Update
когда у нас обновились «сферы» листаем в самый низ и нажимаем кнопку Save and continue

Теперь мы перешли к самой ультра мега важной части
а именно добавления своего аккаунта в качестве [tooltip=271]разработчик[/tooltip]

нажимаем на кнопку Add users и вводим туда свою электронную почту к которой привязан Calendar после чего нажимаем кнопку Add

и кнопку Save and continue для продолжения
а сейчас нам нужно получить .json файл с нашими данными для входа
наводим указатель мыши на вкладку APIs & Services и нажимаем на кнопку Credentials

теперь нажимаем на кнопку Create credentials в левой части экрана и выбираем OAuth client ID

в этом поле выбираем платформу Desktop app

и нажимем кнопку Create внизу

после мы попадаем в главное меню и у нас открывается мини меню где мы должны нажать на кнопку Download JSON

и у нас скачается файл .json который мы должны переименовать в credentials.json
это кстати является обязательным условием для запуска скрипта
сохраните его пока в уме, скоро он нам понадобится
теперь посетите эту страницу
и нажмите на кнопку Enable

Поздравляю! Настройка почти завершена, но самая главная часть пройдена! теперь переходим к установке скрипта
Давайте перейдем к скрипту
и так, важную часть мы сделали, но осталось еще настроить наш скрипт
для начала нужно установить питон
или можете скачать батник для автоматической загрузки питона
скачиваете батник отсюда: MEGA VT
и запускаете его, и пока консоль не закроется ничего не делайте
(если кто то боится батника, что кстати странно, то вот тема где есть этот батник https://lolz.guru/threads/3665994/)
отлично, у вас установлен питон, теперь давайте скачаем и настроим наш скрипт
скачиваем файл main.py здесь MEGA VT
копируем наш скрипт в любую удобную папку, желательно пустую
и в ту же папку закидываем наш файл credentials.json и того у нас в папке 2 файла

добавим еще два файла, батник чтобы было удобно запускать скрипт MEGA VT
и текстовый документ, чтобы можно было установить необходимые библиотеки без труда MEGA VT (зачем [tooltip=265]вт[/tooltip] на тхт файл

должно получится как то так

теперь откройте файл main.py любым удобным текстовым редактором, например с помощью обычного блокнота

давайте пройдемся по порядку, что и как заполнять
в строку которая начинается с YOUR_NICKNAME вставьте после = в кавычках ‘то есть тут’ укажите свой никнейм который вы используете всегда, например DERK

в строку начинающаяся с THEN_FREE указываем слово/выражение когда у вас нет никаких дел. что то по типу СВОБОДЕН или ТУТ

теперь давайте получим специальные данные для входы в ваш телеграм аккаунт
заходим на сайт https://my.telegram.org/auth и логинимся под своим номером телефона


вводим номер аккаунта телеграма который вам нужен и туда тут же придет код который необходимо скопировать и вставить в указанное поле
как только вы залогинились вам нужно нажать на кнопку API development tools
теперь нужно заполнить форму, показать я не могу потому что приложение может быть создано только один раз на один аккаунт телеграм
будет что то похожее на это. Как заполните форму нажмите Create Application
теперь вы попали на страницу где вы можете скопировать API_ID и API_HASH

теперь вставьте их в соотвествующие поля в скрипте
API_ID вставьте в строку которая начинается с API_ID без кавычек

а API_HASH вставьте в строку начинающаяся с API_HASH с ковычками

Как только вы сделаете все что было описано выше, то можете запускать скрипт нажав два раза на батник под названием start.bat
Но осталась самая легкая часть
как только вы запустили скрипт вам нужно вставить в отмеченное поле номер телефона аккаунта телеграм где будет работать этот скрипт


нажмите Enter на клавиатуре
и у вас спросят верен ли номер который вы ввели. Если да то напишите Y если же нет, то напишите N
и теперь вам придет еще один код в телеграм

вставьте его в консоль

нажмите Enter на клавиатуре
Так же он может потребовать пароль, просто введите его и нажмите Enter
теперь есть еще одна вещь которую нам нужно сделать, но она уже последняя
Сразу как только вы нажали Enter вас перекинуло на страницу входа в гугл аккаунт в браузере, не пугайтесь, все нормально. Просто войдите под тем аккаунтом который был у вас в как тестовый при настройке приложения


нажмите еще раз продолжить

теперь вы попали на полностью черную страницу с текстом
The authentication flow has completed. You may close this window.
это значит что мы успешно вошли в аккаунт, поздравляю, теперь можно планировать задачи у себя в календаре, и если вы будете заняты, скрипт сам поставит эту задачу вам в ник

надеюсь обьяснил все понятно и просто, если нет, то пишите мне в телеграм : @derkown, всем пока
Гугл скрипт в помощь молодому отцу
Если у вас есть маленькие дети, один или несколько, то возможно вам будет интересен этот скрипт, который ежемесячно создаёт событие в гугл календаре, в котором точно указан возраст ребенка, а также указаны значимые вехи из жизни родителей.
С этим скриптом вам не придётся помнить даты, а ещё вам придёт оповещение стандартными средствами гугл календаря. Вот результат работы этого скрипта:

Перед вами улучшенная версия моего скрипта, который впервые был опубликован ещё в 2019 году на гитхабе. Вот его текущая редакция:
Как пользоваться?
Для того, чтобы воспользоваться скриптом создайте новый скрипт через меню. Если у вас нет в меню такого пункта «Google Apps Script», то там же надо нажать «Подключить другие приложения» и в поиске найти «Google Apps Script» и подключить, тогда пункт в меню появится:


Тестово запустите функцию AddCalendarCurrentAge() :

Теперь вам надо дать все необходимые разрешения, чтобы скрипт мог выполнять свою работу:

Перейдите в дополнительные настройки и просмотрите все разрешения:

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

Что в итоге?
В календаре появится созданная тестовая запись через 9 дней (это значение offset ) от текущей даты:

Измените данные примера на свои собственные
После того, как всё заработало, просто внесите свои даты в код и исправьте имена:

После этого выполните функцию TriggersCreateTimeDriven() для того чтобы каждый раз 1го числа каждого месяца этот скрипт выполнялся автоматически, создавая событие в календаре на грядущий месяц:

После этого обязательно задайте offset . Если день рождение ребёнка приходится на 9 число, то этот параметр равен 9. Этот параметр — сдвиг в расчётах нужен потому что все расчёты будут выполняться первого числа каждого месяца, а день рождения, например, 9 числа:

Вот и всё! Автоматическая напоминалка создана.
ТОП-10 лучших электронных календарей для заметок
Время – самый ценный ресурс, требующий умелого и грамотного обращения. Об этом хорошо известно каждому владельцу бизнеса, фрилансеру или руководителю проекта. Чтобы всегда и все успевать, вам пригодится хороший календарь. С его помощью можно спланировать любые мероприятия на неделю, месяц или текущий день. Используя электронный календарь, вы будете видеть все важные задачи перед глазами. Вам не придется лихорадочно перелистывать бумажные органайзеры и блокноты с записями. Вам будет проще согласовывать действия с коллегами или подчиненными.
Личный онлайн помощник пригодится в организации личных дел. Вы можете установить напоминания о датах и событиях, которые нельзя пропустить. «Умная программа» заблаговременно пришлет вам соответствующее сообщение. Так вы избавите себя от необходимости хранить в голове кучу информации и будете всегда в курсе важных дел.
На всех современных цифровых устройствах установлены программы календари с базовым набором функций, которые можно использовать в качестве личной напоминалки. Но для серьезной проектной работы они не очень удобны. Сегодня мы рассмотрим самые популярные электронные ежедневники и органайзеры, подходящие для решения любых бизнес задач, получившие максимальное количество положительных отзывов от экспертов и пользователей.
ТОП-10 электронных календарей, доступных в России
В наш список вошли приложения, имеющиеся в свободном доступе в Интернет-пространстве. Большинство из них имеет бесплатные пробные версии, которые можно скачать и установить. Предлагаем ближе познакомиться с возможностями, функционалом, преимуществами цифровых программ-органайзеров для заметок и планирования. Возможно, среди них вы найдете лучший для себя вариант.
1. ЛидерТаск – для командной работы и планирования

ЛидерТаск — удобнейшее приложение для составления списков дел, ежедневного планирования, эффективной проектной деятельности. Программу можно использовать как календарь для заметок или задействовать все инструменты ее мощнейшей CRM системы, предоставляющей полноценное информационное пространство для обмена информацией с коллегами, командного планирования, ведения банка данных клиентов и проектов.
Преимущества
- Быстрое создание задач с возможностью настройки «под себя» или делегирования их другим исполнителям.
- Интеллектуальные уведомления, держащие в курсе важных дел и задач.
- Удобная система меток для распределения задач по важности или другим критериям.
- Функциональный ежедневник, в котором можно мгновенно переносить встречу или задачу на другой день, добавлять новые задания или быстро просматривать, что нужно сделать в ближайшее время.
- Контроль над исполнением задач других сотрудников с функцией «супер-администратора».
- Создание и ведение списков дел с их структуризацией по тематическим разделам.
- Ведение командных проектов.
- Создание задач прямо из ящика электронной почты.
- Практичные виджеты, помогающие создавать задачи из браузера с сохранением вкладки сайта.
Платформы
- Windows;
- Android;
- Web;
- MacOS;
- iOS.
Тарифы
- Для одного устройства – бесплатный.
- Премиум, для персональных целей – от 217 руб.
- Бизнес, для двух и более участников – от 332 руб.
- Бизнес плюс – от 499 руб.
2. Google Calendar – быстрый доступ с любых устройств и браузеров

Известный практически каждому пользователю электронный календарь онлайн, который можно использовать в любом месте в любое время. Если ваши интересы ограничены поиском удобного ежедневника, — обязательно обратите внимание на это приложение. С помощью Google Calendar можно вести несколько отдельных календарей, оформив каждый из них в своей цветовой гамме. Один использовать для работы, в другом создавать расписание дел в выходные, в третьем делать пометки о днях рождения родственников и коллег, а в четвертом устанавливать ежедневные напоминания.
Преимущества
- Возможность доступа с любого браузера.
- Выделение выходных дней серым цветом.
- Разнообразный набор тем для оформления, привлекательный интерфейс в фирменном стиле Windows.
- Создание «социальных» событий, связанных с решением коллективных вопросов с указанием времени и места проведения мероприятия.
- Обеспечение или ограничение доступа для других участников команды.
Платформы
Приложение совместимо со всеми платформами.
Тарифы
Бесплатный для всех пользователей.
3. Яндекс.Календарь — карты и быстрое создание задач в календаре

Яндекс.Календарь — отечественный сервис с функциональным онлайн-календарем, который можно успешно использовать для организации дел, планирования, распределения текущих и стратегических задач. Приложение располагает полноценными спутниковыми картами, которые можно использовать для создания напоминаний по месту пребывания. Для работы с приложением нужно зарегистрироваться и создать собственную учетную запись. Его внешний вид будет зависеть от типа устройства, на котором он установлен. Для мобильных телефонов и смартфонов существуют разные версии.
Преимущества
- Быстрое создание событий одинарным щелчком по ячейке дня.
- Привязка событий к географической карте.
- Выделение выходных дней и праздников.
- Создание нескольких напоминаний для одного события.
- Настройка уведомлений с указанием периодичности показа сообщений, времени и названия события.
Платформы
- Windows;
- Android;
- MacOS;
- iOS.
Тарифы
Без оплаты, по подписке.
4. Trello – работа в команде по системе Kanban

Trello — приложение с виртуальными досками Kanban, по которым перемещаются карточки с задачами. Для каждой карточки можно установить собственную дату с доступом к календарю в этот день. В приложение встроен календарь с отображением задач на день, неделю или месяц. Если для карточки установлен определенный срок, ее исполнение автоматически растягивается на несколько дней.
Преимущества
- Сортировка задач по времени с точностью до секунды.
- Гибкие настройки фильтрации с поиском по меткам, датам, исполнителям или ключевым словам.
- Возможность добавления в календарь одной задачи или целого списка, который отобразится в виде отдельного столбца.
- Создание чек-листов с назначением исполнителей на каждый пункт.
- Мультиязыковая поддержка.
Платформы
- Windows;
- MacOS;
- iOS;
- Android.
Тарифы
5. Sunsama – для работы с задачами

Сервис Sunsama объединяет возможности канбан-доски для ведения командных проектов и практичного онлайн календаря-планировщика. Эффективно функционирует совместно с Trello, Jira и Asana. Используя эти удобные инструменты, вы сможете легко планировать свое время и всегда держать на контроле важные задачи. Функция еженедельного обзора поможет отслеживать личную эффективность. Задачи в приложении можно создавать прямо в календаре в автоматическом режиме.
Преимущества
- Доски Канбан для визуализации рабочих процессов.
- Автоматический перенос незавершенных дел на следующий день.
- Организация совещаний с добавлением повестки в календарные события.
- Отдельные цветовые отметки для разных событий и задач в календаре.
- Опция «Таймбоксинг» для концентрации на приоритетных задачах.
Платформы
Тарифы
6. YouGile – организация дел и создание заметок

Главный экран программы реализован в виде календарной недели, в графах которой присутствуют данные об исполнителе, названии задачи, сроке ее завершения. Цвет карточек идентичен оттенку их столбца на доске для лучшей ориентации при совместной работе над задачами. Вы видите, кто над ними работает, какие из них завершены или находятся в работе. Посетить сайт YouGile.
Преимущества
- Быстрый доступ к задачам через карточки.
- Эффективная система напоминаний о дедлайне задачи.
- Опция «Таймер», показывающая срок завершения задачи с точностью до минуты.
- Демонстрация текущего времени в виде красной пунктирной черты.
- Восстановление удаленных файлов.
Платформы
- Linux;
- Android;
- iOS;
- Windows;
- Mac OS.
Тарифы
- До 10 пользователей – бесплатно.
- От 11 участников – от 333 рублей ежемесячно за каждого.
7. Zoho Calendar – календарь с открытым доступом

Zoho — практичный онлайн-календарь, который можно использовать для создания списков дел, планирования личных и рабочих задач, организации различных мероприятий. Календарь можно одновременно использовать в нескольких приложениях. Устанавливать в нем напоминания по различным событиям, в том числе, о памятных событиях, днях рождения знакомых и коллег, в виде писем из почты или всплывающих сообщений. Сервис удобен для организации совместных митингов, конференций и совещаний.
Преимущества
- Виртуальные конференции, командные митинги с опцией Zoho Meeting.
- Переадресация событий.
- Ссылки по месту пребывания.
Платформы
- Web;
- iPhone;
- Windows;
- Android.
Тарифы
8. Weeek – система для управления проектами

Weeek — элегантный сервис для удобного и быстрого решения любых командных задач. Приложение базируется на Kanban-технологии. Представляет собой электронною доску, каждый столбик которой соответствует определенному дню недели. Объединяет возможности таск-менеджера, планировщика, эргономичного рабочего пространства и научной базы знаний для команды.
Преимущества
- Задачи отображаются на календаре или в режиме доски.
- Быстрые вложения, прикрепление любых файлов к задачам.
- Индивидуальные настройки для колонок досок.
- Создание личных задач, проектов, с ограничением доступа для других пользователей.
- Таймер Pomodoro для эффективного распределения времени.
- Фильтрация задач по приоритетности, исполнителям.
Платформы
- iPhone;
- iOS;
- Android;
- Web.
Тарифы
- Пробная версия – бесплатно.
- Персональная подписка от 190 руб. ежемесячно.
- Командный тариф – от 590 руб.
9. Basecamp – для коммуникации в команде

Basecamp — компактный электронный планер, таск-менеджер, использующийся для организации взаимодействия между отдельными исполнителями и группами, работающими над общими проектами. В приложении имеется встроенный календарь для хранения встреч, событий, важных мероприятий с уведомлениями о приближении их срока. Работа в программе организуется в едином информационном пространстве, в котором присутствуют все задачи, чат, проекты и команды. В ленте новостей публикуются последние данные по проекту, идеи, планы команды. Списки задач группируются по исполнителям или командам.
Преимущества
- Единое информационное пространство для комфортной и безопасной работы в рамках проекта.
- Синхронизация с Google календарем и Outlook.
- Быстрый обмен информацией, планами с другими участниками проекта.
- Лента новостей, удобный чат, не отвлекающий от основной работы.
Платформы
- Windows;
- Android;
- MacOS;
- iOS.
Тарифы
- До 30 дней, бесплатный.
- Платный – от 99 долларов ежемесячно.
10. Nook — информативный и простой

Nook — бесплатная для всех пользователей программа-календарь для составления расписаний и отслеживания дел. С функцией «Люди» вы сможете сравнивать календари других сотрудников с собственным расписанием, чтобы быстро назначать встречи или организовывать другие мероприятия.
Преимущества
- Несколько видов календарей с быстрым переключением между ними.
- Создание конференций, митингов, встреч, видеоконференций одним кликом.
- Интеграция с Microsoft Teams, Google Meet и Zoom.
- Разные виды настройки для страниц расписаний.
- Упрощенный вид единого календаря для лучшей визуализации.
Платформы
Тарифы
Бесплатно для всех пользователей.
Заключение
Большинству рядовых пользователей вполне хватает стандартных календарей Google Calendar или Outlook. Но, если вы планируете масштабную работу в команде, обратите внимание на более серьезные сервисы с развернутым функционалом. Их можно использовать как полноценные средства для управления проектами или комбинировать с другими приложениями.
Оптимизировав свое личное и рабочее время, вы сможете достичь большего, меньше напрягаясь. Удобный электронный онлайн-календарь поможет вам лучше концентрироваться на первостепенных задачах, все и всегда успевать.
- Управление проектами
- Управление персоналом