Monday, March 09, 2015

SharePoint Calendars, Tasks and Resource Working Time

SharePoint offers much more than just a task list. The Calendar list is also quite important in the day-to-day execution of a project as it can capture a persons extra-project activities and communicate to the group when folks might not be available. While a project manager can certainly flip back and forth between a task list and a calendar list, we think it is much easier to integrate the two in a single view so you can quickly see when a person is 'out of the office'.

Here's what this integration looks like with IntelliGantt for SharePoint. First, a person would list their 'out of office' events on the calendar. For example:

Note that there is a new field called 'Person' that associates a real person to this calendar event. This is how IntelliGantt knows what individual this non-work time block belongs to. We will go in to detail later in this post to illustrate how to set this up.

When IntelliGantt knows about a calendar list, it will pull the events from it, look for items that contain the 'Person' field and use that value to cross-reference against task assignments. This means that IntelliGantt will show a persons non-work time right in the Gantt chart like so:

It is interactive as well. As you assign tasks, when you select a person you will see their non-working appear on the timeline so as to help you decided if they are the right person for the job at hand.

Finally, if you hover over the non-working time you can see the event description (along with begin and end times) so you know why that person is not available.

So how do we set this up? It will require adding a new 'Person' column in the calendar and letting IntelliGantt know which calendar to talk to via the configuration.js file. Let's show the column to add to the calendar list first.

This is a simple column of type User that needs to be named 'Person'. IntelliGantt will look for events with this column and, if found, will assume the start and finish times define non-working times for the 'Person' value. 

Next you will need to let IntelliGantt know which Calendar list to use for this non-working time information. The calendar container this information does not need to be in the same site as your task lists. We've set things up so that a single calendar list can be used for any time of task lists. This will make it easy for you to have a 'calendar of reference' for everyone to see when people are unavailable. 

Here we have added the calendar information to our configuration file. This one happens to be in the same workspace (as a demonstration) so we use a relative url path. Just in case the image is not clear here is the JSON section you need to define.

calendar: {
        workingDays: [0, 1, 1, 1, 1, 1, 0],
        periods: [{ name: 'morning', start: 28800, finish: 43200 }, { name: 'afternoon', start: 46800, finish: 61200 }],
        site: {
            url: './',
            title: 'Calendar',
            begin: 'EventDate',
            end: 'EndDate',
            userColumn: 'Person'

With these two pieces in place, IntelliGantt will merge the task and calendar information into one helpful view.