$npx -y skills add DevExpress/agent-skills --skill devexpress-winforms-schedulerDevExpress WinForms Scheduler (SchedulerControl with SchedulerDataStorage; Day/WorkWeek/FullWeek/Month/Year/Timeline/Agenda/Gantt views; appointments, resources, recurrence, reminders, labels, statuses). Covers getting started (NuGet, RibbonForm, DateNavigator, Start), data bindi
| 1 | # DevExpress WinForms Scheduler Control |
| 2 | |
| 3 | `DevExpress.XtraScheduler.SchedulerControl` is a full-featured scheduling and calendar control for WinForms. It supports multiple interchangeable views (Day, Work Week, Month, Timeline, Gantt, Agenda, Year), rich appointment data items with recurrence and reminders, resource-based grouping, and extensible appearance customization. It is designed for scenarios ranging from simple personal calendars to complex multi-resource booking systems. |
| 4 | |
| 5 | The control is backed by a `SchedulerDataStorage` instance which manages the `Appointments` and `Resources` collections. In bound mode these collections are synchronized to a data source via field mappings. In unbound mode appointments and resources are created directly in code. |
| 6 | |
| 7 | ## When to Use This Skill |
| 8 | |
| 9 | - Create a calendar or scheduling UI for end users (Day/Week/Month planner, timeline, or Gantt chart). |
| 10 | - Bind the scheduler to a database via a DataSet or BindingSource with field mappings. |
| 11 | - Add appointments in code (simple, all-day, recurring series). |
| 12 | - Configure recurrence rules (daily, weekly, monthly, yearly, hourly, minutely). |
| 13 | - Attach reminders and handle `ReminderAlert`. |
| 14 | - Categorize appointments with labels (background color) and statuses (side strip). |
| 15 | - Switch or restrict views at runtime. |
| 16 | - Customize appointment appearance without full owner-draw (`AppointmentViewInfoCustomizing`) or with owner-draw (`CustomDrawAppointment`). |
| 17 | - Group appointments by resource in Timeline or Day view. |
| 18 | |
| 19 | ## Prerequisites & Installation |
| 20 | |
| 21 | ### NuGet Package |
| 22 | |
| 23 | ``` |
| 24 | DevExpress.Win.Scheduler |
| 25 | ``` |
| 26 | |
| 27 | Install via the NuGet Package Manager or the DevExpress Unified Component Installer. The package pulls in `DevExpress.XtraScheduler.v26.1.dll` and related assemblies. |
| 28 | |
| 29 | ### Host Form Requirements |
| 30 | |
| 31 | The `SchedulerControl` works in a plain `Form`, but use `DevExpress.XtraEditors.XtraForm` (or `DevExpress.XtraBars.Ribbon.RibbonForm` when hosting a `RibbonControl`) for consistent skin integration and to unlock the smart-tag "Create Ribbon" command. |
| 32 | |
| 33 | ### Common Namespaces |
| 34 | |
| 35 | ```csharp |
| 36 | using DevExpress.XtraScheduler; |
| 37 | using DevExpress.XtraScheduler.Drawing; // AppointmentViewInfo, custom draw |
| 38 | ``` |
| 39 | |
| 40 | ## Before You Start — Ask the Developer |
| 41 | |
| 42 | If the host agent has a structured question-asking tool available, use it to ask these questions one at a time with clear options — for example, Claude Code's `AskUserQuestion` tool or GitHub Copilot's `askQuestions` tool. If no such tool is available, ask the questions directly in the chat response before generating code. |
| 43 | |
| 44 | 1. **Data source**: Will appointments come from a database (bound mode with `DataSet`/`BindingSource`) or will they be created in code (unbound mode)? |
| 45 | 2. **Resources**: Does the scheduler need to show multiple resources (rooms, employees, etc.) side-by-side? If yes, the `Resources` collection and `GroupType = SchedulerGroupType.Resource` are required. |
| 46 | 3. **Views needed**: Which views should be available to the end user? Day, Work Week, Month, Timeline, Gantt, Agenda, Year — or a subset? |
| 47 | 4. **Recurrence**: Are recurring appointments required? If yes, the data source needs an `int` column for `Type` and a `string` column for `RecurrenceInfo`. |
| 48 | 5. **Reminders**: Are reminder alerts needed? If yes, a `string` column for `ReminderInfo` is required in the data source. |
| 49 | 6. **Appearance customization**: Is conditional coloring (labels/statuses) enough, or does the app need owner-draw appointments? |
| 50 | 7. **RibbonForm**: Should the scheduler be paired with a `RibbonControl` for the built-in view-switcher and appointment toolbar? |
| 51 | |
| 52 | ## Documentation & Navigation Guide |
| 53 | |
| 54 | ### Getting Started |
| 55 | Refer to [references/gettin |