Как определить текущее событие в Календаре Google с помощью Python? - PullRequest
1 голос
/ 23 декабря 2011

Я строю термостат, который извлекает заданные температуры из Календаря Google.При этом мне нужно определить событие, происходящее сейчас в указанном Календаре Google.В настоящее время я извлекаю файл .ics из Google, а затем анализирую его с помощью библиотеки Python icalendar .

. Затем перебираю каждое событие в календаре и проверяю:

  1. Является ли событие сегодня?
  2. Событие началось?
  3. Не завершилось ли событие?

После проверки каждого события (при условии, что есть событие)нет перекрывающихся событий), я получаю одно событие, где ответ ДА ​​на все три вопроса.Это текущее событие.

Есть ли лучший способ сделать это?В частности, есть ли способ избежать повторения каждого события в календаре?

1 Ответ

6 голосов
/ 23 декабря 2011

Вы должны использовать API Календаря Google .Вы можете спросить его о событиях в течение определенного периода времени, и он ответит каким-то хорошим JSON, который даст вам информацию.Есть даже клиент Python, который позаботится о переводе ваших запросов в JSON и обратно.

Нет способа напрямую запросить текущее событие, но вы, безусловно, можете назначить ему ограниченное минимальное и максимальное время., так что у вас будет только небольшое количество событий для поиска.Если ваши мероприятия регулярные и предсказуемой продолжительности, вы можете сделать так, чтобы они просто давали вам один.

events = client.events().list(calendarId='primary',
                              timeMin='2011-12-22T09:00:00Z',
                              timeMax='2011-12-22T22:00:00Z').execute()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...