@calendarjs/ce
v1.0.6
Published
A comprehensive JavaScript collection of calendar components including Calendar, Schedule, and Timeline with React and Vue support
Maintainers
Readme
CalendarJS
Lightweight JavaScript components for calendars, schedules, and timelines. Works with React, Vue, Angular, or vanilla JS.
Components
| Component | Size | Description | |-----------|------|-------------| | Calendar | 3.2KB | Date picker with range and time selection | | Schedule | 4.2KB | Day/week event scheduler with drag-and-drop | | Timeline | 2.1KB | Chronological event display | | Helpers | 1KB | Date utilities and formatting |
Installation
npm install @calendarjs/ceOr via CDN:
<script src="https://cdn.jsdelivr.net/npm/lemonadejs/dist/lemonade.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@calendarjs/ce/dist/index.min.js"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@calendarjs/ce/dist/style.min.css" />Quick Start
Calendar
import { Calendar } from '@calendarjs/ce';
Calendar(document.getElementById('calendar'), {
type: 'inline',
value: '2025-01-15',
onchange: (self, value) => console.log(value)
});Schedule
import { Schedule } from '@calendarjs/ce';
Schedule(document.getElementById('schedule'), {
type: 'week',
value: '2025-01-15',
data: [
{ guid: '1', title: 'Meeting', date: '2025-01-15', start: '09:00', end: '10:00', color: '#3498db' }
]
});Timeline
import { Timeline } from '@calendarjs/ce';
Timeline(document.getElementById('timeline'), {
data: [
{ title: 'Project Start', date: '2025-01-01', borderColor: '#3498db' },
{ title: 'Launch', date: '2025-03-01', borderColor: '#27ae60' }
]
});React
import { Calendar, Schedule, Timeline } from '@calendarjs/ce/dist/react';
import '@calendarjs/ce/dist/style.css';
function App() {
return <Calendar type="inline" value="2025-01-15" />;
}Vue
<template>
<Calendar type="inline" value="2025-01-15" />
</template>
<script>
import { Calendar } from '@calendarjs/ce/dist/vue';
import '@calendarjs/ce/dist/style.css';
export default {
components: { Calendar }
}
</script>Calendar Options
| Option | Type | Description |
|--------|------|-------------|
| type | 'default' \| 'inline' \| 'picker' | Display mode |
| value | string \| Date | Selected date |
| range | boolean | Enable range selection |
| time | boolean | Show time picker |
| format | string | Date format (e.g., 'DD/MM/YYYY') |
| validRange | string[] | Restrict selectable dates |
| onchange | function | Callback on date change |
Schedule Options
| Option | Type | Description |
|--------|------|-------------|
| type | 'day' \| 'week' \| 'weekdays' | View type |
| value | string | Current date (YYYY-MM-DD) |
| data | Event[] | Array of events |
| grid | number | Time interval in minutes (default: 15) |
| validRange | string[] | Visible time range (e.g., ['08:00', '18:00']) |
| weekly | boolean | Recurring weekly mode |
Event Object
{
guid: string; // Unique identifier
title: string; // Event title
date: string; // YYYY-MM-DD (or weekday 0-6 if weekly: true)
start: string; // HH:MM
end?: string; // HH:MM
color: string; // Hex color
}Schedule Methods
const schedule = Schedule(element, options);
schedule.addEvents({ guid: '2', title: 'New', date: '2025-01-15', start: '14:00', color: '#e74c3c' });
schedule.updateEvent('2', { title: 'Updated' });
schedule.deleteEvents('2');
schedule.getData();
schedule.undo();
schedule.redo();Timeline Options
| Option | Type | Description |
|--------|------|-------------|
| data | Item[] | Array of timeline items |
| type | 'default' \| 'monthly' | Display mode |
| align | 'left' \| 'right' | Bullet alignment |
| order | 'asc' \| 'desc' | Sort order |
Helpers
import { Helpers } from '@calendarjs/ce';
Helpers.now(); // "2025-01-15 14:30:00"
Helpers.dateToNum(new Date()); // 45678 (Excel serial)
Helpers.numToDate(45678); // "2025-01-15"
Helpers.prettify('2025-01-15 12:00'); // "2h ago"
Helpers.isValidDate(new Date()); // true
Helpers.isValidDateFormat('2025-01-15'); // trueTypeScript
Type definitions included. Import types:
import type { Calendar, Schedule, Timeline } from '@calendarjs/ce';Documentation
License
MIT
