Calendar

A full calendar component for displaying events in day, week, or month views.
Overview API

Week View


  <wc-calendar id="week-calendar" view="week" style="height: 700px; width: 100%"></wc-calendar>
  <script>
    (function() {
      const $calendar = document.getElementById('week-calendar');

      const today = new Date();
      today.setHours(0, 0, 0, 0);

      function addDays(date, days) {
        var result = new Date(date);
        result.setDate(result.getDate() + days);
        return result;
      }

      function addHours(date, hours) {
        var result = new Date(date);
        result.setHours(result.getHours() + hours);
        return result;
      }

      $calendar.events = [
        {
          start: addHours(today, 9),
          end: addHours(today, 11),
          title: 'Team Standup',
        },
        {
          start: addHours(today, 10),
          end: addHours(today, 12),
          title: 'Design Review',
          color: 'red'
        },
        {
          start: addHours(today, 14),
          end: addHours(today, 15),
          title: 'Sprint Planning',
          color: 'green'
        },
        {
          start: addHours(addDays(today, 1), 8),
          end: addHours(addDays(today, 1), 10),
          title: 'Code Review',
        },
        {
          start: addHours(addDays(today, 1), 13),
          end: addHours(addDays(today, 1), 16),
          title: 'Workshop',
          color: 'orange'
        },
        {
          start: addHours(addDays(today, -1), 10),
          end: addHours(addDays(today, -1), 11),
          title: 'Retrospective',
        },
        {
          start: addDays(today, -1),
          end: addDays(today, 2),
          title: 'Conference (multi-day)',
          color: 'blue'
        },
      ];

      $calendar.addEventListener('event-click', function(evt) {
        console.log('Event clicked:', evt.detail);
      });
    })();
  </script>

Month View


  <wc-calendar id="month-calendar" view="month" style="height: 700px; width: 100%"></wc-calendar>
  <script>
    (function() {
      const $calendar = document.getElementById('month-calendar');

      const today = new Date();
      today.setHours(0, 0, 0, 0);

      function addDays(date, days) {
        var result = new Date(date);
        result.setDate(result.getDate() + days);
        return result;
      }

      function addHours(date, hours) {
        var result = new Date(date);
        result.setHours(result.getHours() + hours);
        return result;
      }

      $calendar.events = [
        {
          start: addHours(today, 9),
          end: addHours(today, 11),
          title: 'Team Standup',
        },
        {
          start: addDays(today, 2),
          end: addDays(today, 5),
          title: 'Sprint Week',
          color: 'green'
        },
        {
          start: addDays(today, -3),
          end: addDays(today, -1),
          title: 'Training',
          color: 'blue'
        },
        {
          start: addHours(addDays(today, 7), 14),
          end: addHours(addDays(today, 7), 16),
          title: 'All Hands Meeting',
          color: 'red'
        },
        {
          start: addDays(today, 10),
          end: addDays(today, 12),
          title: 'Hackathon',
          color: 'orange'
        },
      ];

      $calendar.addEventListener('event-click', function(evt) {
        console.log('Event clicked:', evt.detail);
      });
    })();
  </script>

Day View


  <wc-calendar id="day-calendar" view="day" style="height: 700px; width: 100%"></wc-calendar>
  <script>
    (function() {
      const $calendar = document.getElementById('day-calendar');

      const today = new Date();
      today.setHours(0, 0, 0, 0);

      function addHours(date, hours) {
        var result = new Date(date);
        result.setHours(result.getHours() + hours);
        return result;
      }

      $calendar.events = [
        {
          start: addHours(today, 8),
          end: addHours(today, 9),
          title: 'Morning Standup',
        },
        {
          start: addHours(today, 10),
          end: addHours(today, 12),
          title: 'Focus Time',
          color: 'blue'
        },
        {
          start: addHours(today, 10),
          end: addHours(today, 11),
          title: 'Quick Sync',
          color: 'green'
        },
        {
          start: addHours(today, 13),
          end: addHours(today, 14),
          title: 'Lunch & Learn',
          color: 'orange'
        },
        {
          start: addHours(today, 15),
          end: addHours(today, 17),
          title: 'Code Review Session',
          color: 'red'
        },
      ];

      $calendar.addEventListener('event-click', function(evt) {
        console.log('Event clicked:', evt.detail);
      });
    })();
  </script>

On this page

Sponsor

Properties

Events

Methods

CSS Custom Properties