Dynamic filtering and indexing.is the way to go.
Your SharePoint list named Schedule has: A column for names (e.g., WorkerName). Columns for each day of the calendar year (e.g., 01-01-2025, 02-01-2025, etc.).
Filter by Worker Name: Use a filter to retrieve the record corresponding to the currently logged-in user.
Match the Day Dynamically: Retrieve the value of the column corresponding to the selected date in the calendar.
Display the Shift on the Calendar: Update the calendar to display the shift information for each day.
Add the SharePoint List as a Data Source In Power Apps, add the SharePoint list Schedule as a data source.
Use the formula to filter the record for the currently logged-in user: LookUp(Schedule, WorkerName = User().FullName)
Suppose SelectedDate holds the date from the calendar.
Convert the date to the column header format Text(SelectedDate, "dd-mm-yyyy")
Retrieve the shift value dynamically LookUp(Schedule, WorkerName = User().FullName).[Text(SelectedDate, "dd-mm-yyyy")]
In the Items property of the calendar gallery (or wherever the dates are rendered), add the following: AddColumns(
CalendarDates, // This is your calendar data source
"Shift",
LookUp(Schedule, WorkerName = User().FullName).[Text(ThisRecord.Date, "dd-mm-yyyy")]
)
In the calendar day display control (e.g., a label), set the Text property to ThisRecord.Shift
If there’s no shift data for a specific day, display a default value If(IsBlank(ThisRecord.Shift), "No Shift", ThisRecord.Shift)
Ensure the date format in your SharePoint column headers matches the format used in Power Apps (dd-mm-yyyy).
pls try - thanks