Google Calendar’s missing schedule view

No Employees
Founders Code
Solo Founder
Task Management

It always takes a lot of time to sync scheduling tools and events in individual employee calendars. Why is there no scheduling view directly in Google Calendar? To fill this gap I created TeamCal.

What's next for 2019?

A very successful year passed for TeamCal. MRR grew to over $1000, and more and more customers are signing up. The integration of Intercom increased the rate of successful trials more than I expected. The main improvement with Intercom was to notify users about features at the right time in the on-boarding process. That change helped customers a lot to get more value out of the trial.

The primary goal for this year will be to work exclusively on acquiring more users. Because of that, I decided not to work on major features. Instead, I’m toying with integrating into the ZOHO marketplace and adding more content to the website. Additionally, I need to work on getting more traffic from 3rd party websites - though I'm still trying to figure out a solid plan on how to do that.

Hit $1000 a month!

After slow but steady growth TeamCal crossed $1000/month in subscription revenue!

To grow more the next step will be to retain and guide new users better. The idea is to have an email flow and a small product tour after signup. I was thinking of using Intercom for it because it supports email flows and in-app notifications. If any of you have used other tools, I would be thrilled if you can leave a comment.

Failed payments

A couple of subscription renewal payments failed, and I noticed that Stripe offers no built-in notifications for that. For now, I decided to send those notification emails manually. I found a great blog article on how to structure those emails, see the link below. Later I will need to automate this - any ideas for simple to setup dunning products are welcome!

Annual plans

More and more customers are asking for annual plans and I decided to add them now. The new annual plans will have a discount by giving two months for free.

Coincidentally there is a great discussion right now on the forum about annual plans:

"What's new"

Added a “What’s New” link to the web app to keep users informed about new TeamCal features. To keep it simple the link points directly to the blog. By using a tag (“News”) on the blog articles, the user will see a nice list will all the relevant updates.

Google AdsWords update

My GoogleAd campaign has ended. Exactly 44 people clicked on one of the Ads and 15 signed up in the end. I don't have the final number yet on how many bought a subscription because of the 30-day trial delay. I assume it will be less than 5.

What I definitely recommend is to link Google Ads with Google Analytics and report back when people buy a subscription. This will give an exact dollar amount on how successful the campaign is. I didn't do it because I was frankly too lazy to set up all this for my free voucher. If I ever decide to buy Google Ads for money then this is an absolute must, otherwise, it will be difficult to control and measure the spending.

Another thing I noticed is that despite 5-10% click-through rate (CTR) Google will penalize the ad when not enough people search for a keyword. I can only assume this is to force advertisers to choose more common keywords and increase spending.

Google AdWords

I started the Google AdWords campaign with the $150 voucher I got.

What I learned so far:

  • Set daily budget otherwise, Google AdWords will spend your budget in a short time. Stretching it over more days will give you time to adjust your campaign.
  • Create different AdGroups/Ads for different keywords. Google and users like when your ad matches the keyword.
  • Disable AdWords on mobile/tablets depending on your target market.
  • Disable usage of “Search Network” and “Display Network”. For my target market, the Google Search ads are the best, and I don’t want my ads showing up on some random website. I noticed that some of those websites are pretty shady.
  • Create “AdSchedule” to only show ads at a specific time (e.g., exclude weekends)

How I got my first paying customers

Getting the first customer and more importantly, the first paying customer is always a hot topic. Frankly, it's not something I'm good at, but at least for TeamCal, I managed to come up with a good solution.

Twelve customers of my previous side project wrote me that they are looking for something else and GANTTplanner is not what they need. I wrote them about my idea of TeamCal and that I will contact them once I have the initial product ready. I didn't do anything for one and a half years, so I didn't expect any positive results when I finally built TeamCal and wrote them. To my surprise, eight of those people tried TeamCal and some even signed-up for a paid subscription. What I like to add is that I wrote each of them an individual email referencing their previous email - no boilerplate text.

Even if you don't have a previous product, service or mailing list, I think this approach is still valuable. Search for forum posts, tweets, and other places and write those people that you are working on a solution and if you can contact them once ready.

My next update will be about my experience with Google Ads. I received a $150 voucher from Google and decided to spent in on ads for TeamCal :)

Getting to market quickly

When I started my first side project, I wanted to learn as much as possible. That's why I coded everything from scratch and invested a lot of time to create features which weren't even that important.

While this was incredibly rewarding, it took me a very long time. I spent nearly six months to create a Gantt chart JS component ( before starting the actual business logic of the project.

Needless to say, this isn't the fastest approach to building a side project with the goal of earning money. On the contrary, it's risky because there is a big chance nobody will use whatever you made - not something you want to find out after spending a lot of time.

For TeamCal I took a radically different approach. First of all, I had initial customer feedback confirming that the idea of TeamCal is something they needed. While this doesn't guarantee a successful product, at least I knew there are others out there looking for a solution to the problem I'm going to solve.

On the technical side, I created the first version of TeamCal in less than two weeks in my spare time. I did this by re-using existing and mature ("boring") solutions as much as possible. The Django framework (Python) provides an excellent base for web apps because it includes all necessary functionality to do so. At the time Angular 2 just came out, but I decided to still go with Angular 1 because I knew it well, it was mature and there is a ton of material out there if something doesn't work.

I also decided to buy finished JS components from Telerik. While this requires an initial upfront cash investment, it helped me to focus on implementing the actual business logic. With no previous experience of Telerik I have to say that the components, documentation, and support is very good.

I'm running TeamCal on Heroku. Compared to a Digital Ocean droplet it's more expensive but on the other hand, requires zero operational efforts.

TeamCal on Indiehackers

With my first post, I would like to welcome you to my journey of creating TeamCal. TeamCal is my second side project, and I built it based on feedback I received from customers of my first side project GANTTplanner (

It always takes a lot of time to sync scheduling tools and events in individual employee calendars. Why is there no scheduling view directly in Google Calendar? To fill this gap I created TeamCal.