The MacStories team is hosting this month their yearly event Automation April. It's a Month-Long community event about automation and Shortcuts. One of the many activities for the month-long event is a Shortcuts Contest. They encourage the community to submit their favorite shortcuts for a panel of judges to select winners for one of the contest's many categories. I enjoy the event and seeing how creative people get with their shortcut submissions.
This is my first time participating in the contest, and I'm super excited to contribute. I'm so happy that I finally have this blog to share more details about things like this, even if just a few might read it first! Also, shout out to Devon Dundee, who wrote a great article going over his shortcut that inspired me to write my own.
The shortcut I submitted is called Log Meetings to Timery + Report, which helps people automatically log to Timery they spend daily on daily meetings, phone calls, and other activities. While I love time tracking, I noticed that it took a lot of work to start/stop timers for multiple events manually. I've been using the shortcut for more than 2 years, and I thought it might also help other people whose days are filled with meetings. Let's dive in!
A quick aside on time tracking
Why time track? - Time tracking may not be for everyone, but it has helped me improve how I organize my daily work from home. By tracking my time on work, personal projects, and physical activity, I gain clarity on how I spend my time. That helps me know if I need to make any changes in my daily schedule to dedicate myself to the most important things for me, focus on what I want to improve, and iterate week after week without tracking every minute of the day.
Why track time for meetings? - As a product designer working remotely, I'm in a lot of meetings every day. I often would end long weeks and always have lingering questions about how much time I spent in meetings versus designing. That's why I decided to start tracking time spent on meetings.
My favorite time tracking app - I use Timery by Joe Jribar, an excellent Toggle client, for most of my time tracking. To be honest, if it were not for Timery, I would probably not even bother tracking my time; that's how great the app is. Timery has a lot to offer, but the best thing about it to me has to be its fantastic support for shortcuts which made my shortcut possible.
Basically, the shortcut looks for your events for the day, presents them in the list for you to choose the ones you want to log in to Timery, and then presents you with a simple report. You can also make the shortcut "smarter" by adding filters to the calendar events search to show you more accurate events you want to log.
Before you run it, you must set up which calendar you would like to use and add the details for how you want your Timery entries. If you want to make any edits on your own, I'll detail how the shortcuts work.
How the shortcut works
- Finding Calendar Events - The shortcut starts with a Find Calendar Events action set for Today. Then you can add filters to nail down the results of the events you wish to track time for. By default, the shortcut has a Calendar filter, a Is Not All Day Filter, and a Name does not contain a filter. This name filter is helpful if you want to exclude events like Lunch or Focus Time. After that, I added an IF action to accommodate the use case of no events.
- Choose from the events - Using the Choose From List shortcuts shows you a list of all the events that met the previous filter criteria. This allows you to select the events you want to get logged to Timery. I added this step as a preventive method to allow you to exclude, for example, events that might get canceled or that you did not attend. Once you have perfected your calendar filters, removing this manual step is possible. After that, the shortcut will also use a Count action to determine how many events you chose; this will be hand for the report.
- Get details from events - The shortcut then uses a Repeat with each item, which allows it to perform the same actions to all the events you chose. The shortcuts get each event’s title, Start Date, and end date using the Get Details from Event action. These variables will be used for the Timery entries and the report. Note that it uses the Repeat Item variable to indicate each event.
- Logs events to Timery - Uses the Add time entries action to log each of your selected events into Timery. It takes advantage of the variables captured on the step before for the time entry details. By default, each entry's description gets the event's name, but you can change this to be the same description for all.
- Report details - This part uses a simple but versatile Text action to create the format that each event will have on the report. The shortcuts get the Event Name variable and have a Get Time Between Dates to calculate the duration of each event in minutes.
- Create Report - Now that the shortcut gathered all the necessary information and successfully logged each event as its own time entry, I used a simple Text action to create a report from those variables. The first line is the report's title, letting you know how many events in total were logged. Then it takes all the events logged in the previous steps and presents them in a neat list. Finally, it asks for the following actions.
- Show the report - This shows the report to you and provides you with 3 follow-up options using the Choose from menu action (not to be confused with the Choose from list). This whole step can be bypassed if you prefer to run this automatically. The exit shortcut will Stop the current shortcut. The second one gives you a quick shortcut to open timery in the time entries; this is possible because of the great shortcuts actions which included one to open specific parts of the app; all apps should do this! The last one uses the Copy to Clipboard action to copy the report so you can use it on another app.
When you download the shortcut, you will notice that I've added comments with a ⚙️ symbol to denote actions requiring elements to be replaced.
The shortcut I summited was a simplified version of my personal and more advanced shortcut I use daily. I wanted to simplify the shortcut I submitted to require as few third-party apps as possible and to fit the most use cases possible while still being customizable. For example, I replaced any mention of the word Meeting with Event to be more inclusive of people with calls or other events.
Taking it even further and making it automatic
I ultimately submitted a simplified version of the shortcut I use daily because I wanted it to be able to fit other people’s use cases and not just my own. This more advanced shortcut is the one I use every day, and the main difference is that it is built to run entirely automatically and run in the background. I wanted the shortcut to run daily at the end of my day, and for that, I needed two main tweaks: A way to send me a background notification to multiple devices and a way to make sure the shortcut never ran more than once.
Pushcut for automated notifications
For the background notification, I used Pushcut, a mighty app that allows you to create custom notifications and trigger them in various ways. The best thing about these notifications is that you can even assign specific actions for when you force touch it. In my case, I made the notification to be sent to my iPhone, apple watch, and iPad mini. And when I force touch, I can either open Timery to view my entries or turn off the ac in my office via Homekit. How cool is that!
In the shortcut, I replace the native Choose From Menu action with Pushcut's Send notification action. Note that the notification must first be created in Pushcut for it to appear on the shortcuts action. Then I can use the Report variable for the notification.
Data Jar to prevent the shortcut from running multiple times
I would say that the biggest challenge in creating shortcuts is designing them to handle errors or edge cases. In my case, I still keep the simple manual version, and sometimes, if my day ends super early, I trigger it manually to see my whole daytime track. But in those cases, I still have my automation set to run the automatic shortcut at 6 pm I don't want it to be logged twice! What to do?
Data Jar to the rescue. I admit I wish this were something shortcuts supported natively, the ability to store "global" variables outside each shortcut. There are multiple ways to do this, but I went with Data Jar. I created a simple text value inside Data Jar called logged meetings so that I can assign a true or false value.
I appended and prepended a small set of actions to the shortcut to check the variable's value before running. If the value is true, the meetings were already logged so that it will show you an error message. Then, if the end of each shortcut was run successfully, it sets the data jar variable to true.
One extra step is required; you need to set an automation to run daily that sets the data jar variable back to false. So the next day, the first time any of the 2 shortcuts run, they will run successfully.
Bonus: adding extra meeting prep time
One extra fun thing I added was to add 5 mins of prep time for each event. I hate being late for calls, so that means I'm almost always ready to go to my desk 5 mins or so before the call starts. This also helps account for when meeting run late.
It uses the count actions and the calculated action to multiply the count by 5. Then I have an extra Add time entry action to add the calculation results in minutes as a time entry
This advanced shortcut resulted from countless iterations in my two years of using the shortcut. I love that, like a product, a shortcut keeps evolving and is never "finished." To this day, every time I get that notification at the end of the day, it brings a smile to my face. It has helped me be more intentional about how to structure my week and how many meetings I create/attend.
I hope this automation can help others as much as it has helped me. Automation April has been an excellent opportunity to celebrate and share our love for automation on Apple platforms. I am open to any ideas or suggestions that can help improve this shortcut. Let's continue collaborating and find new ways to make our devices work for us. Thanks for reading, and happy automating!