A lightweight, reusable, and performance-optimized Month View Event Calendar built using Angular 17 Standalone Components, Signals, and Angular Animations.
Designed for enterprise applications like:
- HRMS
- Task Management
- Scheduling Systems
- Booking Systems
- Admin Dashboards
- 6×7 (42 cell) month grid
- Correct weekday alignment
- Previous / Next navigation
- Today highlight
- Weekend styling
- Disabled other-month dates
- Event count badge
- Total duration display
- Expand week to view events
- Configurable event actions
- Parent-controlled edit/delete
- Double-click (desktop) support
- Long press (mobile) support
| Device | Action | Result |
|---|---|---|
| Desktop | Double click | Add event |
| Mobile | Long press (500ms) | Add event |
| Click | badge | Expand week |
- Selected date highlight
- Smooth expand/collapse animation
- Responsive layout
- Clean enterprise styling
- Angular Signals
trackByoptimizations- Optional O(1) event lookup map
- Fully reusable standalone component
Clone the repository:
git clone https://github.com/your-username/angular-event-calendar.git
cd angular-event-calendar
npm install
ng serveIn app.config.ts:
import { provideAnimations } from '@angular/platform-browser/animations';
export const appConfig = {
providers: [
provideAnimations()
]
};Import Component
import { MonthCalendarComponent } from './month-calendar/month-calendar.component';<month-calendar
[events]="events"
(doubleClickOnCell)="addEvent($event)"
(eventAction)="onEventAction($event)"
(changeMonthView)="onchangeMonthView($event)">
</month-calendar>MIT
If you found this useful, give it a ⭐ on GitHub!
- Maram Chandrasekhar Reddy @chandumaram