خط زمانی منابع و ستون‌های منابع در FullCalendar جزو Premium هستند: یک اپ تجاری به کلید لایسنس پولی نیاز دارد. صفحهٔ لایسنس آن گزینه‌های رایگان را فهرست می‌کند: برای اپ‌هایی که سراسر AGPL هستند و برای سازمان‌های غیرانتفاعی ثبت‌شده. زمان‌بند Needless UI هر دو را با مجوز MIT دارد، همراه با رویدادهای تکرارشونده و فایل‌های iCalendar. این راهنما یک اپ Angular را از یکی به دیگری منتقل می‌کند: چه چیزهایی منتقل می‌شوند، چه چیزهایی نه، و چه داده‌هایی باید تبدیل شوند.

این راهنما از نام‌های FullCalendar 7 استفاده می‌کند و هر جا نام‌های نسخهٔ 6 فرق دارند، آن‌ها را در کروشه می‌آورد. رابط Angular در FullCalendar از Angular 16 تا 22 پشتیبانی می‌کند؛ Needless UI به Angular 22 نیاز دارد.

چه به دست می‌آورید

FullCalendar و زمان‌بند Needless UI
قابلیتFullCalendarNeedless 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
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, extendedPropsresource, data
editable, selectableeditable, selectable
select(slotSelect): { start, end, allDay, resource }
eventDrop, eventResize(eventChange): تا events را به‌روز نکنید، چیزی جابه‌جا نمی‌شود
eventClick(eventClick)
eventOverlap, selectOverlap, eventAllow[allow]: یک تابع برای جابه‌جایی، تغییر اندازه و انتخاب
slotDuration, snapDurationslotMinutes، snapMinutes، بر حسب دقیقه
slotMinTime, slotMaxTime, scrollTimedayStart، dayEnd، scrollHour، بر حسب ساعت
businessHours[businessHours]، با روزهای هفته از 1 (دوشنبه) تا 7
datesSet(rangeChange)
eventContent, resourceCellContent [resourceLabelContent]قالب‌های nuiSchedulerEvent و nuiSchedulerResource
locale, firstDaylocale (هر تگ زبان BCP 47)، firstDay از 1 تا 7، و labels برای متن‌هایش

خط زمانی رزرو اتاق، به هر دو روش

اتاق‌ها منابع هستند و رزروها رویدادها. کاربران روی یک اتاق می‌کشند تا رزروش کنند و یک رزرو را می‌کشند تا جابه‌جایش کنند، و هر اتاق در هر زمان فقط یک رزرو می‌پذیرد. با FullCalendar 7 و خط زمانی منابع Premium آن:

با زمان‌بند Needless UI:

دو چیز متفاوت کار می‌کند. FullCalendar رزرو را خودش جابه‌جا می‌کند و اپ همان تغییر را در داده‌های خودش ثبت می‌کند؛ زمان‌بند Needless UI فقط آن را گزارش می‌دهد و به‌روز کردن events آن را نگه می‌دارد، پس داده‌های شما تنها منبع می‌مانند. و allow کدی معمولی است که پیش از هر تغییر با نشانگر یا صفحه‌کلید از آن پرسیده می‌شود، پس آزمودن قاعده در دست خودتان است. راهنمای رزرو اتاق این اپ را گام‌به‌گام می‌سازد.

تبدیل داده‌ها

داده‌های FullCalendar و آنچه زمان‌بند انتظار دارد
FullCalendarNeedless UI
در رویدادهای تمام‌روز، end روزِ بعد از رویداد استدر رویدادهای تمام‌روز، end آخرین روز رویداد است: یک روز کم کنید
زمان‌ها ممکن است با Z یا آفستی مثل +02:00 تمام شوندزمان‌های محلی بدون آفست، مثل 2026-11-02T09:30
روزهای هفته از 0 (یکشنبه) تا 6، در businessHours و firstDayروزهای هفته از 1 (دوشنبه) تا 7 (یکشنبه)
مدت‌ها به‌صورت رشته، مثل '00:30'عدد: دقیقه یا ساعت
منابع مرتب‌شده بر اساس شناسه و سپس عنوانمنابع به ترتیب آرایه
rrule به‌صورت شیء، و exruleیک رشتهٔ RFC 5545، مثل FREQ=WEEKLY;BYDAY=MO,FR، و exdate
منطقهٔ زمانی‌ای مثل America/New_Yorkاول زمان‌ها را تبدیل کنید. nuiSchedulerFromIcs(text, { timeZone }) فایل‌های .ics را هنگام خواندن تبدیل می‌کند.

اگر به آنچه نیست نیاز دارید

اگر اپ شما به منطقه‌های زمانی، منابع گروه‌بندی‌شده، کشیدن و رها کردن از بیرون یا چاپ وابسته است، زمان‌بند هنوز نمی‌تواند جای FullCalendar را بگیرد. برای آنچه لازم دارید یک issue باز کنید. برای بقیهٔ موارد، صفحهٔ زمان‌بند همهٔ ورودی‌ها، خروجی‌ها و مثال‌ها را دارد.