The Story behind Calinda
I have always wanted a perfect calendar app. #
I loved many features that Fantastical has, I like how I can arrange events by dragging from different days on the monthly view using Readdle Calendar, I’m fond of Thunderbird because it’s light.
But I really want something more intuitive, something that combines all these, something that can even offer help proactively.
I had an idea of building an AI-driven today panel when ChatGPT was first introduced. Basically, you can start your day with the app by looking at your schedule, weather, etc, with an intuitive timeline listing out all the events and tasks you have that day. You can interact with the app like it’s your personal assistant checking availability and managing your schedules. At night you keep a diary by answering some simple questions and recording your mood, and how you feel that day. So I made the first version of Calinda.
My draft of Calinda v1
After I start my postgrad studies, things get piling up so easily and my calendar looks like a mess. I have auto updated calendar subscriptions from the school, need to sync across Windows and iOS, switch between to-dos and events… It’s probably time to review Calinda.
I listed out my pain points and what kind of features I want as a user. #
- AI assistant (which was already mentioned in v1)
- e.g. I can just ask “Am I available next Friday afternoon? To schedule an interview?” and then the app responds yes or no with suggestions.
- Manage tasks and events at the same time
- In my opinion, tasks are like some time points but not necessarily time blocks because they usually come with deadlines. I know some people set up a five-minute or one-hour event to represent, but it’ll not be the case when we just combine them together.
- Time Zones
- If you work with a global team then you need this. Both for viewing and for scheduling.
- Share your availability and view others'
- Basically, it’s what when2meet and Fantastical do, but I want it to be more hassle-free so your availability will be generated automatically according to the calendars you choose, and if the other persons are also using Calinda, it’ll be more automatic as you can see their availability right on the app, and get notified when adding them as attendees.
- Multiple calendars
- Related to the availability. Sometimes I want to share my calendar with others so they can see my availability, but most platforms (haven’t seen one can) only allow you to share one calendar per link. But I use multiple calendars (study, work, life, …) and I want to share them in one link…
- Combining events
- Because my school has two calendar subscription links (one from Canvas so we have these timelines for assignments and exams, the other from the school calendar for events), both of them have my lectures and seminars so there are always two exact same events shown on the same time slot but from different calendars. Annoying, but I cannot simply give up one for another.
- But this feature would probably be too specific so not needed by many people.
I wanna know what others think and what’s their pain point. So I first went to Reddit. #
From this post:
What this guy wants is more like a combination of Trello, Notion and a calendar. I’ll probably dive into how you can drag and drop stuff from the inbox to calendars in the future, but now probably focus on making the calendar right. Also since we are gonna combine tasks and events here, you don’t need to do this kind of drag-and-drop, no? And you of course can mark it done. Kill two pain points with one feature.
Anyways the basic drag-and-drop to reschedule events will definitely be there.
I would say “task” should have a deadline, otherwise it’s a goal. Even though your team may assign you a task that can be done within a week, then the end of the week is your deadline of course. Probably I’ll consider a feature that allows you to break down a task into multiple steps for you to arrange like events.
Again, task within the calendar view.
I’m not gonna charge you 20 dollars a month, like this is insane.
This actually inspires me to build a better printer.
This sounds more like a project management feature. Probably use Omnifocus or a Gantt chart would be better. But sure we can add a tick box to skip weekends when adding a multiple-day event like this.
Right, I should’ve thought about some users who would like to keep track of their time. Apps like Forest have been doing great in incentivising users, too.
True. Some users may put “go to gym”, “groceries” etc on the calendar, and they can be really periodic so you might wanna manage the schedule of similar events within one window.
I also went to v2ex and Xiaohongshu. #
From this post:
Translate: If you have enough money just hire an assistant. I have to say all these features about automatically tracking the things you’ve done are highly personalised, so unless you’re gonna code it yourself, don’t expect too much to find a universal app. Even though you gonna develop it yourself, you might find that these demands won’t be very frequent in your daily life. And people don’t need to record everything they’ve done. It’s better not to automate the process of review, because what you did in 2 minutes probably can be more important than what you did in 2 hours. If you formed this habit to review it’ll be rather a quick process.
I agree that reflection should be done by ourselves, cause it’s more of a mind-growth process. But with AI I do think everyone can have their own assistants. Simply put, calendars are just CSVs/tables, skim through the blanks, analyse life/work patterns, and create some tricky events, it should not be difficult to do so.
Translate: The calendar we subscribe to cannot be modified because it’s single-way read-only. (second and third sentence not relevant, skipped)
That’s what I’m saying about my school calendars. It’s read-only so I cannot modify them. And it’s relatively easy to achieve technically like just duplicate a version.
Translate: In short: · Unable to distinguish between “scheduled task execution time” and “time spent on task” · Unable to assign multiple time slots to the same task The most common workflow I use with my task list is: · Jot down tasks briefly. · Drag tasks to the calendar by clicking “Schedule Task,” using time blocking. · Right-click on the current task to record focused time spent on it (and display it in the calendar as well). However, during this process, I encounter a problem: for a specific task, I can only assign one time slot. This means that if I drag a task to the calendar and mark it as “completed,” it will also disappear from the “Scheduled Tasks” sidebar. The next time I need to perform this task, it will show up as a “backlog” item, which disrupts the planning for repetitive tasks.
It’s more or less similar to project management as well. If users do want to manage the progress of tasks/projects, I should consider making it a main feature then.
I reviewed some apps on the market to see how they fix these issues. #
- Fantastical
- They have this “RSVP+Openings+Proposals” solution. But the thing is what if I don’t want to propose a time slot first? Also based on my experience with when2meet, it will be so rare to have our available time slots overlap so it’s also an issue if being done manually - you need to update your availability every time there’s any change.
- I honestly was having trouble adding a task - it says I can type “todo” or “task” at the beginning when adding an event, but it prompts a full-day event and I cannot choose the list I want. (iOS)
- Some other features like third-party calendars, time zones, and focus filters (kind of like different scenarios/scenes) are easy to describe and good to have.
- Readdle Calendar
- It has the best drag-and-drop experience on mobile devices. The monthly view even allows you to zoom in and out. It’s probably the best app. If they have this check availability and book time slot features I won’t develop mine though.
- Task management is a premium feature. It gives you two buttons when creating a new event/task so you can choose. And it is quick basic.
- Google Calendar
- What they did is this “Check calendars for availability” feature that while you propose your available time window, it’ll automatically disable some because of conflicts. This works fine for me as well!
- The task management here is basically the same as Readdle Calendar. So if I’d make my app differentiated I need to put some effort into this.
- Sunsama
- What they do is this “timeboxing” so it’s task-oriented. You also plan how much time the task/step will take by dragging them to your calendar. It works fine if most of your scheduling is task-oriented.
- They provide this 14-day free trial for ADHD, which is good and I think to some extent it makes sense because the app basically introduces a way/habit to do their scheduling, that is list out your tasks and then drag them to the calendar.
- Amie.so
- Quite like Sunsama, but Sunsama is closer to Trello with the task board. Users can even drag emails to their calendars. I probably won’t consider combining email and calendar for now, maybe in the future.
- Their website was too fancy and broke my Chrome.
- Reclaim AI (from Dropbox)
- It basically has all that I want! AI scheduling, time slot booking, and the smart meeting to check team members’ schedules. And they position themselves as a scheduling tool rather than another calendar app. So you can manage your tasks here and sync it with your own calendar app.
- The workflow here is “Plan -> Prioritise -> Auto Schedule”.
- You can customise how much time you need to stay focused, and you can even add time buffers for commuting.
- A very interesting feature called “copy events”, more or like responding to the calendar sharing issue. It’ll show events on your personal calendar as “personal commitment” when you are sharing your whole availability with the team.
- What they might wanna do next is to allow categorising tasks. So users can use it as an inbox or a place to plan the whole project and also each steps.
- The Starter plan is $8/month/user billed yearly, kinda like in the middle.
- TickTick
- Also task-oriented. They offer various views including basic calendar views, kanban, timeline, and even Eisenhower matrix and sticky note. For me, I would rather not mix high-level project planning (like outlining the big steps, e.g. I wanna build a product, and I plan to do research first, then roll out surveys, then analyse data, prototype etc. It’s not necessarily related to certain time windows). So I was thinking maybe you can allow users to plan these steps ahead, but not necessarily shown on calendars, only if these steps were broken into detailed tasks with a deadline, like drafting questionnaires before Tuesday, then you’ll drag these tasks into your calendar.
- “Constant Reminder” is interesting cause the pop-up notifications for most to-do apps are not significant enough like an alarm.
- Notion Calendar is too basic for now. OmniFocus would be too complex and we probably won’t target that part of really pro users. Won’t dive into Outlook because the users who stick with Outlook probably will just keep using it…
I prioritised what should be studied further and features to develop. #
- Task management (and drag-and-drop experience) within calendars
- Detailed logic behind AI scheduling and time slot booking
- Cross-platform syncing and managing subscribed calendars
- Other features
- Time zones
- Constant reminders
- Time buffers
- RSVPs
For the technical part, I think they are not difficult to the extent that no one has built before. It’s more like how we integrate all these features into one single app, and make things intuitive and logically connected to each other.
So for task management, users can either add tasks directly, or they can create Kanban/Gantt chart first to manage a project on a higher level, then break the project down into separate steps and tasks. They can 1) drag and drop manually, 2) use AI to auto schedule, 3) prioritise some tasks first then use AI to auto schedule.
Tasks can be dragged to the calendar –> So they become events. Or they can be assigned with deadlines –> So they become “due items”.
You can also combine the Gantt chart with the calendar view if you wanna see the higher-level planning (e.g. from 1 August to 15 August we identify this as the “brainstorming phase” for a new project. It’s not a series of full-day events).
For AI scheduling, team and personal scenarios are actually quite similar. For teams, we’ll need to:
- Analyse everyone’s working patterns
- Allow certain customisation (e.g. no weekends, at least one hour etc.)
- Push notifications and give recommendations if a team member’s availability changed
- If there’s no suitable slot, suggest some events for some members to be rescheduled (before that the app should check what events are not “locked” and also their priority preferences)
For booking slots, when displaying availability on the web, we should offer options that:
- Show availability only
- Show events at the same time but users can hide details for certain events or calendars
- Can compare with viewers’ own calendars, or just give suggestions if they are all using this app
- Time zone
For cross-platform syncing and managing subscribed calendars:
- iCloud is a big issue because you need the user to generate an app-only password and go through the CalDAV configuration. Fantastical needs users to create a different account.
- For Calinda, I was thinking to ease the pain of this account migration at the very beginning. Most people stick with iCloud, Google or Outlook because it’s time-consuming and difficult to migrate to other accounts.
- Similar to what we manage subscribed calendars (will talk about this soon), duplicate.
- iCloud calendars can be made public by generating
webcal://...
which is fundamentally aics
file. - Outlook and Google also support exporting calendars as
ics
files. - If we can help doing this export-import by accessing the calendar (users grant us the access first), it’s probably more hassle-free because all they need to do is SSO login.
- iCloud calendars can be made public by generating
- For these one-way subscribed calendars, what Calinda does is duplicate that calendar, then users can edit on this duplicated version, and we keep detecting new changes on the original one. If there’s new changes we pop up notifications.
I started to build the prototype. #
I started with the main weekly view. Also I made a “Multi-size” button here so the height of each row is based on the busiest day of that week. And then some components and pop-up windows, and some featured images for the landing page.
After I finished the first draft, I worked on the landing page. It’s probably 4 pm afternoon-ish, and I worked till 3 am the next day with no breaks - probably that’s what people call the flow of mind.
So here it is, Calinda v2, desktop version.
Last thing, I wanna see if it’s commercially acceptable, and how many people would be interested in it. #
Because this project is more or less like a productivity tool that I hope everyone can use, I really don’t care about margins if that’s the case so I did this “business” stuff at the very end - still, I need to know how to price it based on costs.
The major cost would be on APIs, charged according to tokens/words and API calls. Assuming that users usually input 100 words (directly chat with the app or start an AI scheduling) and we need 500-word outputs, and for each user on average they use 500 times the AI feature, that would be $5.20 for gpt-4o, $0.2 for gpt-4o-mini, $0.52 for gpt-3.5-turbo. It seems fine cause we definitely won’t use gpt-4o all the time.
Speaking of how it’s gonna work, after getting the prompt, the built-in model will check the time window we need, and then export the calendar within that time window as a CSV file, then we’ll send the file to the model. The size of our file will be calculated for the token we use as well, so if we assume that the number of total input characters is 10,000, the output characters ~2,000 (we only need a sentence about how we gonna schedule it to be used for our natural language scheduling function built-in, not a new CSV file or codes), and API calls still ~500, for gpt-4o-mini it’s $0.34. Seems also fine, will need to check the output quality later.
Go-to-market strategy would be firstly sending some invites on social media to productivity users, to gather reviews and to refine before going public. Then partner with them to do a bit marketing to create the word-of-mouth effect. Later some campaigns. The key is that this sector has already been well defined these years especially after the concept GTD was introduced, and we will be targeting all audience who’s interested in planning their schedules (whether they have formed this habit or not). We cover advanced features to attract pro users, and at the same time make them intuitive to stay close with general users.
Calinda is named after “Kalinda”, with “Cal” so you know it’s a calendar app.
Kalinda is a character in the CBS TV series The Good Wife.
Login via Github