CalendarModel QML Type | Qt Quick Controls 6.7.3
Description: A calendar model.

- Qt 6.7
- Qt Quick Controls
- QML Types
- CalendarModel
- Qt 6.7.3 Reference Documentation

# CalendarModel QML Type

A calendar model. More...

Import Statement: | import QtQuick.Controls

- List of all members, including inherited members

## Properties

- from : date
- to : date

## Methods

- int indexOf(Date date)
- int indexOf(int year, int month)
- int monthAt(int index)
- int yearAt(int index)

## Detailed Description

CalendarModel provides a way of creating a range of MonthGrid instances. It is typically used as a model for a ListView that uses MonthGrid as a delegate.

     ListView {
         id: listview

         width: 200; height: 200
         snapMode: ListView.SnapOneItem
         orientation: ListView.Horizontal
         highlightRangeMode: ListView.StrictlyEnforceRange

         model: CalendarModel {
             from: new Date(2015, 0, 1)
             to: new Date(2015, 11, 31)
         }

         delegate: MonthGrid {
             width: listview.width
             height: listview.height

             month: model.month
             year: model.year
             locale: Qt.locale("en_US")
         }

         ScrollIndicator.horizontal: ScrollIndicator { }
     }

In addition to the `index` property, a list of model data roles are available in the context of each delegate:

model.month : int | The number of the month
model.year : int | The number of the year

The Qt Quick Calendar module uses 0-based month numbers to be consistent with the JavaScript Date type, that is used by the QML language. This means that `Date::getMonth()` can be passed to the methods as is. When dealing with month numbers directly, it is highly recommended to use the following enumeration values to avoid confusion.

Constant | Description
--- | ---
`Calendar.January` | January (0)
`Calendar.February` | February (1)
`Calendar.March` | March (2)
`Calendar.April` | April (3)
`Calendar.May` | May (4)
`Calendar.June` | June (5)
`Calendar.July` | July (6)
`Calendar.August` | August (7)
`Calendar.September` | September (8)
`Calendar.October` | October (9)
`Calendar.November` | November (10)
`Calendar.December` | December (11)

See also MonthGrid and Calendar.

## Property Documentation

from : date

This property holds the start date.

to : date

This property holds the end date.

## Method Documentation

int indexOf(Date date)

Returns the model index of the specified date.

int indexOf(int year, int month)

Returns the model index of the specified year and month.

int monthAt(int index)

Returns the month number at the specified model index.

int yearAt(int index)

Returns the year number at the specified model index.