How to Disable Weekends in Power Apps DatePicker Control

DatePicker controls are a staple in Power Apps applications, essential for tasks like appointment scheduling, leave requests, project planning, and booking systems. In many business environments, users are restricted to selecting only working days, meaning weekends (Saturday and Sunday) often need to be disabled. This article will guide you through disabling weekends in a Power Apps DatePicker control using Power Fx formulas and validation techniques.

Why Disable Weekends?

Consider an appointment booking application. Without proper validation, a customer might select a Saturday for an appointment, leading to a booking with no staff available. With validation, the application guides the user to select a weekday, ensuring a valid booking. This simple validation prevents operational issues and improves the overall user experience.

Common Business Scenarios

Understanding the DatePicker Control

The DatePicker control in Power Apps allows users to select dates from a calendar interface. To enforce business rules, Power Apps enables date validation using Power Fx formulas.

Methods to Disable Weekends

Method 1: Validate Selected Date with Notifications

The Weekday() function is key here. It returns a number representing the day of the week:

You can use this function in an If statement to check if the selected date falls on a weekend (Sunday or Saturday) and display an error notification:

Weekend Validation Formula:

If(
  Weekday(DatePicker1.SelectedDate) = 1 || Weekday(DatePicker1.SelectedDate) = 7,
  Notify(
    "Weekends are not allowed",
    NotificationType.Error
  )
)

This workflow ensures that if a user selects a weekend, an immediate error message is displayed, prompting them to choose a valid date.

Method 2: Disable the Submit Button

Another effective approach is to disable the submit button if a weekend date is selected. This prevents the user from proceeding with an invalid entry.

Button DisplayMode Property:

If(
  Weekday(DatePicker1.SelectedDate) = 1 || Weekday(DatePicker1.SelectedDate) = 7,
  DisplayMode.Disabled,
  DisplayMode.Edit
)

With this, if a user selects a Saturday or Sunday, the submit button will be grayed out and inactive. Selecting a weekday will enable the button.

Method 3: Display a Visual Validation Message

You can use a Label control to provide a clear, visual warning to the user.

Label Visible Property:

Weekday(DatePicker1.SelectedDate) = 1 || Weekday(DatePicker1.SelectedDate) = 7

Label Text Property:

"Weekend dates are not allowed. Please select a weekday."

This provides an immediate, non-intrusive visual cue that the selected date is invalid.

Real-World Examples

Leave Request System

For a leave request system with StartDate and EndDate fields, you can apply the weekend validation to the StartDate DatePicker:

If(
  Weekday(DatePickerStart.SelectedDate) = 1 || Weekday(DatePickerStart.SelectedDate) = 7,
  Notify(
    "Please select a working day",
    NotificationType.Error
  )
)

This ensures employees cannot submit leave requests that start on a weekend.

Appointment Booking Example

In a customer booking scenario requiring business hours (Monday to Friday), the workflow would be: Customer Selects Date -> Weekend Check -> Valid Date -> Booking Created. This ensures all bookings fall within operational hours.

Highlighting Weekends

You can also use labels to visually indicate to the user whether a selected date is a weekend or a working day:

Label Text Property:

If(
  Weekday(DatePicker1.SelectedDate) = 1 || Weekday(DatePicker1.SelectedDate) = 7,
  "Weekend",
  "Working Day"
)

Restrict Both Weekends and Past Dates

Often, you need to prevent users from selecting both weekends and dates in the past. This can be combined into a single formula for the DisplayMode property of a button or another control:

If(
  DatePicker1.SelectedDate < Today() ||
  Weekday(DatePicker1.SelectedDate) = 1 ||
  Weekday(DatePicker1.SelectedDate) = 7,
  DisplayMode.Disabled,
  DisplayMode.Edit
)

This formula disables the control if the selected date is either in the past or falls on a weekend.

Custom Business Calendars

Some organizations have non-standard working weeks, such as Sunday to Thursday, with Friday and Saturday as the weekend. The Weekday() function can be adapted for these scenarios. For a Sunday-to-Thursday work week, you'd disable Friday (Weekday 6) and Saturday (Weekday 7):

If(
  Weekday(DatePicker1.SelectedDate) = 6 || Weekday(DatePicker1.SelectedDate) = 7,
  Notify(
    "Weekend Selected",
    NotificationType.Error
  )
)

Common Power Fx Functions for Date Validation

Best Practices

Common Use Cases

Benefits of Weekend Validation

Conclusion

Disabling weekends in a Power Apps DatePicker control is a crucial step in enforcing business rules and enhancing application usability. By leveraging the Weekday() function and appropriate validation techniques, developers can ensure users select only valid working days. Whether you are building leave management systems, appointment schedulers, or project tracking tools, weekend validation contributes to more accurate scheduling and streamlined business processes.