Live <kal-calendar> below — loaded via script tag. See the integration guide for Solid.js project setup.
# Install the package npm install kalendly # Import styles in your root component or index.css import 'kalendly/styles';
// Calendar.tsx import 'kalendly'; interface Props { events?: CalendarEvent[]; title?: string; onDateSelect?: (e: CustomEvent) => void; onMonthChange?: (e: CustomEvent) => void; } export function Calendar(props: Props) { return ( <kal-calendar title={props.title} prop:events={props.events ?? []} on:cal-date-select={props.onDateSelect} on:cal-month-change={props.onMonthChange} /> ); }
// App.tsx import { createSignal } from 'solid-js'; import { Calendar } from './Calendar'; import type { CalendarEvent } from 'kalendly/core'; export function App() { const [events, setEvents] = createSignal<CalendarEvent[]>([ { id: 1, name: 'Team Standup', date: new Date() }, ]); function onDateSelect(e: CustomEvent) { console.log('Selected:', e.detail.date, e.detail.events); } return ( <Calendar events={events()} title="My Calendar" onDateSelect={onDateSelect} /> ); }
// src/types/solid-ce.d.ts // Extend Solid's JSX namespace for kal-calendar import type { CalendarEvent } from 'kalendly/core'; declare module 'solid-js' { namespace JSX { interface IntrinsicElements { 'kal-calendar': { title?: string; 'initial-date'?: string; 'week-starts-on'?: '0' | '1'; 'prop:events'?: CalendarEvent[]; 'on:cal-date-select'?: (e: CustomEvent) => void; 'on:cal-month-change'?: (e: CustomEvent) => void; }; } } }