Well, folks, I did it: a billion-dollar idea.

I made a calendar app where when you press “join” on a Google Meet link, it automatically joins from the right Google account instead of slamming you face-first into the “request access to this meeting or sign in with another account” screen. My bank account is open for venture capital riches to come flowing in.

In all seriousness, I did actually make a new calendar app that is now my daily driver. And it does indeed include the aforementioned feature, which has made my life immeasurably better. But that’s not all.

I’m a Google Calendar power user — I structure my day with timeboxes, I schedule reminders and todos and plans for what work I’m going to do, I offer people times and want to hold them, I store meeting prep notes, I look at colleagues’ calendars, and I do all this across a half-dozen work & personal Google accounts. But all of this feels a little janky in Google Calendar — I end up with tons of overlapping, undifferentiated events.

A week of my real Google Calendar with event names scrambled: dozens of overlapping, same-looking blocks stacked into every day

So, meet Pattern — a new way to use my Google Calendars. If I was trying to build this for many people to use, I would try to distill it down into a simple, clear, narrow value proposition. But instead, since this is mostly just personal software for myself, let me practice poor salesmanship and rattle off some of the features.

Patterns & availability

I structure my days around rough timeboxes — times when I’m working, when I’m open to calls, when I’m working out or with the baby or eating.

In Pattern, you can design, well, Patterns. These are daily timebox schedules. Elements can vary on a schedule (say, Tuesday gym day is back and biceps, or the weekend days look different from weekdays), or you can set them ad-hoc on specific days.

The timeboxes have names, but they also have types. These types include deep work (do not disturb), open for meetings, phone calls only (i.e. out for a walk, no video calls), personal, and so on. The timeboxes get put as free/busy on your actual Google Calendar, so your colleagues see the time blocked (or not) appropriately. But in Pattern, they look different:

A week in Pattern: each day is a horizontal row, with named timeboxes like Deep work, Meetings and Lunch forming a rail along the top of each day and events laid over them

Instead of showing up as an “event,” they form a rail that is an overlay on the whole day.

This is helpful just visually, but where it really gets helpful is in the various availability-related features, which respect your timeboxes. For example, there are Calendly-style links you can share which, depending on the type of meeting, respect both events that are blocking on your calendar and the timeboxes overlaying things:

Or you can “suggest times” for a meeting — you put in the title, invitee(s), duration, meeting type, and then hit suggest. Pattern goes through your calendar and finds slots that would work for that meeting. It then lets you copy out the times (or send a link with the times) and optionally marks them all as holds. Once a time is selected, all the other holds for that same meeting go away:

This is just such a nicer experience than usual. Times are held when offered (if you want), only your preferred times (accounting for timeboxes) are suggested, and holds disappear when a time is picked.

And last on this front: you can paste in a block of times someone has sent you and Pattern parses it and tells you exactly which of them work for you according to your availability and timeboxes. No more squinting at your calendar and tabbing back and forth to your email to see if “Mon 10/18 2pm ET” is open for you.

Special event types

In service of keeping Google Calendar the ultimate source of truth and still usable, all sorts of other things are also stored as special types of events, aside from holds and timeboxes.

Plans are nonblocking events that sit on your calendar so you can plan your day. “Work on pitch deck” could be a plan, so you know when you’re anticipating working on that, but it’s not actually a blocking event (although it might sit inside a deep work timebox, which is blocking itself).

Buffers are optional times before/after a scheduled meeting that “attach” themselves to the scheduled event and move around with it, making sure the time remains reserved. Say you book a 30 minute meeting but think it might run long, or have a 15 minute walk to/from a meeting — you’d add a “buffer.” Nobody else sees it, but it gets blocked on your calendar.

Private notes are notes attached to other events — either one-time or recurring — that only you can see. They manifest as an extra event on a separate, private calendar, but they show up in the description of the event in question, only for you. And if the meeting moves or recurs, they stay there.

Todos are their own little events — either associated with a day or a specific time that are nonblocking/effectively zero-duration. They’re just reminders to do something.

Quality-of-life

Maybe I’m behind on state of the art for calendar apps, but it feels to me that nobody has really focused on nice quality-of-life features for calendar power users. There’s the “join Google Meet from the right account” feature I mentioned at the top, but Pattern also features:

Time zone features - you can hit z or a button and a little time zone converter pops up. Type in “3pm PT in London” and it tells you right away. Or, when you’re scheduling an event, you can “add time zones” to it and it shows you the time in all those time zones. And when you’re offering times, you can offer them in multiple time zones. It’s silly how often I’m scheduling something and need to go Google “what’s noon PT in Paris” — it should be in the calendar. (It even lets you know if a DST / time change is coming up that would change the answer.)

Nonblocking & FYI calendars - there are a bunch of calendars I’m subscribed to that I want to see (always or sometimes), but aren’t actually blocking for me. My wife and I have a shared calendar about stuff happening at the house. I have a bunch of colleagues’ calendars. I want to be able to see these for context — and sometimes convert a specific event to “blocking” — but otherwise they shouldn’t be as prominent as my main events. Pattern supports all this.

Calendar groups - related to that, I often want to check on a group of colleagues’ calendars to find a free window. Pattern lets you put people in groups and toggle group visibility on or off with a keyboard shortcut so you can peek at the group. You can also see shared availability when scheduling an event (although Google has this latter feature too, so Pattern only gets partial innovation credit).

Keyboard & speed - speaking of keyboard shortcuts: everything in Pattern is instrumented with keyboard shortcuts so you can get around snappily. And speaking of snappily, I put a ton of work into making navigation and everything really, really fast. You should never be waiting for loading on your calendar.

Multi-account search - Pattern lets you search for events across all your connected Google Calendars, and generally is just way better at supporting the concept of multiple calendars or accounts for a single person.

Horizontal - in case you didn’t notice in the screenshots so far… it’s horizontal. Another billion-dollar idea, I think. Hey Calendar kinda did this, but not in the same way. Most computers’ screens are wider than they are tall, and since most events have long-ish names and I usually want to see more than one day at a time… horizontal is much nicer.

A full work week in Pattern, each day a horizontal row with room for long event names

And more

iOS - the iOS app is designed differently (e.g. vertical, not horizontal, because my phone is taller than it is wide), but generally is quite similar, and likewise snappy. Nonblocking calendars and timeboxes are collapsed by default, but you can just tap to see them. It also has an “ad hoc call” feature where I can easily log a call that is happening off-schedule and make it an event — this is useful for when I’m going through followups at the end of the day and don’t want to forget I spoke to someone.

Five screens from the Pattern iOS app: the day timeline, the list view, an event with a Join button, suggested times, and the call list

iOS live activity - Pattern iOS spawns an always-on lockscreen “live activity” that shows upcoming events, where I am in the timeboxes, and lets me easily log an ad-hoc call. Nice to always have this in my face when I pick up my phone.

The Pattern live activity on the iPhone lock screen and in the Dynamic Island, showing the current timebox, upcoming events and a button to log a call

Call lists - inspired by Sam Lessin’s dedicated Call List app, Pattern has a call list feature built in. You can save people you want to call, along with any notes and their time zone, and easily see that list and what time it is for all the people. You can also share a “call me” link where people input their phone number and time zone and they get added to your list to call later.

The call list: people to call, with notes and each person's current local time The public call me page, where someone enters their phone number and time zone to be added to the call list

Net of everything, Pattern is yet again some delightfully personal software: my dream calendar (and getting better every day). Is it right for anyone else? No idea, and it’s great fun to build without worrying about that.


Looking for more to read?

Want to hear about new essays? Subscribe to my roughly-monthly newsletter recapping my recent writing and things I'm enjoying:

And I'd love to hear from you directly: andy@andybromberg.com