LowCodeStacks™
Sign in

NewPower Apps · canvas componentData display✓ Tested in StudioMIT License

Month calendar

A month grid from your start of week, events from a table as pills that run across the days they span, +N more past a limit, today marked, a day or an event selectable, previous, next and Today; light and dark, the pills drawing in when the month changes.

Name in Studio
lcsMonthCalendar
Version
0.1.0
Properties
9 inputs · 3 outputs · 3 events · 5 actions
Sign in to copy

Free with an account

No ratings yet

Sign in to copy

Variations

As it is when you paste it, with every input at its default.

October 2026

MonTueWedThuFriSatSun

VisibleMonth: 1 Oct 2026 · SelectedDate: blank · EventsInMonth: 8

Formulas on this screen

Set the same ones in Studio to try it the same way; there, each Notify shows its event in a banner, which this preview leaves out so nothing covers the component. The instance names are the ones Studio gives the first copy on a screen.

  • lcsMonthCalendar_1.OnSelectDay = Notify("Day: " & Text(SelectedDate, "d mmm"))

  • lcsMonthCalendar_1.OnSelectEvent = Notify("Event: " & Title)

  • lcsMonthCalendar_1.OnMonthChange = ClearCollect(colBookings, Filter(Bookings, 'End date' >= Month && 'Start date' < DateAdd(Month, 1, TimeUnit.Months)))

A web replica that behaves as the component does in Power Apps. In Studio it uses Microsoft's controls, which can look slightly different.

Add it in five steps

  1. In Power Apps Studio, open Settings > Updates and check that Modern controls and themes and Enhanced component properties are on.
  2. Open the Components tab in the tree view and select New component.
  3. Select an empty part of Studio, so the new component isn't selected.
  4. Copy the YAML on this page and press Ctrl+V. lcsMonthCalendar appears with all its properties.
  5. On a screen, insert it from Insert > Custom > lcsMonthCalendar.

What it needs

  • No premium licence: standard controls, no connectors
  • Modern controls and themes: on
  • Enhanced component properties: on
  • Tested in Power Apps Studio 3.26094.9 on October 17, 2026
  • Version 0.1.0

Properties (20)

Read from the component's own YAML, so they always match what you paste.

Inputs
PropertyKindTypeDefault
Events

The events, as a table with Key, Title, Start (a date), End (a date, the same as Start for one day) and Color (a hex, or empty for your accent) columns.

InputTableTable({Key: "e1", Title: "Fire drill", Start: Today(), End: Today(), Color: "#c50f1f"}, {Key: "e2", Title: "Site survey", Start: DateAdd(Today(), 1, TimeUnit.Days), End: DateAdd(Today(), 1, TimeUnit.Days), Color: ""}, {Key: "e3", Title: "Projector install", Start: DateAdd(Today(), 3, TimeUnit.Days), End: DateAdd(Today(), 5, TimeUnit.Days), Color: "#7c3aed"}, {Key: "e4", Title: "Board visit", Start: DateAdd(Today(), -2, TimeUnit.Days), End: DateAdd(Today(), -2, TimeUnit.Days), Color: "#107c10"}, {Key: "e5", Title: "Floor closed", Start: DateAdd(Today(), 8, TimeUnit.Days), End: DateAdd(Today(), 9, TimeUnit.Days), Color: "#c19c00"}, {Key: "e6", Title: "Audit", Start: DateAdd(Today(), 1, TimeUnit.Days), End: DateAdd(Today(), 1, TimeUnit.Days), Color: "#0e7490"}, {Key: "e7", Title: "Deliveries", Start: DateAdd(Today(), 1, TimeUnit.Days), End: DateAdd(Today(), 1, TimeUnit.Days), Color: ""}, {Key: "e8", Title: "Training", Start: DateAdd(Today(), 1, TimeUnit.Days), End: DateAdd(Today(), 1, TimeUnit.Days), Color: "#be185d"})
DefaultMonth

Any date in the month to show first. The person moves months from there; GoToMonth moves them from your app.

InputDateAndTimeToday()
StartOfWeek

Monday or Sunday, the first column.

InputText"Monday"
MaxPerDay

How many event pills a day shows before +N more.

InputNumber3
CellHeight

Each day's height. 88 fits three pills; add 20 for each more.

InputNumber88
ShowToday

Shows the Today button in the header.

InputBooleantrue

Guide

Use lcsMonthCalendar for bookings, shifts, leave, deadlines, visits: anything people want to see by month. Every calendar in a canvas app is rebuilt from a 42-cell gallery and a weekday offset, and the hard part, an event that runs across several days, is usually given up on. This component is that calendar done once:

  • A month grid from any date, with the week starting on Monday or Sunday, the days outside the month greyed, and today marked;
  • Events from a table of Key, Title, Start, End and Color, drawn as pills that run across the days they span, rounded only at their ends, the title on the first day and at the start of each week;
  • MaxPerDay pills a day, then "+2 more" beside the day's number;
  • Previous, next and Today, GoToMonth and Select from your app, and OnMonthChange so you load one month's events at a time;
  • OnSelectDay(SelectedDate) for a new booking on that day, and OnSelectEvent(Key, Title, Start) to open one.

Did it work for you?

No ratings yet.Nobody has said it worked in their app yet.

Sign in to rate it or to say it worked in your app.

Comments

No comments yet. Share how you used it, or ask something.

Sign in to comment or reply. Comments show under a display name you choose, never your email.