Di FullCalendar, timeline sumber daya dan kolom sumber daya termasuk fitur Premium: aplikasi komersial memerlukan kunci lisensi berbayar. Halaman lisensinya mencantumkan opsi gratis, untuk aplikasi yang sepenuhnya berlisensi AGPL dan untuk organisasi nirlaba terdaftar. Penjadwal Needless UI menyediakan keduanya dengan lisensi MIT, lengkap dengan acara berulang dan file iCalendar. Panduan ini memindahkan aplikasi Angular dari yang satu ke yang lain: apa yang bisa langsung dibawa, apa yang tidak, dan data yang perlu dikonversi.
Panduan ini memakai nama dari FullCalendar 7, dengan nama dari versi 6 dalam kurung siku jika berbeda. Konektor Angular FullCalendar mendukung Angular 16 hingga 22; Needless UI memerlukan Angular 22.
Apa yang Anda dapatkan
| Fitur | FullCalendar | Needless UI |
|---|---|---|
| Timeline sumber daya: satu baris per ruangan atau orang | Premium | Ya: sehari, seminggu, atau sebulan |
| Sumber daya sebagai kolom di tampilan hari dan minggu | Premium | Ya |
| Tampilan bulan, minggu, dan hari | Gratis | Ya |
| Seret untuk memindahkan dan mengubah ukuran | Gratis; ke sumber daya lain dengan Premium | Ya, juga ke sumber daya lain. Ukuran diubah dari ujung akhir, bukan dari awal. |
| Pilih waktu untuk membuat acara | Gratis | Ya, dengan pointer, tekan lama, atau keyboard |
| Aturan seperti larangan tumpang-tindih | Gratis: opsi overlap dan constraint | Ya: satu fungsi allow, yang ditanya sebelum setiap perubahan |
| Memindahkan dan mengubah ukuran acara dengan keyboard | Tidak ada di dokumentasi aksesibilitasnya, yang membahas label ARIA dan fokus Tab | Ya, diumumkan ke pembaca layar |
| Acara berulang | Gratis, dengan plugin dan pustaka rrule | Bawaan: aturan RFC 5545, tanpa EXRULE, RDATE, atau aturan per jam |
| iCalendar (.ics) | Gratis: membaca feed | Membaca dan menulis file .ics |
| Tampilan daftar dan tahun | Gratis | Agenda untuk hari-hari ke depan; tanpa tampilan tahun |
| Zona waktu | Gratis: lokal, UTC, atau bernama | Tidak: menampilkan waktu jam dinding yang diterimanya apa adanya |
| Sumber daya yang dikelompokkan, bertingkat, atau multikolom | Premium | Tidak: satu kolom, digambar oleh template Anda |
| Seret dan lepas dari luar, acara latar belakang | Gratis | Tidak |
| Pencetakan, rendering virtual | Premium | Tidak |
| Framework | Angular 16 hingga 22, React, Vue, JavaScript biasa, dan lainnya | Angular 22 dan React 19 |
Padanan opsi
| FullCalendar | Penjadwal Needless UI |
|---|---|
<full-calendar [options]>, plugins, schedulerLicenseKey | <nui-scheduler>, dengan satu input untuk setiap opsi; tanpa plugin dan tanpa kunci |
initialView: 'resourceTimelineDay' | view="timeline", dan timelineSpan untuk seminggu atau sebulan |
initialView: 'timeGridWeek' | view="week"; [(view)] bersifat dua arah |
resources, events | [resources], [events] |
resourceId, extendedProps | resource, data |
editable, selectable | editable, selectable |
select | (slotSelect): { start, end, allDay, resource } |
eventDrop, eventResize | (eventChange): tidak ada yang berpindah sampai Anda memperbarui events |
eventClick | (eventClick) |
eventOverlap, selectOverlap, eventAllow | [allow]: satu fungsi untuk pemindahan, perubahan ukuran, dan pemilihan |
slotDuration, snapDuration | slotMinutes, snapMinutes, dalam menit |
slotMinTime, slotMaxTime, scrollTime | dayStart, dayEnd, scrollHour, dalam jam |
businessHours | [businessHours], dengan hari dari 1 (Senin) hingga 7 |
datesSet | (rangeChange) |
eventContent, resourceCellContent [resourceLabelContent] | Template nuiSchedulerEvent dan nuiSchedulerResource |
locale, firstDay | locale (tag BCP 47 apa pun), firstDay dari 1 hingga 7, dan labels untuk teksnya |
Timeline pemesanan ruangan, dengan keduanya
Ruangan adalah sumber daya dan pemesanan adalah acara. Pengguna menyeret melintasi sebuah ruangan untuk memesannya dan menyeret pemesanan untuk memindahkannya, dan satu ruangan hanya bisa menampung satu pemesanan dalam satu waktu. Dengan FullCalendar 7 dan timeline sumber daya Premium-nya:
Dengan penjadwal Needless UI:
Ada dua hal yang bekerja secara berbeda. FullCalendar memindahkan pemesanan sendiri, lalu aplikasi menyalin perubahannya; penjadwal Needless UI hanya melaporkannya, dan perubahan itu baru tersimpan saat Anda memperbarui events, sehingga data Anda tetap menjadi satu-satunya sumber. Selain itu, allow adalah kode biasa yang ditanya sebelum setiap perubahan lewat pointer atau keyboard, sehingga aturannya bisa Anda uji sendiri. Panduan pemesanan ruangan membangun aplikasi ini langkah demi langkah.
Mengonversi data
| FullCalendar | Needless UI |
|---|---|
end acara sepanjang hari adalah hari setelah acara itu | end acara sepanjang hari adalah hari terakhirnya: kurangi satu hari |
Waktu bisa diakhiri Z atau offset seperti +02:00 | Waktu jam dinding tanpa offset, seperti 2026-11-02T09:30 |
Hari dalam seminggu dari 0 (Minggu) hingga 6, di businessHours dan firstDay | Hari dalam seminggu dari 1 (Senin) hingga 7 (Minggu) |
Durasi berupa string, seperti '00:30' | Angka: menit atau jam |
| Sumber daya diurutkan menurut id, lalu judul | Sumber daya sesuai urutan dalam array |
rrule berupa objek, dan exrule | String RFC 5545, seperti FREQ=WEEKLY;BYDAY=MO,FR, dan exdate |
Zona waktu seperti America/New_York | Konversikan waktunya terlebih dahulu. nuiSchedulerFromIcs(text, { timeZone }) mengonversi file .ics sambil membacanya. |
Jika Anda membutuhkan yang belum ada
Jika aplikasi Anda bergantung pada zona waktu, sumber daya yang dikelompokkan, seret dan lepas dari luar, atau pencetakan, penjadwal ini belum bisa menggantikan FullCalendar. Buka issue untuk fitur yang Anda butuhkan. Untuk semua hal lainnya, halaman penjadwal memuat setiap input, output, dan contoh.