AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Devexpress Wpf Scheduler

skill-devexpress-agent-skills-devexpress-wpf-scheduler · by DevExpress

Build WPF applications with the DevExpress Scheduler Control (SchedulerControl) — an Outlook-style calendar control for displaying and editing appointments, time regions, and resources. Use when adding SchedulerControl to a WPF project; binding to a DataSource with AppointmentsSource / ResourcesSource / AppointmentLabelsSource / AppointmentStatusesSource / TimeRegionsSource; configuring Appointme…

No reviews yet
0 installs
30 views
0.0% view→install

Install

$ agentstack add skill-devexpress-agent-skills-devexpress-wpf-scheduler

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-devexpress-agent-skills-devexpress-wpf-scheduler)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Devexpress Wpf Scheduler? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

DevExpress WPF Scheduler Control

DevExpress.Xpf.Scheduling.SchedulerControl is a full-featured calendar / scheduling control: appointments, recurring activities, resources (people, rooms, equipment), labels, statuses, time regions, reminders, time zones. Seven view types out of the box (Day / Work Week / Week / Month / Timeline / Agenda / List). Bind to a data source through DataSource.AppointmentsSource + AppointmentMappings, or use the unbound mode for runtime-managed data.

When to Use This Skill

Use this skill when you need to:

  • Add a calendar / scheduling view to a WPF app
  • Display recurring appointments, all-day events, multi-day events
  • Group appointments by resource (people, rooms, equipment) or by date
  • Bind to a data source via mappings — AppointmentMappings, ResourceMappings, custom fields
  • Switch among the seven view types
  • Customize appointment look via templates, styles, brushes
  • Manage labels, statuses, time regions, reminders
  • Implement an Outlook-clone in WPF

Prerequisites & Installation

NuGet Packages

| Package | Purpose | |---------|---------| | DevExpress.Wpf.Scheduling | Main package — SchedulerControl, all view types, all item types | | DevExpress.Wpf.Ribbon | Required if you use Quick Actions → "Create Ribbon" to add ribbon UI | | DevExpress.Wpf.Printing | Required for the Scheduler's print preview / export |

DevExpress.Wpf.Scheduling transitively brings DevExpress.Wpf.Core (themes, MVVM helpers).

.NET (6/7/8+)

dotnet add package DevExpress.Wpf.Scheduling

Add to .csproj:


  net8.0-windows
  true

All DevExpress packages in a project must share the same version. A valid DevExpress license is required.

Before You Start — Ask the Developer

  1. Target framework: .NET 8+, .NET 6/7, or .NET Framework 4.x?
  2. Bound or unbound: Does the scheduler persist data to an external source (DB, file, EF), or run with in-memory data created at runtime?
  3. Data model: What classes represent appointments and resources? Map their fields to the Scheduler's properties via AppointmentMappings / ResourceMappings. See [data-binding.md](references/data-binding.md).
  4. Grouping: None (a single timeline), Resource (one lane per resource), Date (lanes by date)?
  5. Active view: Day, Work Week, Week, Month, Timeline, Agenda, or List? Each has its own configuration. See [views.md](references/views.md).
  6. Recurrence: Are recurring appointments required? Yes → add RecurrenceInfo and Type mappings.
  7. Appearance: Need custom appointment look (templates, styles), color themes (brushes), or both?

Component Overview

XAML Namespace

xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"
xmlns:dxschv="http://schemas.devexpress.com/winfx/2008/xaml/scheduling/visual"

dxsch: covers the main SchedulerControl, views, mappings, item types. dxschv: is for visual elements (AppointmentContentPanel, AppointmentIntervalSubjectPresenter, etc.) used inside custom templates.

Element Hierarchy

SchedulerControl
├── DataSource
│   ├── AppointmentsSource           — bound collection of appointments
│   ├── ResourcesSource              — bound collection of resources
│   ├── AppointmentLabelsSource      — bound collection of labels
│   ├── AppointmentStatusesSource    — bound collection of statuses
│   ├── TimeRegionsSource            — bound collection of time regions
│   ├── AppointmentMappings          — field-to-property bindings (Start, End, Subject, etc.)
│   ├── ResourceMappings             — field-to-property bindings (Id, Caption, Brush)
│   ├── AppointmentLabelMappings
│   ├── AppointmentStatusMappings
│   └── TimeRegionMappings
├── Views                            — collection of view types (Day, Week, Month, etc.)
├── AppointmentItems                 — imperative collection (unbound mode)
├── ResourceItems                    — imperative collection (unbound mode)
├── LabelItems / StatusItems / TimeRegionItems
├── BrushSet                         — color palette for resources/labels/statuses
└── BrushProvider                    — theme-aware brush customization

Two Operation Modes

| Mode | When | How | |---|---|---| | Bound | Production app, data persisted to DB / file / EF / API | Set DataSource.AppointmentsSource (and others) + AppointmentMappings | | Unbound | Quick prototype, data managed in-memory at runtime | Use SchedulerControl.AppointmentItems (and other *Items collections) directly |

Mixed mode is supported: appointments via DataSource, but labels/statuses created inline via LabelItems / StatusItems.

Documentation & Navigation Guide

Getting Started

Refer to [references/getting-started.md](references/getting-started.md)

When you need to:

  • Set up a .NET project with DevExpress.Wpf.Scheduling
  • Build the minimum viable scheduler — view, data model, bindings
  • Add a Ribbon UI for the scheduler (Quick Actions → "Create Ribbon")

Data Binding

Refer to [references/data-binding.md](references/data-binding.md)

When you need to:

  • Bind appointments, resources, labels, statuses, time regions
  • Define mappings — AppointmentMappings, ResourceMappings, etc.
  • Use CustomFieldMapping for project-specific extra fields
  • Implement load-on-demand for large data sets
  • Use Mapping Converters for custom storage formats (e.g., stringRecurrenceInfo)

Data Items (Appointments, Resources, Labels, Statuses, Time Regions, Reminders)

Refer to [references/data-items.md](references/data-items.md)

When you need to:

  • Understand what each item type represents
  • Configure recurring appointments (AppointmentType.Pattern + RecurrenceInfo)
  • Define labels (categories) and statuses (availability) for appointments
  • Block off time ranges with time regions
  • Set reminders on appointments

View Modes

Refer to [references/views.md](references/views.md)

When you need to:

  • Pick between Day / Work Week / Week / Month / Timeline / Agenda / List views
  • Configure view-specific properties (visible time, day count, work time only)
  • Group by resource or date (GroupType)
  • Switch views at runtime (ActiveViewIndex)
  • Use multiple views of the same type with different settings

Appearance Customization (Styles and Templates)

Refer to [references/styles-and-templates.md](references/styles-and-templates.md)

When you need to:

  • Override the appointment content template (AppointmentContentTemplate)
  • Use the built-in appointment presenters (AppointmentIntervalSubjectPresenter, AppointmentLocationPresenter, AppointmentDescriptionPresenter, AppointmentImagesPanel)
  • Apply per-view styles (AppointmentStyle)
  • Customize colors via BrushSet / BrushName
  • Use BrushProvider for theme-aware customization (resource cells, headers, navigation buttons)
  • Choose between New (Outlook2019) and Classic UI styles

Quick Start Example

See the runnable quickstart sample in [examples/quickstart.cs](examples/quickstart.cs). If the sample includes companion XAML or resources, keep them alongside the C# entry point in the same examples/ folder.

The following XAML shows the core SchedulerControl setup used by that quickstart:


    
        
            
                
                    
                
                
                    
                
            
        
    

Key Properties & API Surface

SchedulerControl

| Property | Use | |---|---| | DataSource | DataSource object holding all bindings and mappings | | Views | Collection of view objects (Day, Week, etc.) | | ActiveViewIndex | Index into Views — picks the displayed view | | GroupType | None, Resource, Date | | FirstDayOfWeek | Sunday, Monday, etc. — affects Week / Work Week views | | WorkDays / WorkTime / CustomWorkTime | Work-hours / work-days configuration | | AppointmentItems / ResourceItems / LabelItems / StatusItems / TimeRegionItems | Imperative collections (unbound mode) | | SelectedAppointments | Currently selected appointments | | BrushSet / BrushProvider | Color customization | | AppointmentAdding/AppointmentAdded, AppointmentRemoving/AppointmentRemoved, AppointmentEditing/AppointmentEdited, AppointmentRestoring/AppointmentRestored | Lifecycle events for tracking appointment changes. The cancelable *ing pre-events validate/veto an operation (e.Cancel); the *ed post-events carry AppointmentCRUDEventArgs (AddToSource / UpdateInSource / DeleteFromSource) for persisting to the data store |

DataSource (Bound Mode)

Bindings and mappings live inside this object. Use either `` element syntax or assign in code.

View Classes

DayView, WorkWeekView, WeekView, MonthView, TimelineView, AgendaView, ListView — each is a ViewBase descendant with its own configuration properties. See [views.md](references/views.md).

Common Patterns

Pattern 1: Minimal Unbound Scheduler

That's it. The scheduler shows today, lets users create appointments by selecting time cells and typing. Appointments live in memory — they're lost on app close.

Pattern 2: Bound to ViewModel Collections


    
        
            
                
            
            
                
            
        
    

Start and End are the only required mappings for non-recurring appointments. Recurring ones additionally need Type and RecurrenceInfo.

Pattern 3: Pre-Configure Views in XAML


    
    
    

Adding any view to the Views collection in XAML overrides the default "all views enabled" behavior — only the listed views are active.

Pattern 4: Custom Appointment Template


    
        
            
                
                    
                
                
                    
                
            
        
    

Troubleshooting

| Symptom | Cause | Solution | |---|---|---| | dxsch: prefix unresolved | Missing namespace or NuGet package | Add xmlns:dxsch="http://schemas.devexpress.com/winfx/2008/xaml/scheduling"; install DevExpress.Wpf.Scheduling. | | Appointments don't appear | AppointmentsSource binding wrong, or required Start/End mappings not set | Verify the binding source and that the mapping property names match data class members exactly (case-sensitive). | | Recurring appointments expand wrong / not at all | Missing Type and RecurrenceInfo mappings | Both are required for recurrence. RecurrenceInfo is typically stored as a string (XML form); use a Mapping.Converter if your storage format differs. | | Changes to appointments don't persist | Unbound mode; or no two-way persistence layer | Switch to bound mode with an external store, or subscribe to the AppointmentAdded / AppointmentRemoved / AppointmentEdited events to detect changes for manual save. | | error CS0104: 'Application' is an ambiguous reference | DevExpress.Wpf.Scheduling transitively references System.Windows.Forms; enable on .NET 6+ creates the clash | Qualify System.Windows.Application in App.xaml.cs. | | Wrong view shows | ActiveViewIndex doesn't match the position in Views | Indexes are 0-based; verify the order of `, , etc. in XAML. | | Multiple resource bars don't appear | GroupType="None" | Set GroupType="Resource" to render one lane per resource. | | Resource colors don't apply | Brush / BrushName not set on the resource items, or theme overrides | Set ResourceMappings.Brush / BrushName, or use BrushSet` to define a palette. See styles-and-templates.md. | | List view has no filter when paired with DateNavigator | By design — DateNavigator can't filter List view | Use the List view's built-in filtering UI instead. |

Constraints & Rules

CRITICAL — follow these rules in every interaction:

  1. Build verification: After changes, run dotnet build and report errors before claiming success.
  2. Target framework: Windows-only (net{X}-windows, UseWPF=true).
  3. NuGet: Use DevExpress.Wpf.Scheduling. All DevExpress packages share one version.
  4. XAML namespace: dxsch: (scheduling), dxschv: (visual presenters used inside templates).
  5. Required mappings: Start and End are always required in AppointmentMappings. For recurring appointments, also Type and RecurrenceInfo.
  6. Mapping names are case-sensitive and must match the data class's property names exactly.
  7. Don't mix *Items and *Source for the same item type. Pick one mode per item type — bound (*Source + mappings) or unbound (*Items directly).
  8. Application ambiguity: When generating App.xaml.cs on .NET 6+, qualify System.Windows.Application.

Using DevExpress Documentation MCP

  • Search: devexpress_docs_search(technology="WPF Scheduler", query="")
  • Fetch: devexpress_docs_get_content(url="")

Use MCP for: Outlook 365 integration, drag-and-drop customization, custom edit dialogs, time-zone handling, printing-template authoring, Save / Load layout — these are deep specialized topics beyond the core references.


Next Steps

Start with [Getting Started](references/getting-started.md) for .NET 6/7/8+ project setup, or [Getting Started (.NET Framework)](references/getting-started-dotnet-fw.md) for .NET Framework 4.6.2+ projects. Then use [Data Binding](references/data-binding.md) for the mappings, [Data Items](references/data-items.md) to understand the model, [Views](references/views.md) to pick a view, and [Styles and Templates](references/styles-and-templates.md) for appearance.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.