This post is an update on the highly-requested horizontal resource view (aka Timeline). This feature allows the assigning of events to resources (things like team members or conference rooms) and portrays time left-to-right and resources top-to-bottom. Please ☆ the issue tracker ticket to receive further updates.
Update (8/23/2015): Scheduler has been officially released!
Summary: To build Timeline the right way™ requires a lot of work. I’m a big supporter of open-source but, given the time commitment to get it off the ground and maintain, it only makes sense to release this feature as a premium product. I have a preview of Timeline to show you and have released FullCalendar v2.2.7.
I first looked at other developers’ implementations when deciding to tackle this feature. Special thanks to @jarnokurlin for helping out so many people. These implementations, which are essentially modifications to the existing Basic view, are very good and will continue to be useful to many developers. However, the Basic view approach becomes strained when considering these more advanced scenarios:
- arbitrary view durations (if there are too many slots, there should be scrolling)
- arbitrary granularities (ex: slots that are 1 second, 1 day, or 1 year)
- arbitrary number of resources (if there are too many, there should be scrolling)
- nesting / grouping resources (ex: people within a team or rooms within a building)
- other columns of data for each resource (effectively a built-in mini-spreadsheet)
So, I started work on a brand new view that would address these concerns, called Timeline. It quickly became clear that, if done thoroughly and robustly, development of this view would be a massive amount of work. I considered leveraging the open-source community to build this feature. However, as the project’s maintainer, quality-assuring and maintaining these large contributions from others would be a huge time commitment as well.
FullCalendar has been my hobby up until this point (albeit a very important and impactful one!) and the development of Timeline has not seemed possible given the time required to get it off the ground at the quality standard I have tried to uphold. However, when considering FullCalendar in the context of an open-source-based business (think CKEditor or WordPress), it begins to make more sense. If I can maintain FullCalendar’s standard feature set while being able to financially support the venture through premium features, I can offer the users of FullCalendar, both free and paid, faster and more consistent progress on the project.
So, I will be making Timeline a paid premium feature when used in commercial projects. The exact terms are still undefined, but there will likely be a per-project license with email support (i.e. me personally answering your questions to start) for commercial projects and a parallel GPL-esque license for no-cost use in fully open-source projects. I also plan to offer a significant price reduction for non-profit organizations.
In the future, will all other features be premium? The answer is NO. I really care about the open-source health of the project so I’ve come up with guidelines for what qualifies as a potential premium feature:
- clearly time-intensive to implement
- obviously separate from the core and should be implemented as a plugin
If the feature meets all these qualifications, it is a candidate for a premium feature. The core code will always be free, with a robust API and plugin system for creating things like Custom Views.
I would love to get your thoughts on this new approach. Please comment away!
Preview of Timeline
Back to Timeline. I’ve been hard at work, and even though my code is pre-alpha and not fit for download, I’ve prepared a live demo:
I’ve also prepared some preliminary documentation.
To offer input on Timeline’s specs and features, please participate in the issue tracker discussion.
If you would like to hire me as a contractor for Timeline customization/integration or anything else FullCalendar-related,
please email me at email@example.com *. This will allow me to make ends meet while finishing Timeline and will allow you to receive high-quality custom work directly from the author of the project.
*Update (Feb 17th): I am no longer accepting contracting work at this time
In other news, I have released a new minor version of FullCalendar. It contains bugfixes for already-released features. For more information, please read the changelog.