I can be a bit forgetful, so when I joined Zapier, I started automating reminders to keep me on schedule and on top of my to-do list.
One of the Zaps that's been most helpful for keeping me on track is the one that sends me a list of all of the meetings coming up the next day before I leave each evening. With this, I can see at a glance if I need to come in a bit early for a first-thing-in-the-morning meeting. Or, if I still need to prepare for a meeting, I can make sure I assemble everything so I'm good to go.
With this Zap, we can streamline it and keep it short and sweet, or we can have a bit of fun with some of Zapier's built-in tools and really take control of the workflow.
The Streamlined Version
The basics of this Zap are quite simple:
We'll collect each event on your schedule
Compile it in a digest
Send you a list at the end of each day that includes everything happening tomorrow
To get this workflow working, we'll have it run 26 hours before each event in your Google Calendar, using the Event Start trigger. That number may seem a bit odd, given that there are only 24 hours in a day, but this adjusts for the fact that we want this to send an hour before the end of your day and we want to accommodate any meetings that might happen after your official end of day.
Our trigger step will look like this:
Next, we'll add each of these events as they're found to a digest using the Digest by Zapier app. This will keep them all in one place and let you send them all at the same time, instead of one at a time.
Something that's important to remember about creating a digest in this app is that each digest has to have a unique name. If you have multiple Zaps using multiple digests, but all the digests are called My Digest, all of the information from all of those Zaps are going to end up in one digest. Then, when your Zaps release those digests, you'll get stuff in places where you don't want that stuff to show
In this example, we called our digest Schedule for Tomorrow. As long as you don't create any other Zaps using this same digest name, only tomorrow's events will get stored here.
The information we want to add to this digest is the name and the time of each event. Each time the Zap triggers on a new event, the details of that event will be added to the digest in this format:
The Zap will collect these events and then, every day at 4 pm, everything in the digest will be released. Once the digest has been released, we need another app to send all that information somewhere.
At Zapier, we use Slack for all of our communications, so I've set my Zap to release the digest as a Slack direct message. This lets me make sure I've seen that message so I know what's coming the next day:
And with that, we have a Zap that will send you all of your next day's meetings at the end of the day. Click the button below to get started.
Send digests of new event starts in Google Calendar via direct messages in Slack
Don't use Slack? You can change the action app in any of the included Zaps to get the digest sent how you'd like, whether that's another team chat app, by email, or in a text message.
Don't send the message if your schedule is clear
In my role as a trainer, it's pretty much a given that I have a training scheduled every day. However, you might be one of the lucky ones who has meeting-free days so you may not want additional clutter in your messages that show an empty list.
Let's look at a way to take this Zap up a notch and add an additional step that will check to see if there are events in the digest and tell the Zap not to send anything if it's empty. As the digest collects items, it creates and adds to a counter, outputting that number in a field called `count`
.
This makes it easy for us to add a step before our Slack step that checks this counter and makes sure it's not zero. This step will use a Filter to make that check. If the filter does not match, the Zap will stop here and not continue to the Slack step:
A note about the Greater than and Less than options in the Filter — neither of these will include the number you add in the comparison field, so with this set up, the filter will match if there are 1 or more events, but stop if the count is 0.
While this step is optional, it does help keep your DMs a bit more clutter-free.
To create a version of this Zap with the filter, click the button below.
Get a list of any existing events on tomorrow's schedule
Make this Zap more elaborate
If you're anything like me, you want to have a bit more control over the information that is sent and how it appears. To do this, we're going to add a few more steps to the Zap to give it a bit more flexibility.
The first thing we want to do is indicate if the event is an all day event. Google Calendar sends these events starting at 0:00AM. So, if it's an all-day event, we want to show that, but if the event starts at any other time but midnight, we want to show the actual start time.
To do this, we're going to get a little creative with one of our Formatter tools — the lookup table. The lookup table is one of my favorite tools. This function lets us transform information coming from a previous step into a different format that is required by a different app in another step.
If we leverage this functionality, we can transform our 0:00AM into different text—in this case `all day`—only when your event starts at midnight, and use the fallback value option to still send through the actual start time of all of your other events. The set up would look like this:
To make sure this changed time appears in our digest, we'll map the output of this table in the digest instead of the start time directly from Google Calendar:
Now, I'm a bit of a worrier, so if nothing shows up in my DMs about tomorrow's meetings, I'll think something went wrong with the Zap and not that my schedule is clear. So, I'd like to send myself a message both if I have meetings and if I don't.
We could duplicate our previous lookup table and output a message if the count is 0 and then send the digest if the count is 1 or higher. But let's take a look at another tool in our Formatter app that will do something similar.
For this step, we're going to use a spreadsheet formula. This particular function has a number of different formulas we can use. We'll use the one that lets us check a condition and output different information based on whether the condition matches.
In our last example for this Zap, we used the "count" field in our digest to tell us if there are any events. We'll use that same field for this formula as well. So, if the count is 0, we'll output a message that says there are no meetings, and if the count is 1 or higher, we'll send through our digest.
The structure of the formula we'll use here looks like this:
`IF(CONDITION, "TRUE OUTPUT", "FALSE OUTPUT")
`
The first piece of the formula is the condition — if the count is 0. The second part is what to output if that condition is true — you have no meetings tomorrow. And finally, the last part is what to output if that condition is false — here's your list of meetings tomorrow.
When we put that together, it will look like this:
Important to note here is how to use numbers and text in this formula. The formula expects that there will only be numbers here. If we want to use letters or other characters, we'll need a way to tell the formula that these are not numbers. To do this, we can wrap our text in quotation marks. So, in the above formula, when we're comparing a number to a number, we don't need the quotation marks. But, when we're outputting a text message, we will.
Finally, now that we have our all-day meetings showing as such and a message to send when there are no meetings, we can go ahead and send our Slack message.
Use this more advanced Zap for yourself by clicking the button below.
Now, each night before you leave for the day, you'll be well prepared for the next day.