Articles in this section
Category / Section

How to create an Angular 7 Calendar component?

5 mins read

A quick start project that helps you to create an Angular 7 Calendar component with a minimal code configuration.

Angular 7 Calendar

The following section explains the steps required to create a simple Angular 7 Calendar component.

Pre-requisites

Make sure that you have the compatible versions of Angular in your machine before starting to work on this project.

Introduction

The Angular 7 Calendar used in this project is created from the Syncfusion ej2-angular-calendars package. You can simply define it as <ejs-calendar> within the template.

Dependencies

Before starting with this project, the Angular 7 Calendar requires to add the Syncfusion ej2-angular-calendars package from npmjs, which are distributed in npm as @syncfusion scoped packages.

Creating Angular Project

To create the Angular project using the Angular CLI tool, follow the given steps.

Install Angular CLI 7 using following command.

npm install @angular/cli@7.0.4 -g

 

Note:

If you would like to follow and run the application in Angular6 or Angular5 or Angular4, you need to replace the CLI command version number with the corresponding angular version number.

 

npm install -g @angular/cli@<CLI VERSION>

 

Now, create a new Angular project by using the command ng new and navigate to that folder.

ng new <project name>
cd <project name>

 

Install the ej2-angular-calendars package through the npm install command.

npm install @syncfusion/ej2-angular-calendars --save

 

Adding Angular 7 Calendar with Min and Max

You can add the Angular 7 Calendar component by using ejs-calendar directive and the attributes within the tag allows you to define other functionalities.

Import the Calendar module into the Angular application (app.module.ts) from the ej2-angular-calendars package.

import {BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { CalendarModule } from '@syncfusion/ej2-angular-calendars';
import { AppComponent } from './app.component';
 
@NgModule({ 
    imports: [ BrowserModule, CalendarModule ],
    declarations: [ AppComponent ],
    bootstrap: [ AppComponent ]
})
 
export class AppModule {}

 

Define the Angular Calendar code within the app.component.html file mapped against the templateUrl option in app.component.ts file.

Here, the Calendar component rendered with the min and max property

[app.component.ts]

import {Component} from '@angular/core';
 
@Component ({
    selector: 'app-root',
    templateUrl: './app.component.html'
})
 
export class AppComponent {
    public minDate: Date = new Date ("05/07/2017");
    public maxDate: Date = new Date ("08/27/2017");
    public value: Date = new Date ("05/16/2017");
    constructor () {}
}

 

[app.component.html]

<ejs-calendar id=calendar [value]='value' [min]='minDate' [max]='maxDate'></ejs-calendar>

 

Refer to the CDN link of CSS reference within the index.html file.

[index.html]

<link href="https://cdn.syncfusion.com/ej2/ej2-base/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/ej2-buttons/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/ej2-popups/styles/material.css" rel="stylesheet" />
<link href="https://cdn.syncfusion.com/ej2/ej2-calendars/styles/material.css" rel="stylesheet" />

Run the application with the command ng serve and have a Calendar with min and max date will be displayed on the browser as shown below.                                                              

                                                 calendar min&max

Multi Selection

Calendar provides an option to select single or multiple dates or sequence of dates by using isMutiSelection and values properties. By default, isMultiSelection property will be in disabled state.

[app.component.ts]

import {Component} from '@angular/core';
 
@Component ({
    selector: 'app-root',
    templateUrl: './app.component.html'
})
 
export class AppComponent {
    public value: Date [] = [new Date ("05/16/2017"), new Date ("05/12/2017"), new Date ("05/6/2017"), new Date ("05/26/2017"), new Date ("05/20/2017")]  
    public multiselect: Boolean = true;
    constructor () {}
}

 

[app.component.html]

<ejs-calendar id=calendar [values]='value' [isMultiSelection]='multiselect' ></ejs-calendar>

Run the ng serve command and have a Calendar with multiple values will be displayed on the browser as shown below.

                                                  multiselection

 Summary

Also, you can download and run the sample from this GitHub Repository. For more information about Calendar functionalities, refer UG Documentation, API Reference and Samples section.


Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied