How to Patch a Power Apps Date Picker to SharePoint and Excel

A project team I support tracks start and delivery dates in a SharePoint list, and their Power Apps screen saves those dates with a Save button instead of a form. It worked perfectly in the office in Chicago. Then a contractor in another time zone started using it, and some dates landed a day early. Dates are easy to save; saving the right date takes a little care.

In this tutorial, I’ll show you how to patch a date picker value to SharePoint and Excel: new items, existing items, today’s date, blank dates, several dates at once, and date plus time, and how to avoid the time zone surprises.

Quick answer: Use Patch(Projects, Defaults(Projects), {StartDate: dtpStart.SelectedDate}) to save a new item, or replace Defaults(Projects) with LookUp(Projects, ID = 68) to update one. Use Today() to save today’s date, Blank() to clear a date, and DateAdd() to add a time. If dates come out a day off, check that the picker’s DateTimeZone matches how the column stores dates, usually Local.

The basic pattern

Patch(DataSource, Defaults(DataSource), {DateColumn: DatePicker1.SelectedDate})

The date picker’s SelectedDate is the date the user chose, in their local time. Defaults() tells Patch to create a new record; any other record means “update this one.”

Save a date to a new SharePoint item

This Projects list has a Title and a StartDate (date only) column:

SharePoint Projects list with Title and StartDate columns

The screen has a text input (Title_Txt), a date picker (StartDate_DatePicker) and a Save button:

Power Apps Project Details screen with a project title input and a start date picker

Set the Save button’s OnSelect:

Patch(
    Projects,
    Defaults(Projects),
    {Title: Title_Txt.Text, StartDate: StartDate_DatePicker.SelectedDate}
)
Save button OnSelect with a Patch formula that saves the title and start date

Enter a title, pick a date and select Save. The new item appears with the chosen date:

Project Details screen with a project title and start date ready to save
Projects list showing the new item with the selected start date

Update the date on an existing item

To change one item, look it up by ID and patch only the date. Other columns stay as they are:

Patch(Projects, LookUp(Projects, ID = 68), {StartDate: StartDate_DatePicker.SelectedDate})
Patch formula using LookUp by ID to update the start date
Date picker with a new start date and the Save button
Projects list with the updated start date

In a real app, use the selected gallery item instead of a fixed ID: LookUp(Projects, ID = Gallery1.Selected.ID). Looking up by ID is delegable to SharePoint, so it works on large lists. See how to update a SharePoint item with Patch for more.

Save today’s date

For a “Submitted on” date, don’t trust the picker; use Today():

Patch(Projects, Defaults(Projects), {Title: Title_Txt.Text, StartDate: Today()})
Patch formula saving Today as the start date

Whatever the user picked, the item gets the current date:

Project Details screen with a different date picked than today
Projects list showing today's date saved instead of the picked date

Use Now() instead to save the date and time, in a SharePoint column set to Date and Time. For when an item was created, you usually don’t need a column at all: SharePoint’s built-in Created column already records it.

Clear a date

Blank() saves an empty value:

Patch(Projects, LookUp(Projects, ID = 68), {StartDate: Blank()})
Patch formula saving Blank as the start date
Projects list with an empty start date after patching Blank

This only works if the column isn’t required in SharePoint.

Save several dates at once

Add each date to the same record. This list also has a DeliveryDate column, and the screen has a second date picker:

Project Details screen with start date and delivery date pickers
Patch(
    Projects,
    Defaults(Projects),
    {
        Title: Title_Txt.Text,
        StartDate: StartDate_DatePicker.SelectedDate,
        DeliveryDate: DeliveryDate_DatePicker.SelectedDate
    }
)
Patch formula saving both the start date and the delivery date
Project Details screen with a title, start date and delivery date
Projects list showing both dates for the new item

It’s also worth checking that the delivery date isn’t before the start date, for example with If(DeliveryDate_DatePicker.SelectedDate < StartDate_DatePicker.SelectedDate, Notify("Delivery can't be before the start.", NotificationType.Warning), Patch(...)).

Save a date and time

A date picker only gives you a date. For a time, add dropdowns for the hour (0 to 23) and minutes (00, 15, 30, 45), and combine them with DateAdd(). Microsoft recommends DateAdd over adding values with + because it’s clearer about units:

Patch(
    Projects,
    Defaults(Projects),
    {
        Title: txtTitle.Text,
        StartDate: DateAdd(
            DateAdd(dtpStart.SelectedDate, Value(ddHour.Selected.Value), TimeUnit.Hours),
            Value(ddMinute.Selected.Value), TimeUnit.Minutes
        )
    }
)
Form with a date picker and hour and minute dropdowns for the start date and time

The SharePoint column must be Date and Time. It stores the value in UTC and shows it in each user’s local time, so 11/11 at 16:43 shows as 4:43 PM:

Projects list showing a start date with a time of 4:43 PM

Leave the date picker’s DateTimeZone at Local for this. Some tutorials suggest UTC, but then the picked date is midnight UTC, which is the previous evening in US time zones, and the saved time shifts.

Save a date to Excel

Excel works the same way. This ProductTable table has ProductInvoice, ProductName and PurchaseDate columns:

Excel ProductTable with invoice, product name and purchase date columns
Power Apps Product Purchase Details screen with a purchase date picker
Patch(
    ProductTable,
    Defaults(ProductTable),
    {
        ProductInvoice: txtInvoice.Text,
        ProductName: txtProductName.Text,
        PurchaseDate: dtpPurchase.SelectedDate
    }
)
Submit button OnSelect with a Patch formula for the Excel table

If the date in Excel is a day off

Excel has no time zones, so a date can shift when the picker’s time zone setting and the way the value is read don’t match. This screenshot shows the problem: 11/15 was picked, and Excel shows 11/14:

Excel table showing a purchase date one day earlier than the date picked in Power Apps

Older tutorials fix this with DateValue(Text(SelectedDate, DateTimeFormat.UTC)) + 1. Don’t use it: adding a day only compensates for time zones ahead of UTC, so for users in the US it saves the next day. Instead:

  • Keep the date picker’s DateTimeZone at Local and test with a user in each time zone you support.
  • Or save the date as text in a fixed format: PurchaseDate: Text(dtpPurchase.SelectedDate, "yyyy-mm-dd"), with the Excel column formatted as text or a date. Text is never shifted.
  • For apps used by many people at once, use SharePoint or Dataverse instead. The Excel connector can lock a file for several minutes and doesn’t handle simultaneous writes well.

Limit which dates can be picked

There’s no MinDate or MaxDate property. On the modern date picker, use StartDate and EndDate; dates outside that range can’t be selected:

StartDate = Today()
EndDate = DateAdd(Today(), 30, TimeUnit.Days)

The classic date picker only has StartYear and EndYear, so check the date in your Save button instead. The modern picker also saves as soon as a date is chosen through its OnChange property, while the classic picker needs the user to select OK first.

Show a friendly date

Label TextResult
Text(dtpStart.SelectedDate, "mm/dd/yyyy")09/28/2026
Text(dtpStart.SelectedDate, "dddd, mmmm d, yyyy")Monday, September 28, 2026
Text(dtpStart.SelectedDate, DateTimeFormat.LongDate)Monday, September 28, 2026 (in the user’s language)

Save the date value itself, and use Text only for display. If you use an edit form, SubmitForm saves date fields for you; Patch is for screens without a form or when you need more control. For more date picker ideas, see the modern date picker control.

These Power Apps date tutorials may help next:

Frequently Asked Questions

How do I patch a date picker value to SharePoint?

Use Patch(List, Defaults(List), {DateColumn: DatePicker1.SelectedDate}) for a new item. Microsoft covers date and time zone behavior in Troubleshoot date and time issues in canvas apps.

Why is my date one day off after saving?

The date picker’s DateTimeZone doesn’t match how the column stores dates. Keep it at Local for SharePoint dates, and avoid fixes that add or subtract a day.

How do I clear a date in SharePoint from Power Apps?

Patch the column with Blank(), for example {StartDate: Blank()}. The column can’t be required.

How do I save a date and time from Power Apps?

Combine the date picker with hour and minute values using DateAdd, and save to a SharePoint Date and Time column.

How do I stop users from picking past dates?

On the modern date picker, set StartDate to Today(). The classic picker doesn’t have this, so validate the date before saving.

1 thought on “How to Patch a Power Apps Date Picker to SharePoint and Excel”

  1. Hello,
    You’ve put a note:
    “Note: Make sure to keep both the Power Apps and SharePoint time zone as same.”
    But it’s not explained how to do it. Could you please explain?

Comments are closed.