Безкоштовно · MIT · TypeScript · Без залежностей

Швидкий JavaScript-календар подій

Подання Month, Week, Day і Agenda з безперервною навігацією та адаптивними розкладками.

Розрахований на реальні дані застосунку, великі колекції подій і вузькі контейнери — без постійного розростання DOM.

Стабільна версія · 1.0.0

npm GitHub

RollDateEvents · week view
Подання Week у RollDate Events із подіями на сітці часу
4подання
0залежностей під час виконання
TSвизначення
MITліцензія
Безкоштовноopen source

Подання

Чотири подання, одна модель події

Подання Month у RollDate Events із чіпами подій

Month

Огляд місяця з чіпами подій; на вузьких контейнерах — компактні кольорові крапки.

Подання Week у RollDate Events із сіткою часу

Week

Сітка часу зі смугою all-day і розкладкою подій, що перекриваються.

Подання Day у RollDate Events

Day

Розклад одного дня з вертикальною навігацією між датами.

Список Agenda в RollDate Events, згрупований за датами

Agenda

Повний список подій, згрупований за датами, зі звичайним прокручуванням.

Відкрити інтерактивне демо →

Архітектура

Безперервна навігація без нескінченного DOM

  • Буферизована навігаціяПодання монтують обмежений буфер сегментів дат
  • Підготовка за діапазономonVisibleRangeChange для лінивого завантаження
  • Окреме сховище подійІндекс за днями, незалежно від рендеру подання
  • Стабільне прокручуванняОновлення подій зберігають навігацію, де це можливо

Як архітектура календаря тримає великі набори даних →

API

Зроблено під дані подій

calendar.js
calendar.setEvents(events)
calendar.getEvents()
calendar.addEvent({ id: 2, title: 'Review', start, end })
calendar.updateEvent(1, { title: 'Standup (remote)' })
calendar.removeEvent(1)

Адаптивність

Адаптується до ширини контейнера

Розкладка реагує на контейнер календаря — компактні крапки в Month, читабельні колонки Week, щільні рядки Agenda. Використовує ResizeObserver, коли він доступний.

Швидкий старт

Встановлення з npm

terminal
npm install @rolldate/events
app.js
import { RollDateEvents } from '@rolldate/events'
import '@rolldate/events/styles'

new RollDateEvents('#calendar', {
  defaultView: 'week',
  events: [{ id: 1, title: 'Standup', start: '2026-08-30T09:00:00', end: '2026-08-30T09:30:00' }]
})

Охоплення

Безкоштовно й з відкритим кодом

RollDate Events 1.0 — повноцінна безкоштовна бібліотека календаря подій під ліцензією MIT без залежностей під час виконання.

Не входить у v1: drag and drop, зміна розміру подій, resource timeline, розгортання повторюваних подій.

Спробуйте RollDate Events на своїх даних