syncfusion-maui-calendar

$npx mdskill add syncfusion/maui-ui-components-skills/syncfusion-maui-calendar

Implement and customize Syncfusion .NET MAUI Calendar control for date selection.

  • Enables single, multiple, or range date selection in MAUI apps.
  • Depends on Syncfusion.Maui.Calendar NuGet package.
  • Uses properties like MinDate, MaxDate, and SelectableDayPredicate for restrictions.
  • Returns configured SfCalendar with events and customization applied.

SKILL.md

.github/skills/syncfusion-maui-calendarView on GitHub ↗
---
name: syncfusion-maui-calendar
description: Implements and customize Syncfusion .NET MAUI Calendar (SfCalendar) control. Use when implementing calendar functionality, date selection (single, multiple, range), or calendar views (month, year, decade, century). Covers date restrictions (min/max dates, EnablePastDates, SelectableDayPredicate), calendar customization, events (ViewChanged, SelectionChanged, Tapped), and header/footer customization.
metadata:
  author: "Syncfusion Inc"
  version: "34.1.29"
---

# Implementing .NET MAUI Calendar (SfCalendar)

A comprehensive skill for implementing and customizing the Syncfusion .NET MAUI Calendar control. The SfCalendar provides powerful date selection capabilities with multiple view modes, extensive customization options, and flexible date restrictions.

## When to Use This Skill

Use this skill when you need to:
- Implement a calendar control in .NET MAUI applications
- Enable date selection (single date, multiple dates, or date ranges)
- Display calendar views (Month, Year, Decade, Century)
- Restrict date selection with min/max dates or custom validation
- Customize calendar appearance (backgrounds, text styles)
- Handle calendar events (selection changes, view changes, taps)
- Configure week numbers, first day of week, or trailing/leading dates
- Implement localization or RTL support for calendars
- Add special date highlighting or weekend styling
- Navigate programmatically between dates or views

## Component Overview

**SfCalendar** is a feature-rich calendar control that allows users to:
- Select single dates, multiple dates, or date ranges
- Navigate through Month, Year, Decade, and Century views
- Restrict dates using MinimumDate, MaximumDate, EnablePastDates, or SelectableDayPredicate
- Customize every aspect of the calendar's appearance
- Respond to user interactions through comprehensive events

**Key Capabilities:**
- 4 calendar views for flexible navigation
- 3 selection modes (Single, Multiple, Range)
- Comprehensive date restriction options
- Full customization (dates, today, trailing/leading)
- Rich event system for user interactions
- Localization and globalization support
- RTL (Right-to-Left) language support

## Documentation and Navigation Guide

### Getting Started
📄 **Read:** [references/getting-started.md](references/getting-started.md)
- Installation and NuGet package setup (Syncfusion.Maui.Calendar)
- Handler registration in MauiProgram.cs
- Basic SfCalendar initialization in XAML and C#
- First day of week customization
- Corner radius configuration

### Calendar Views
📄 **Read:** [references/calendar-views.md](references/calendar-views.md)
- Month view (default, most common)
- Year view for month selection
- Decade view for year selection
- Century view for decade selection
- NumberOfVisibleWeeks property
- Week number display (ShowWeekNumber)
- View navigation and switching

### Date Selection
📄 **Read:** [references/date-selection.md](references/date-selection.md)
- Single selection mode (one date at a time)
- Multiple selection mode (select multiple dates)
- Range selection mode (select date ranges)
- EnableSwipeSelection for range selection
- RangeSelectionDirection (Forward, Backward, Both, None)
- Programmatic selection with SelectedDate/SelectedDates/SelectedRange
- Selection behavior in different views

### Date Restrictions
📄 **Read:** [references/date-restrictions.md](references/date-restrictions.md)
- MinimumDate property (restrict backward navigation)
- MaximumDate property (restrict forward navigation)
- EnablePastDates property (disable dates before today)
- SelectableDayPredicate (custom date validation logic)
- Disabling weekends or specific dates
- Date validation patterns

### Date Navigation
📄 **Read:** [references/date-navigation.md](references/date-navigation.md)
- DisplayDate property for programmatic navigation
- Programmatic view switching
- AllowViewNavigation property
- NavigateToAdjacentMonth (leading/trailing date navigation)
- Swipe gestures for month/year navigation
- Header tap navigation between views

### Calendar Modes and Display Options
📄 **Read:** [references/calendar-modes.md](references/calendar-modes.md)
- Default mode (inline display)
- Dialog mode (centered popup)
- RelativeDialog mode (positioned popup)
- CalendarRelativePosition enum (AlignTop, AlignBottom, AlignToLeftOf, AlignToRightOf, etc.)
- IsOpen property for programmatic control
- PopupWidth and PopupHeight customization
- Date picker patterns

### Customization and Styling
📄 **Read:** [references/customizations.md](references/customizations.md)
- Month cell customization (dates, today, trailing/leading)
- Text styles (TextStyle, TodayTextStyle, DisabledDatesTextStyle)
- Background colors for all cell states
- Weekend date styling
- Special date highlighting with icons (Dot, Heart, Diamond, Star, Bell)
- Year, Decade, and Century view customization
- CalendarTextStyle properties (TextColor, FontSize, FontFamily)

### Events and Interactions
📄 **Read:** [references/events.md](references/events.md)
- ViewChanged event (view/date range changes)
- SelectionChanged event (date selection changes)
- Tapped event (single tap on dates)
- DoubleTapped event (double tap on dates)
- LongPressed event (long press on dates)
- Event arguments and data
- Event handling patterns

### Headers and Footers
📄 **Read:** [references/headers-footers.md](references/headers-footers.md)
- HeaderView customization (height, background, text style)
- Header text format customization
- ShowNavigationArrows property
- HeaderTemplate for custom header UI
- FooterView customization
- Custom footer templates

### Localization and Advanced Features
📄 **Read:** [references/localization-advanced.md](references/localization-advanced.md)
- Globalization and localization setup
- CurrentUICulture configuration
- Resource file creation for multiple languages
- RTL (Right-to-Left) support
- CalendarIdentifier (Gregorian, Hijri, etc.)
- Calendar modes
- Liquid glass effect
- Advanced visual customization

More from syncfusion/maui-ui-components-skills

SkillDescription
syncfusion-maui-accordionImplements Syncfusion .NET MAUI Accordion (SfAccordion) - a vertically collapsible panel with stacked headers for expanding/collapsing content. Use when working with accordions, collapsible panels, expandable lists, employee lists with details, or FAQ sections in .NET MAUI applications. Covers AccordionItem configuration, expand modes, and grouped content display.
syncfusion-maui-ai-assistviewImplements Syncfusion .NET MAUI AI AssistView (SfAIAssistView) for AI-powered interactive chat interfaces. Use when working with AI chat interfaces, AI AssistView, SfAIAssistView, conversational UI, or chat with AI responses. Covers integrating AI services, creating chat UIs, implementing conversation flows, managing AI requests/responses, and displaying AI suggestions.
syncfusion-maui-autocompleteImplements and configure Syncfusion .NET MAUI Autocomplete (SfAutocomplete) control for intelligent text input with suggestions. Use when implementing autocomplete, autosuggest, type-ahead search, smart search, or filtered dropdowns in .NET MAUI applications. Covers data binding, filtering modes, custom search logic, AI-powered search, multi-selection with tokens, and UI customization.
syncfusion-maui-avatar-viewImplements Syncfusion .NET MAUI Avatar View (SfAvatarView) for displaying user profile pictures, initials, or group avatars. Use when working with avatar views, profile pictures, user images, initials display, profile icons, or contact images. Ideal for implementing user profile displays, contact lists, chat interfaces, or social feeds.
syncfusion-maui-backdropImplements Syncfusion .NET MAUI Backdrop Page (SfBackdropPage) with back layer and front layer surfaces. Use when working with backdrop pages, SfBackdropPage, back layer, front layer, or reveal/conceal animations. Covers backdrop navigation patterns, header icons, corner shapes, reveal height, layer state events, and liquid glass effect.
syncfusion-maui-badge-viewImplements Syncfusion .NET MAUI Badge View (SfBadgeView) control. Use when adding badge notifications, status indicators, unread counts, or notification overlays to MAUI applications. Covers SfBadgeView setup, badge text customization, position adjustments, animations, predefined symbols, and accessibility features.
syncfusion-maui-barcode-generatorImplements Syncfusion .NET MAUI Barcode Generator (SfBarcodeGenerator) for generating machine-readable barcodes. Use when working with barcodes, barcode generation, QR codes, data matrix, EAN codes, UPC codes, Code128, or Code39. This skill covers both one-dimensional (linear) and two-dimensional (matrix) barcode symbologies with extensive customization options.
syncfusion-maui-busy-indicatorImplements Syncfusion .NET MAUI Busy Indicator (SfBusyIndicator) for showing loading states, data processing, and app activity indicators. Use when displaying loading indicators, busy animations, activity spinners, or processing feedback in .NET MAUI apps. Covers busy indicator setup, animations, and visual feedback during long-running operations.
syncfusion-maui-buttonImplements and customize Syncfusion .NET MAUI Button (SfButton) control. Use when working with MAUI buttons, SfButton implementation, button customization, or visual states. Covers button icons, background images, RTL support, Liquid Glass effects, custom button views, button styling, events, and checkable buttons.
syncfusion-maui-cardsImplements Syncfusion .NET MAUI Cards (SfCards) - dismissible card views and swipeable card stacks. Use when working with cards, card views, card layouts, swipeable cards, dismissible cards, or card stacks in .NET MAUI. Covers card customization, card events, card data binding, and interactive card components with swipe functionality.