Создать «загружаемый» объект vCalendar для Outlook с помощью vObject (Python) - PullRequest
2 голосов
/ 04 июня 2010

Мне нужно иметь возможность предлагать «загружаемые» события для Outlook через объекты vCalendar - если я не ошибаюсь.

Из проведенного мною исследования я указал на использование vObject . Я посмотрел примеры их использования, но не имея предварительного опыта работы с форматом, мне не ясно, как решить мою проблему, так как я не уверен, какие поля доступны или как они называются ... 1005 *

Есть ли простой пример создания очень простого события object / vCalendar с некоторым типом имени / описания, которое имеет время и дату начала и окончания?

Я буду использовать Django и, вероятно, просто динамически создаю их для «загрузки» в соответствии с запросом.

Ответы [ 3 ]

2 голосов
/ 04 июня 2010

Я считаю, что наиболее полезные поля:

  • dtstart: время начала
  • dtend: время окончания
  • summary
  • location
  • url
  • description

Затем вы создаете календарь с:

cal = vobject.iCalendar()

затем событие:

event = cal.add('vevent')

и заполните его:

event.add('summary').value = 'your summary'
event.add('dtstart').value = datetime.now() # or anything else
...

Теперь, если вы хотите вернуть календарь через http, вы можете использовать cal.serialize().

1 голос
/ 25 января 2012

Outlook 2003, похоже, нуждается в поле UID для каждого VEVENT. модуль icalendar, похоже, не использует их, поэтому мне пришлось добавить следующие фрагменты кода:

import uuid
...
event.add('uid',uuid.uuid4())
1 голос
/ 30 июня 2011

У меня была такая же проблема в системе Windows.Как только я заменил crlfs на lfs, у меня все заработало.

output = cal.serialize().replace(u'\r\n', u'\n' ).strip()
...