User-first philosophy

As I've said in the past, I'm a big believer in building a product around user feedback. I think you should always start from a very basic idea that solves one problem, get your first few users, and then from there build what's needed for them.

That's why, when I build any sort of product, I make sure to have a big "Feedback" button easily available, with as few barriers as possible (each barrier is more people not providing their feedback).

User suggestion

Recently, I received this suggestion from a user of one of my running projects that does calendar synchronization across Google, Outlooks, and iCalendar:

Feature request: when setting up a sync, have the option to add a buffer to either the start or end or both of the copied event in the destination calendar. For example, if I am syncing personal calendar to work calendar, I might have a dentist's appointment in my personal calendar for 30 minutes, but it would be useful to have this expanded when synced to my work calendar to be 90 mins (adding 30 mins either side of the appointment) to cover travelling time to and from. While I could expand the appointment in my personal calendar, firstly I would have to have to remember to do this with every event I add that involves travel, and secondly, so would others adding to shared calendars that I have in my personal calendar. Hope that makes sense.

The second most important thing, is quickly answering to the user! In this case, I answered within one hour and told the user that it could be done probably within the week.

Building the feature

The project's code is quite clean, so adding this feature took surprisingly little time, about 3 hours; voila, within the week I had a simple new feature: you can either add buffer time at the rule level (affects every synchronized event), or include it in the description of a single event.

I wish there was a way to do it in a "private note" or something, to avoid having to modify the description, but unfortunately not, c'est la vie