Импорт 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.