Token导航 LogoToken导航

Agent Skill · 待分类

syncfusion-angular-calendar(syncfusion Angular 日历)

syncfusion-angular-calendar 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

syncfusion-angular-calendar 是待分类类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描已通过,按安装量在待分类类的 11,209 个 Skill 里排第 4,813。

总安装 672周安装 28GitHub Stars 公开资料未说明下载 224核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:syncfusion-angular-calendar(syncfusion Angular 日历)
来源仓库:https://github.com/syncfusion/angular-ui-components-skills
仓库路径:skills/syncfusion-angular-calendar
安装命令:
npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-calendar
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-calendar

这个 Skill 是做什么的

这个 Skill 的分类还没最终确定,用法以来源仓库的说明为准。

创建日历组件,支持日期选择、事件标记与日程管理。syncfusion-angular-calendar 属于待分类类 Skill,可作为该场景下的辅助能力补充。适用于项目管理、预约系统等需要时间维度操作的界面。通过 GitHub 仓库安装,使用 npx 命令添加技能并指定路径。

需处理时区转换与本地化显示,适配多地区用户需求。高并发场景下应考虑渲染性能优化,避免卡顿影响体验。

来源仓库内路径:skills/syncfusion-angular-calendar

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/syncfusion/angular-ui-components-skills --skil…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

syncfusion-angular-calendar 怎么安装?

在终端执行 npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusi…。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

syncfusion-angular-calendar 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

syncfusion-angular-calendar 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

syncfusion-angular-calendar 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

syncfusion-angular-calendar 用的人多吗?

公开数据是累计安装 672 次,近一周安装 28 次,下载 224 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

syncfusion-angular-calendar 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理待分类类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

待分类类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
infsh-cli

infsh CLI · Codex、Claude

4,374,576382权限未标注未明确未收录
ai-video-generation

AI 视频生成 · Codex、Claude

4,313,376382调用外部服务未明确有提醒
lark-openapi-explorer

云雀 OpenAPI 浏览器 · Codex、Claude

2,064,1209,011需要联网未明确有提醒
lark-workflow-standup-report

Lark 工作流程站立报告 · Codex、Claude

2,041,6328,978需要联网未明确通过
use-my-browser

使用我的浏览器 · Codex、Claude

1,848,49140操作浏览器未明确未通过
syncfusion-angular-calendar

syncfusion Angular 日历 · 本页

672—需要联网未明确通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Implementing Syncfusion Angular Calendar

A comprehensive guide for implementing the Syncfusion Essential JS 2 Calendar component in Angular applications. Learn to create date pickers, manage calendar views, handle events, and customize styling.

Calendar Overview

The Syncfusion Angular Calendar component is a date selection widget that provides:

  • Multiple calendar views: Month (default), Year, and Decade views with smooth navigation
  • Date selection modes: Single date or multiple dates with isMultiSelection property
  • Navigation control: navigateTo() method for programmatic view switching
  • Date manipulation methods: addDate() and removeDate() for multi-selection management
  • Comprehensive event system: change, created, navigated, renderDayCell, destroyed events
  • Localization support: Locale-specific formatting, day header formats, first day of week
  • Accessibility: Full WCAG 2.2 compliance, keyboard navigation, RTL support
  • Rich customization: CSS classes, custom rendering, day cell customization
  • Persistence: Optional state persistence across page reloads

Package: @syncfusion/ej2-angular-calendars

Documentation Navigation

Read the following references based on your specific needs:

Getting Started

📄 Read: references/getting-started.md

  • Package installation and module setup
  • CSS theme imports and dependencies
  • Basic calendar implementation
  • Component initialization in Angular
  • Running and testing setup

Calendar Views

📄 Read: references/calendar-views.md

  • Month view (default display)
  • Year view implementation
  • Decade view implementation
  • View navigation and transitions
  • start property usage
  • depth property for restricting views

Date Selection

📄 Read: references/date-selection.md

  • Single date selection
  • Multiple date selection (isMultiSelection)
  • value property for single dates
  • values array for multiple dates
  • Min/max date constraints
  • Date range validation

Events & Methods

📄 Read: references/events-and-methods.md

  • Event handlers (change, created, navigated, renderDayCell, destroyed)
  • addDate() method for multi-selection
  • removeDate() method for multi-selection
  • navigateTo() for programmatic navigation
  • currentView() to get active view
  • getPersistData() to retrieve persistence data
  • destroy() to destroy the calendar widget
  • RenderDayCell for custom day styling

Calendar Navigation

📄 Read: references/calendar-navigation.md

  • Month navigation controls
  • Year and Decade view switching
  • Today button (showTodayButton)
  • firstDayOfWeek property
  • Week number display (weekNumber)
  • Keyboard shortcuts and navigation

Accessibility & Globalization

📄 Read: references/accessibility-and-globalization.md

  • WCAG 2.2 and Section 508 compliance
  • WAI-ARIA attributes and roles
  • Keyboard navigation (arrows, enter, spacebar)
  • Screen reader compatibility
  • Localization (locale property)
  • Day header formats (Short, Narrow, Abbreviated, Wide)
  • RTL (Right-to-Left) support

Styling & Customization

📄 Read: references/styling-and-customization.md

  • CSS class customization (.e-calendar,.e-day-cell,.e-selected)
  • Theme selection (Material, Bootstrap, Tailwind, Fabric)
  • Dark mode implementation
  • Custom day cell styling via renderDayCell
  • Disabled dates styling
  • Hover and focus states

API Reference

📄 Read: references/api-reference.md

  • Complete property reference (value, values, isMultiSelection, min, max, start, depth, showTodayButton, locale, dayHeaderFormat, weekNumber, weekRule, firstDayOfWeek, cssClass, enableRtl, enabled, calendarMode, keyConfigs, enablePersistence, serverTimezoneOffset)
  • All method signatures with examples (addDate, removeDate, navigateTo, currentView, getPersistData, destroy)
  • Event argument types (ChangedEventArgs, NavigatedEventArgs, RenderDayCellEventArgs)
  • Key configurations for keyboard shortcuts
  • Calendar modes (Gregorian, Islamic)
  • Return types and descriptions

Quick Start Example

// app.component.ts
import { Component } from '@angular/core';
import { ChangedEventArgs } from '@syncfusion/ej2-calendars';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  // Single date selection
  selectedDate: Date = new Date();

  // Multiple date selection
  selectedDates: Date[] = [
    new Date(2026, 2, 15),
    new Date(2026, 2, 20),
    new Date(2026, 2, 25)
  ];

  // Calendar configuration
  minDate: Date = new Date(2020, 0, 1);
  maxDate: Date = new Date(2030, 11, 31);

  // Event handler
  onCalendarChange(args: ChangedEventArgs): void {
    console.log('Selected date:', args.value);
  }
}
<!-- app.component.html -->
<div style="padding: 20px; font-family: Arial, sans-serif;">
  <h2>Single Date Selection</h2>
  <ejs-calendar
    [(ngModel)]="selectedDate"
    [min]="minDate"
    [max]="maxDate"
    (change)="onCalendarChange($event)">
  </ejs-calendar>
  <p>Selected: {{ selectedDate | date:'medium' }}</p>

  <h2>Multiple Date Selection</h2>
  <ejs-calendar
    [(ngModel)]="selectedDates"
    [isMultiSelection]="true"
    [showTodayButton]="true">
  </ejs-calendar>
  <p>Selected dates: {{ selectedDates.length }} dates</p>
</div>
/* app.component.css */
@import '../node_modules/@syncfusion/ej2-base/styles/material3.css';
@import '../node_modules/@syncfusion/ej2-calendars/styles/material3.css';

:host ::ng-deep .e-calendar {
  margin: 20px 0;
}

:host ::ng-deep .e-selected {
  background-color: #3f51b5;
  color: white;
}

Common Patterns

Pattern 1: Custom Date Range (Two Calendar Instances)

The Calendar component does not have built-in range selection. Use two separate Calendar instances with min/max constraints and the change event to implement a custom date range picker:

export class AppComponent {
  startDate: Date = new Date();
  endDate: Date = new Date();

  onStartDateChange(args: ChangedEventArgs): void {
    this.startDate = args.value;
    // Ensure end date is not before start date
    if (this.endDate < this.startDate) {
      this.endDate = this.startDate;
    }
  }

  onEndDateChange(args: ChangedEventArgs): void {
    this.endDate = args.value;
  }

  getDaysInRange(): number {
    const timeDiff = this.endDate.getTime() - this.startDate.getTime();
    return Math.ceil(timeDiff / (1000 * 3600 * 24)) + 1;
  }
}
<!-- Two separate Calendar instances for range selection -->
<ejs-calendar [(ngModel)]="startDate" (change)="onStartDateChange($event)"></ejs-calendar>
<ejs-calendar [(ngModel)]="endDate" [min]="startDate" (change)="onEndDateChange($event)"></ejs-calendar>
Note: For a built-in range picker, use the DateRangePicker component instead.

Pattern 2: Calendar with Disabled Dates

Disable specific dates (weekends, holidays) using renderDayCell event:

export class AppComponent {
  holidays: Date[] = [
    new Date(2026, 11, 25), // Christmas
    new Date(2026, 0, 1),   // New Year
  ];

  onRenderDayCell(args: RenderDayCellEventArgs): void {
    // Disable weekends
    if (args.date.getDay() === 0 || args.date.getDay() === 6) {
      args.isDisabled = true;
    }

    // Disable holidays
    if (this.isHoliday(args.date)) {
      args.isDisabled = true;
    }
  }

  private isHoliday(date: Date): boolean {
    return this.holidays.some(holiday =>
      holiday.toDateString() === date.toDateString()
    );
  }
}

Pattern 3: Multi-Selection with Add/Remove

Manage multiple selected dates programmatically:

export class AppComponent {
  @ViewChild('calendar') calendarRef!: CalendarComponent;
  selectedDates: Date[] = [];

  addDateToSelection(date: Date): void {
    // Check if already selected
    if (!this.selectedDates.some(d =>
        d.toDateString() === date.toDateString())) {
      this.calendarRef.addDate(date);
    }
  }

  removeDateFromSelection(date: Date): void {
    this.calendarRef.removeDate(date);
  }

  clearAllDates(): void {
    if (this.selectedDates.length > 0) {
      this.calendarRef.removeDate(this.selectedDates);
    }
  }
}

Pattern 4: Year/Decade View Navigation

Implement navigation to different calendar views:

export class AppComponent {
  @ViewChild('calendar') calendarRef!: CalendarComponent;

  navigateToYear(year: number): void {
    const dateInYear = new Date(year, 0, 1);
    this.calendarRef.navigateTo('Year', dateInYear);
  }

  navigateToDecade(startYear: number): void {
    const dateInDecade = new Date(startYear, 0, 1);
    this.calendarRef.navigateTo('Decade', dateInDecade);
  }

  getCurrentView(): string {
    return this.calendarRef.currentView();
  }
}

Pattern 5: Reactive Form Integration

Integrate Calendar with Angular Reactive Forms:

export class AppComponent implements OnInit {
  dateForm: FormGroup;

  constructor(private fb: FormBuilder) {
    this.dateForm = this.fb.group({
      eventDate: [new Date(), Validators.required],
      eventName: ['', Validators.required]
    });
  }

  ngOnInit(): void {
    // Subscribe to date changes
    this.dateForm.get('eventDate')?.valueChanges.subscribe(date => {
      console.log('Event date changed:', date);
    });
  }

  submitForm(): void {
    if (this.dateForm.valid) {
      console.log('Form values:', this.dateForm.value);
    }
  }
}
<form [formGroup]="dateForm" (ngSubmit)="submitForm()">
  <div>
    <label for="eventDate">Event Date:</label>
    <ejs-calendar
      id="eventDate"
      formControlName="eventDate">
    </ejs-calendar>
  </div>

  <div>
    <label for="eventName">Event Name:</label>
    <input
      id="eventName"
      type="text"
      formControlName="eventName">
  </div>

  <button type="submit" [disabled]="!dateForm.valid">Submit</button>
</form>

Key Props Reference

PropTypeDescriptionExample
valueDateSingle selected date[value]="selectedDate"
valuesDate[]Multiple selected dates[values]="selectedDates"
isMultiSelectionbooleanEnable multiple date selection[isMultiSelection]="true"
minDateMinimum selectable date[min]="minDate"
maxDateMaximum selectable date[max]="maxDate"
startCalendarViewInitial view (Month/Year/Decade)start="Month"
depthCalendarViewMaximum view leveldepth="Month"
showTodayButtonbooleanDisplay today button[showTodayButton]="true"
localestringCulture/language codelocale="fr-FR"
dayHeaderFormatDayHeaderFormatsDay format (Short/Narrow/Abbreviated/Wide)dayHeaderFormat="Abbreviated"
weekNumberbooleanShow week numbers[weekNumber]="true"
weekRuleWeekRuleRule for first week of year (FirstDay/FirstFullWeek/FirstFourDayWeek)weekRule="FirstFourDayWeek"
firstDayOfWeeknumberFirst day (0=Sunday, 1=Monday)[firstDayOfWeek]="1"
cssClassstringCustom CSS classescssClass="custom-calendar"
enableRtlbooleanEnable RTL layout[enableRtl]="true"
enabledbooleanEnable/disable component[enabled]="true"
calendarModeCalendarTypeCalendar mode (Gregorian/Islamic)calendarMode="Islamic"
keyConfigs{[key: string]: string}Custom keyboard shortcuts[keyConfigs]="keyConfigs"
enablePersistencebooleanPersist state across page reloads[enablePersistence]="true"
serverTimezoneOffset`number \null`Server timezone offset for initial date processing[serverTimezoneOffset]="330"

Common Use Cases

Use Case 1: Event Booking System

  • User selects start and end dates for event
  • Disable past dates and weekends
  • Solution: Combine min/max dates with renderDayCell for disable logic
  • Reference: Calendar Views + Events & Methods

Use Case 2: Conference Schedule

  • Display multiple highlighted dates (conference days)
  • Allow year/decade navigation for planning
  • Solution: Use isMultiSelection, highlight dates, navigate between views
  • Reference: Date Selection + Calendar Navigation

Use Case 3: Accessible Booking Form

  • Calendar integrated in form with keyboard navigation
  • Screen reader compatible, WCAG 2.2 compliant
  • Solution: Use Reactive Forms + Calendar events
  • Reference: Accessibility & Globalization

Use Case 4: International Date Picker

  • Support multiple languages and date formats
  • Show RTL for Arabic, Hebrew
  • Solution: Use locale property and localization
  • Reference: Accessibility & Globalization

Use Case 5: Dynamic Date Constraints

  • Disable dates based on business logic (availability, holidays)
  • Update constraints based on user selections
  • Solution: Use renderDayCell with dynamic logic
  • Reference: Events & Methods + Calendar Views

Related Skills


Next Steps: Choose a reference guide above based on your specific needs, or explore the common patterns section for your use case.

平台分布

Codex

34.46%
按下载量换算77

Claude

30.23%
按下载量换算68

Cursor

16.64%
按下载量换算37

Gemini CLI

9.54%
按下载量换算21

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills