Я работаю над системой школьных расписаний и в настоящее время разрабатываю скрипт PHP, который позволит экспортировать данные в формате iCalendar (.ics). Целевой прецедент экспорта данных будет импортировать его в Календарь Google.iCalendar исключить диапазон дат
Поскольку праздники Inbetween семестров в нашей школе (определяется по дате начала и окончания), , что было бы лучшим способом, чтобы исключить праздники из правила повторения Анонсы (RRULE
)?. Имейте в виду, что в одном экспорте может быть много разных расписаний.
Я пробовал использовать EXDATE;VALUE=DATE:YYYYMMDD,YYYYMMDD,YYYYMMDD...
со всеми праздничными днями, но Календарь Google не исключал даты, вероятно, потому, что графики также имеют время, и поэтому они не совпадают.
Я также предоставлять данные в формате с одним Анонсы событий, с праздником дней исключенных один на один (тот, который не работал)
BEGIN:VCALENDAR
PRODID:-//Gregor Eesmaa/NONSGML Poska timetables//ET
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
UID:[email protected]
SUMMARY:French
DESCRIPTION:
LOCATION:Room 210
DTSTART:20151215T123000Z
DTEND:20151215T134500Z
RRULE:FREQ=WEEKLY;UNTIL=20160211;INTERVAL=1;BYDAY=TU
EXDATE;VALUE=DATE:20151223,20151224,20151225,20151226,20151227,20151228,20151229,20151230,20151231,20160101,20160102,20160103,20160104,20160105,20160106,20160107,20160108,20160109,20160110,20160319,20160320,20160321,20160322,20160323,20160324,20160325,20160326,20160327,20160415,20160416,20160417,20160418,20160607,20160608,20160609,20160610,20160611,20160612,20160613,20160614,20160615,20160616,20160617,20160618,20160619,20160620,20160621,20160622,20160623,20160624,20160625,20160626,20160627,20160628,20160629,20160630,20160701,20160702,20160703,20160704,20160705,20160706,20160707,20160708,20160709,20160710,20160711,20160712,20160713,20160714,20160715,20160716,20160717,20160718,20160719,20160720,20160721,20160722,20160723,20160724,20160725,20160726,20160727,20160728,20160729,20160730,20160731,20160801,20160802,20160803,20160804,20160805,20160806,20160807,20160808,20160809,20160810,20160811,20160812,20160813,20160814,20160815,20160816,20160817,20160818,20160819,20160820,20160821,20160822,20160823,20160824,20160825,20160826,20160827,20160828,20160829,20160830,20160831
LAST-MODIFIED:20160102T123758Z
DTSTAMP:20160107T232137Z
END:VEVENT
END:VCALENDAR
Не уверен, что вы делаете неправильно. Я бы рекомендовал создать более простой файл iCal, который вы можете использовать для тестирования, просто чтобы выяснить, как это сделать правильно. Затем, как только вы заработаете для простого примера, примените то, что вы узнали, к реальной проблеме. – Michael