Calendly's approach to managing users at scale had accumulated years of unstructured decisions and was hitting real limits as enterprise accounts grew. We had no Groups, no Managed Events, and a team model that assumed everyone belonged to exactly one team, and it was starting to cost the business real enterprise accounts.
As Principal Design Lead, I led a product inception partnering with a Staff PM and Tech Lead, which resulted in a 5-stream program to create a robust Permissions and User Management System from the ground up, giving organizations the delegation, branding control, and privacy flexibility they actually needed. The result unlocked enterprise accounts sales couldn't previously pursue.
Calendly was growing fast, and every team was focused on shipping their own piece of the product. Nobody was working from a shared vision for permissions and user management, so the system grew in whatever direction each team needed at the time. Over years, that added up to a lot of decisions that made sense in isolation but couldn't scale to where our customer base was going.
By the time I stepped into this, the Teams model only let someone belong to one Team at a time, which doesn't match how most real organizations work. A person on a cross-functional campaign, or a department that needed its own space without breaking their main team structure, just couldn't be represented in the product. Event Templates were a similar dead end: they gave teams a starting point, but once someone copied a template, it was theirs, disconnected from the original. If a company rolled out new branding or a policy change, an admin had to log into every account manually and update them one at a time. And in the current system, visibility was all or nothing. Some customers needed strict, need-to-know separation between team members, others needed everyone to see everything, and the product could only ever give them one.
None of this was a minor inconvenience. Enterprise customers with real privacy or governance requirements couldn't adopt Calendly under this model at all, and the ones who could were stuck with manual admin work that only got worse as they grew.
No way to delegate management to department or group leads, everything routed through a single admin
Groups feature, with delegated group admins who can manage their own members, pull department-level reporting, and set up complex routing so external customers get automatically directed to the right team member
Brand and policy updates required an admin to manually log into individual accounts and change settings one by one
Managed Events, letting admins centrally control branding, visibility, and settings while still leaving team members the right amount of customization, and cutting new-hire onboarding time in the process
Users could only belong to one team, so a cross-functional initiative or campaign couldn't get its own team without breaking someone's primary org structure
Teams as a nested layer within Groups, letting a person belong to multiple teams at once and giving team leads control over member visibility and event management within their own team
Visibility was all or nothing — some customers needed strict, need-to-know separation, others needed full transparency, and the product could only give them one
Configurable visibility, so organizations with strict privacy needs and organizations that wanted full transparency could both be supported by the same underlying system
Managed Events let you push standards centrally while still letting team members customize within limits.
With Groups and nested Teams, someone could belong to multiple teams, and a campaign or cross-functional initiative could get its own team without breaking their primary org structure.
Configurable visibility, so an organization needing strict need-to-know separation and one needing full team-wide transparency could both be served by the same underlying product.
60 customers synthesized into 5 clear archetypes, not anecdotal guesses
Staff PM and Tech Lead involved throughout, not brought in at handoff
Enough shared structure to keep 5 independent streams coherent, without slowing any of them down
Flexible enough to accommodate structures we hadn't seen yet