@ IceCool прав - просто пропустить DTEND
недостаточно ... это будет зависеть от типа данных DTSTART
, будет ли это работать.
В спецификации сказано, что если DTSTART
имеет тип данных DATE
, а DTEND
нет, то событие заканчивается в конце дня, когда оно начинается. Но если DTSTART
имеет полный тип данных DATE-TIME
, а DTEND
отсутствует, то он заканчивается одновременно с началом.
Это в разделе 3.6.1 RFC 5545 (http://tools.ietf.org/html/rfc5545#page-54):
Для случаев, когда компонент календаря «VEVENT» указывает свойство «DTSTART» с типом значения DATE, но без свойства «DTEND» или «DURATION», длительность события принимается равной одному дню. В тех случаях, когда компонент календаря «VEVENT» указывает свойство «DTSTART» с типом значения «DATE-TIME», но без свойства «DTEND», событие заканчивается в ту же календарную дату и время дня, которое указано свойством «DTSTART».
Итак, в результате, для получения события на весь день этого недостаточно:
DTSTART:20100101T000000
Это не работает, потому что тип данных DATE-TIME
, и поэтому конец события совпадает с началом. Чтобы сделать событие на весь день, вам нужно либо добавить явное DTEND
(также типа DATE-TIME
):
DTSTART:20100101T000000
DTEND:20100102T000000
или используйте тип данных DATE
, и тогда нет необходимости в DTEND
:
DTSTART;VALUE=DATE:20100101