2012-02-22 13 views

उत्तर

7

क्या आप की आवश्यकता होगी Fullcalendar के लिए कुछ (gcal.js जो FullCalendar साथ प्रदान की जाती है के समान) अपने स्वयं के एक्सटेंशन लिखने के लिए आपको ical.js कह सकते हैं

आपको पता होना चाहिए कि एक पूर्ण ical पार्सर लिखना काफी draining हो सकता है ताकि आप सी करना चाहें आपके बैक-एंड के लिए Google कैलेंडर के साथ चिपकने वाला ऑनसाइडर जब तक कि आपके पास कोई अनिवार्य कारण न हो।

आप FullCalendar के लिए अपने स्वयं के एक्सटेंशन developping की सड़क के नीचे जाने के आप एक मौजूदा jQuery iCal पार्सर पर एक नजर है करने के लिए चाहते हो सकता है चाहिए (here - अस्वीकरण: मैं इस प्लगइन की कोशिश की कभी नहीं किया है)

0

यदि आपके पास एक WordPress वेबसाइट है, तो इसके लिए एक ऐप है। http://wordpress.org/extend/plugins/amr-ical-events-list/

यदि आपके पास कोई वर्डप्रेस वेबसाइट नहीं है, तो कृपया कुछ और जानकारी प्रदान करें ताकि लोग आपकी स्थिति के संबंध में अधिक पर्याप्त सलाह दे सकें - कुछ समर्पित icalendar स्क्रिप्ट हैं - मैंने उन्हें एक के लिए नहीं देखा है जबकि, इसलिए किसी भी उदाहरण के लिए समर्थन नहीं कर सकते हैं: http://phpicalendar.net/

-2

आप आयात कर सकते हैं इसे Google कैलेंडर में और फिर पूर्ण कैलेंडर में Google कैलेंडर आयात करें।

+1

यह एक भयानक समाधान है – MarkyPython

+0

खैर यह 2013 में मेरे लिए काम किया यह एक विस्तार लिखने की तुलना में आसान है। –

1

मैं इसे करने में कामयाब हूं। जैसा मैंने सोचा उतना कठिन नहीं है। मैं ical.js का उपयोग ics पार्सर के रूप में करता हूं। पार्सिंग के बाद, मुझे एक जेसन ऑब्जेक्ट मिलता है जिसमें आईआईसीएस में सारी जानकारी होती है। और फिर इसे पार करें और the definition of FullCalendar Event object के अनुसार ईवेंट ऑब्जेक्ट बनाएं।

यहाँ कोड है:

$.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' 
    } 
}); 
}); 
संबंधित मुद्दे