Svelte Demo

Live <kal-calendar> below — loaded via script tag. See the integration guide for Svelte project setup.

Event Log

Svelte Integration Guide
# Install the package
npm install kalendly

# Import styles in your global CSS or layout
import 'kalendly/styles';
<!-- Calendar.svelte (Svelte 5) -->
<script>
  import 'kalendly';

  // Runes syntax
  let { events = [], title = '', ondateselect, onmonthchange } = $props();
</script>

<kal-calendar
  {title}
  {events}
  oncal-date-select={ondateselect}
  oncal-month-change={onmonthchange}
/>
<!-- Calendar.svelte (Svelte 4) -->
<script>
  import { onMount } from 'svelte';
  import 'kalendly';

  export let events = [];
  export let title = '';

  let calEl;

  // Svelte 4: set object props via bind:this
  onMount(() => { calEl.events = events; });
  $: if (calEl) calEl.events = events;
</script>

<kal-calendar
  bind:this={calEl}
  {title}
  on:cal-date-select
  on:cal-month-change
/>
<!-- App.svelte -->
<script>
  import Calendar from './Calendar.svelte';

  let events = [
    { id: 1, name: 'Team Standup', date: new Date() },
  ];

  function onDateSelect(e) {
    console.log('Selected:', e.detail.date);
  }
</script>

<Calendar
  {events}
  title="My Calendar"
  on:cal-date-select={onDateSelect}
/>