Импорт iCal (ics) с fullcalendar?
Что нужно сделать, чтобы загрузить.ics файлы с fullcalendar? К сожалению, я не могу использовать php или .net.
4 ответов
что вам нужно, это написать свое собственное расширение для fullcalendar (аналогично gcal.js, который поставляется с fullcalendar), что вы можете назвать ical.js
вы должны знать, что написание полного парсера ical может быть довольно истощающим, поэтому вы можете рассмотреть возможность придерживаться календаря google для вашего бэк-энда, если у вас нет причины принуждения.
Если вы идете по дороге разработки собственного расширения для fullcalendar, вы можете захотеть иметь посмотрите на существующий парсер jQuery ical (здесь - отказ от ответственности: я никогда не пробовал этот плагин)
мне это удалось. Не так сильно, как я думал. Я использую ical.js как парсер ics. После разбора я получаю объект json, который содержит всю информацию в ics. А затем пересечь его и построить объект события в соответствии с определение объекта события FullCalendar.
вот код:
$.get(calendarUrl).then(function (data) {
// parse the ics data
var jcalData = ICAL.parse(data.trim());
var comp = new ICAL.Component(jcalData);
var eventComps = comp.getAllSubcomponents("vevent");
// console.log(JSON.stringify(eventComps));
// map them to FullCalendar events
var events = $.map(eventComps, function (item) {
if (item.getFirstPropertyValue("class") == "PRIVATE") {
return null;
}
else {
return {
"title": item.getFirstPropertyValue("summary") + ";",
"start": item.getFirstPropertyValue("dtstart").toJSDate(),
"end": item.getFirstPropertyValue("dtend").toJSDate(),
"location": item.getFirstPropertyValue("location")
};
}
});
// refresh the control
calendarCtrl.fullCalendar('destroy');
calendarCtrl.fullCalendar({
events: events,
timeFormat: "H:mm",
displayEventEnd: true,
eventRender: function (event, element) {
// console.log(element);
// append location
if (event.location != null && event.location != "") {
element.append("<span>" + event.location + "</span>");
}
},
header: {
left: 'title',
center: '',
right: 'today,month,basicWeek,listDay prev,next'
}
});
});
Если у вас есть сайт wordpress, для этого есть приложение. http://wordpress.org/extend/plugins/amr-ical-events-list/
Если у вас нет веб-сайта wordpress, пожалуйста, предоставьте дополнительную информацию, чтобы люди могли посоветовать более адекватно в отношении вашей ситуации - есть некоторые выделенные скрипты icalendar - я не смотрел на них некоторое время, поэтому не могу ручаться за любой, например: http://phpicalendar.net/
вы можете импортировать его в Календарь Google, а затем импортировать Календарь Google в FullCalendar.