Just over a year ago I blogged about a Power App I had built that consolidated my calendar and tasks in the one view for improved at-a-glance visibility of what I had coming up for the day.
Full credit where credit is due: when I say “I had built” – I mean fellow Microsoft MVP Rene Modery built for me and I made some minor adjustments. Back then I simply couldn’t get my head around Power Apps sufficiently to build it myself.
The original app showed my agenda for the day as well as any tasks due the day and any update / refresh needed to be done manually.
New & updated features
Since the initial build of the app I’ve been working with Power Apps a lot more and have been comfortable enough to experiment and make some adjustments to the app.
As I have ADHD, these adjustments were designed to go beyond giving me a clear view of my day, but also a clear view of right now. However, you don’t need to have ADHD to benefit from them.
One small tweak was the addition of the Bing image of the day as the canvas background. As the day goes on, you see more of the background, kind of like a ‘light at the end of the tunnel’.
Another tweak was to have the app automatically refresh every 5 minutes so that any changes are updated without me having to worry about remembering to refresh.
Additionally, I thought it important to put a large clock front and centre so that at a glance I could see where I was in the day. This is important because sometimes it’s easy to get hyperfocused and lose all track of time.
Appointment vs. meeting icon
Having a list of calendar items showing was good, but I couldn’t tell if they were an appointment (just me) or a meeting with other people. I added an icon to automatically display which of those the item is, so again at a glance I can tell what’s coming up.
Additionally, I’ve added the location of the meeting so I can tell if it’s in-person or online.
Across the day we have a lot of meetings and perform a lot of tasks, so I felt it was important to show that.
In the column headings for Calendar and Tasks I’ve added some basic statistics to show how many appointments and tasks have been completed and how many remain.
I’ve really gotten into the Pomodoro technique as a way of being able to burn through a task with no distractions. I don’t necessarily use it exactly as designed but having the ability to challenge myself and ‘race the clock’ helps keep me focused when I can sometimes become easily distracted.
When I press the Start Pomodoro button, the app shows a different canvas with a 25-minute countdown. It updates each minute, and at the end goes back to the main screen.
There is also the ability to cancel earlier, should the task be completed faster.
Integration with Microsoft Teams and Windows 10
One thing I wanted from the Pomodoro timer was for it to change my ability to receive notifications. The best way to do this in the Microsoft world is to use the MyAnalytics “Focus plan” feature in Microsoft 365. When this is activated, the presence in Microsoft Teams is changed to “Focusing” (an equivalent of Do Not Disturb) and the Action Center in Windows is set to “Focus assist” which effectively suppresses all notifications.
The issue I had unfortunately was that the Focus time appointments that MyAnalytics creates (which trigger your presence in Microsoft Teams to change) are very specific, and I wasn’t able to replicate them manually. While there are three attributes I could see (title, description, category), manually creating an appointment with these same settings would have no effect. However, copying existing Focus time appointments would have the desired effect, so the challenge became how to automate that and integrate it with my app.
While I put this on the backburner, fellow MVP Stale Hansen had been working on his own Pomodoro timer system using PowerShell and had cracked the Focus time challenge by utilising Power Automate to copy existing Focus time appointments and modify them at will.
Thankfully he had made the workflows available on GitHub, so with some small modifications I was able to connect them to my Power App and have the appointments get triggered when the Pomodoro button was pressed.
As you can see below, here is my unassuming calendar before I press the Pomodoro button:
After I press the Pomodoro button an additional appointment is created:
When the 25-minute timer ends or finish earlier and press the Cancel button, the appointment is removed:
There are two workflows required that are triggered by the Power App: the first creates the appointment, the second removes it.
I had to modify Stale’s workflows as his are triggered by PowerShell, so some of the items were not required.
Creating the “Focus Time” appointment
Ending/Cancelling the Focus Time appointment
This method was so successful for me, I opted for having a dedicated monitor to run the app:
I previously had this running with dedicated external monitor, but felt it was a waste as I wasn’t using the Surface screen for anything other than Outlook (which I hardly use now anyway).
Effectively I have the app open all day taking up an entire Surface screen, and on my primary monitor I don’t even need to keep Outlook or To Do open unless I’m actually working in them.
My productivity has skyrocketed since implementing this reduced distraction approach combined with the My Day Today app.
The next step is to have this set my mobile phone to Do Not Disturb status. I have actually figured that part out for Android, but it was not exactly a smooth solution, so I’ve got some more work to do there and will come back to it later.
You can download the solution file from GitHub, which includes both the app for Power Apps and workflows for Power Automate.
Also published on Medium.