FullCalendar ची रिसोर्स टाइमलाइन आणि रिसोर्स कॉलम Premium मध्ये येतात: व्यावसायिक ॲपसाठी सशुल्क लायसन्स की लागते. त्याच्या लायसन्स पेजवर मोफत पर्याय दिले आहेत: पूर्णपणे AGPL असलेल्या ॲप्ससाठी आणि नोंदणीकृत ना-नफा संस्थांसाठी. Needless UI शेड्यूलरमध्ये हे दोन्ही MIT लायसन्सअंतर्गत मिळतात, वारंवार होणारे इव्हेंट आणि iCalendar फाइल्ससह. हे मार्गदर्शक Angular ॲप एकाकडून दुसऱ्याकडे नेते: काय जसेच्या तसे चालते, काय चालत नाही, आणि कोणता डेटा रूपांतरित करावा लागतो.
यात FullCalendar 7 मधील नावे वापरली आहेत, आणि आवृत्ती 6 मधील नावे वेगळी असतील तिथे ती चौकोनी कंसात दिली आहेत. FullCalendar चा Angular कनेक्टर Angular 16 ते 22 ला सपोर्ट करतो; Needless UI ला Angular 22 लागते.
आपल्याला काय मिळते
| फीचर | FullCalendar | Needless UI |
|---|---|---|
| रिसोर्स टाइमलाइन: प्रत्येक रूम किंवा व्यक्तीसाठी एक ओळ | Premium | होय: एक दिवस, एक आठवडा किंवा एक महिना |
| दिवस आणि आठवडा व्ह्यूमध्ये कॉलमच्या रूपात रिसोर्स | Premium | होय |
| महिना, आठवडा आणि दिवस व्ह्यू | मोफत | होय |
| ड्रॅग करून हलवणे आणि आकार बदलणे | मोफत; दुसऱ्या रिसोर्सवर हलवण्यासाठी Premium | होय, इतर रिसोर्सवरही. आकार शेवटाकडून बदलतो, सुरुवातीकडून नाही. |
| इव्हेंट तयार करण्यासाठी वेळ निवडणे | मोफत | होय: पॉइंटरने, दाबून धरून किंवा कीबोर्डने |
| ओव्हरलॅप टाळण्यासारखे नियम | मोफत: ओव्हरलॅप आणि कन्स्ट्रेंटचे पर्याय | होय: एकच allow फंक्शन, ज्याला प्रत्येक बदलापूर्वी विचारले जाते |
| कीबोर्डने इव्हेंट हलवणे आणि त्यांचा आकार बदलणे | त्याच्या ॲक्सेसिबिलिटी दस्तऐवजात याचा उल्लेख नाही; त्यात ARIA लेबल्स आणि Tab फोकसची माहिती आहे | होय, आणि स्क्रीन रीडरना ते जाहीरही केले जाते |
| वारंवार होणारे इव्हेंट | मोफत, rrule प्लगइन आणि लायब्ररीसह | अंगभूत: RFC 5545 चे नियम, पण EXRULE, RDATE आणि दर तासाला पुनरावृत्ती होणारे नियम नाहीत |
| iCalendar (.ics) | मोफत: फीड वाचते | .ics फाइल्स वाचते आणि लिहिते |
| लिस्ट आणि वर्ष व्ह्यू | मोफत | पुढच्या दिवसांचा अजेंडा; वर्ष व्ह्यू नाहीत |
| टाइम झोन | मोफत: लोकल, UTC किंवा नाव असलेले | नाही: मिळालेल्या वेळा जशाच्या तशा दाखवते |
| गटबद्ध, नेस्टेड किंवा अनेक कॉलमचे रिसोर्स | Premium | नाही: एकच कॉलम, जो आपला टेम्पलेट काढतो |
| बाहेरून ड्रॅग आणि ड्रॉप, बॅकग्राउंड इव्हेंट | मोफत | नाही |
| प्रिंटिंग, व्हर्च्युअल रेंडरिंग | Premium | नाही |
| फ्रेमवर्क | Angular 16 ते 22, React, Vue, साधे JavaScript आणि इतर | Angular 22 आणि React 19 |
काय कशाशी जुळते
| FullCalendar | Needless UI शेड्यूलर |
|---|---|
<full-calendar [options]>, plugins, schedulerLicenseKey | <nui-scheduler>, प्रत्येक पर्यायासाठी एक इनपुट; प्लगइन नाहीत आणि की नाही |
initialView: 'resourceTimelineDay' | view="timeline", आणि आठवडा किंवा महिन्यासाठी timelineSpan |
initialView: 'timeGridWeek' | view="week"; [(view)] दुतर्फी आहे |
resources, events | [resources], [events] |
resourceId, extendedProps | resource, data |
editable, selectable | editable, selectable |
select | (slotSelect): { start, end, allDay, resource } |
eventDrop, eventResize | (eventChange): आपण events अपडेट करेपर्यंत काहीही हलत नाही |
eventClick | (eventClick) |
eventOverlap, selectOverlap, eventAllow | [allow]: हलवणे, आकार बदलणे आणि निवड यांसाठी एकच फंक्शन |
slotDuration, snapDuration | slotMinutes, snapMinutes, मिनिटांमध्ये |
slotMinTime, slotMaxTime, scrollTime | dayStart, dayEnd, scrollHour, तासांमध्ये |
businessHours | [businessHours], आठवड्याचे दिवस 1 (सोमवार) ते 7 |
datesSet | (rangeChange) |
eventContent, resourceCellContent [resourceLabelContent] | nuiSchedulerEvent आणि nuiSchedulerResource टेम्पलेट |
locale, firstDay | locale (कोणताही BCP 47 टॅग), 1 ते 7 मधील firstDay, आणि शेड्यूलरच्या मजकुरासाठी labels |
रूम बुकिंग टाइमलाइन, दोन्ही प्रकारे
रूम्स म्हणजे रिसोर्स आणि बुकिंग्ज म्हणजे इव्हेंट. रूम बुक करण्यासाठी लोक तिच्या ओळीवर ड्रॅग करतात, बुकिंग हलवण्यासाठी ते बुकिंग ड्रॅग करतात, आणि एका रूममध्ये एका वेळी एकच बुकिंग असू शकते. FullCalendar 7 आणि त्याच्या Premium रिसोर्स टाइमलाइनसह:
Needless UI शेड्यूलरसह:
दोन गोष्टी वेगळ्या प्रकारे चालतात. FullCalendar बुकिंग स्वतःच हलवते, आणि ॲप तो बदल आपल्या डेटामध्ये कॉपी करते; Needless UI शेड्यूलर फक्त बदल कळवते, आणि events अपडेट केल्यावरच तो टिकतो, त्यामुळे आपला डेटा हाच एकमेव स्रोत राहतो. शिवाय allow हा साधा कोड आहे, ज्याला पॉइंटर किंवा कीबोर्डने होणाऱ्या प्रत्येक बदलापूर्वी विचारले जाते, त्यामुळे नियम आपल्या हातात असतो आणि आपण तो टेस्ट करू शकता. बुकिंग कॅलेंडरच्या मार्गदर्शकात हे ॲप टप्प्याटप्प्याने तयार केले आहे.
डेटा रूपांतरित करा
| FullCalendar | Needless UI |
|---|---|
दिवसभराच्या इव्हेंटचा end म्हणजे इव्हेंटनंतरचा दिवस | दिवसभराच्या इव्हेंटचा end म्हणजे त्याचा शेवटचा दिवस: एक दिवस वजा करा |
वेळेच्या शेवटी Z किंवा +02:00 सारखा ऑफसेट असू शकतो | ऑफसेटशिवाय घड्याळातील वेळा, जसे 2026-11-02T09:30 |
businessHours आणि firstDay मध्ये आठवड्याचे दिवस 0 (रविवार) ते 6 | आठवड्याचे दिवस 1 (सोमवार) ते 7 (रविवार) |
कालावधी स्ट्रिंगच्या रूपात, जसे '00:30' | संख्या: मिनिटे किंवा तास |
| रिसोर्स id नुसार, मग शीर्षकानुसार सॉर्ट होतात | रिसोर्स ॲरेमधील क्रमानेच येतात |
ऑब्जेक्टच्या रूपात rrule, आणि exrule | RFC 5545 स्ट्रिंग, जसे FREQ=WEEKLY;BYDAY=MO,FR, आणि exdate |
America/New_York सारखा टाइम झोन | आधी वेळा रूपांतरित करा. nuiSchedulerFromIcs(text, { timeZone }) .ics फाइल्स वाचतानाच त्यांचे रूपांतर करते. |
जे नाही ते हवे असल्यास
आपले ॲप टाइम झोन, गटबद्ध रिसोर्स, बाहेरून ड्रॅग आणि ड्रॉप किंवा प्रिंटिंगवर अवलंबून असल्यास, शेड्यूलर अजून FullCalendar ची जागा घेऊ शकत नाही. आपल्याला जे हवे आहे त्यासाठी इश्यू उघडा. इतर सर्व गोष्टींसाठी शेड्यूलरच्या पेजवर प्रत्येक इनपुट, आउटपुट आणि उदाहरण आहे.