Как обновить частоту рецидива на ICal

В настоящее время я работаю с форматом ical, и мне нужно обрабатывать повторяющиеся события.

Я работаю напрямую с Icloud, и мне удалось создать и удалить повторяющиеся события.

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

Например, предположим, что у меня есть мероприятие под названием «тест», запланированное на каждый день в течение недели. Как мне перейти к переименованию вторника в «другое название»? Или даже изменить даты этого конкретного события?

Я попытался просто обновить событие, используя его идентификатор, но, похоже, он создал его клон, а не затронул реальное происшествие. Более того, при попытке доступа к клонированному событию из интерфейса календаря Icloud происходит сбой.

Так что я немного застрял и был бы признателен за помощь :)

Большое спасибо,


person Fred grais    schedule 07.03.2016    source источник


Ответы (2)


Не совсем ясно, пытаетесь ли вы обновить происшествие.

В любом случае у вас должен быть только один ресурс календаря, но он должен содержать

  • один «главный» ВЕВЕНТ, содержащий базовую информацию вместе с ПРАВИЛОМ,
  • один VEVENT для каждого экземпляра, который является «исключением» из базового события, где каждое исключение идентифицируется своим RECURRENCE-ID.

В RFC5545 нет примера такого события, но в RFC5546 есть что-то очень похожее на https://tools.ietf.org/html/rfc5546#section-4.4.8 (используется RDATE вместо RRULE и нет необходимости в свойстве METHOD, но идею вы поняли).

person Arnaud Quillaud    schedule 08.03.2016

Размещение для будущих читателей. По некоторым причинам очень сложно найти рабочий пример RECURRENCE-ID

Следующий ресурс будет повторять событие «тест» (с 10:00 до 13:00 по всемирному координированному времени) каждый день в течение 10 дней, начиная с 13 января 2021 года, ЗА ИСКЛЮЧЕНИЕМ 15 января 2021 года, событие будет называться «тест, кроме меня» и начнется с 15:00 до 18:00 по всемирному координированному времени.

BEGIN:VCALENDAR
VERSION:2.0
BEGIN:VEVENT
UID:[email protected]
DTSTART:20210113T100000Z
DTEND:20210113T130000Z
SUMMARY:test
RRULE:FREQ=DAILY;INTERVAL=1;COUNT=10
END:VEVENT
BEGIN:VEVENT
UID:[email protected]
DTSTART:20210115T150000Z
DTEND:20210115T180000Z
SUMMARY:test except me
RECURRENCE-ID;VALUE=DATE-TIME:20210115T100000Z
END:VEVENT
END:VCALENDAR
person 7ball    schedule 13.01.2021