Calendars
This page explains how to use calendars to define the work and nonwork time intervals of engineers and tasks. The page describes yearly and weekly intervals, activity and shift intervals, and the use of calendars in the logic services. It explains other ways to define nonwork times such as nonavailability assignments.
A Calendar
object is a specification of when a resource is available for work, or when a task can be performed. The calendar specifies the activity intervals of the resource or the task. For example, a resource calendar might specify:
- Hours of the day when the resource normally works
- Hours when the resource can optionally be scheduled for overtime work
- Hours or days when a resource is unavailable, for example at night, during lunch break, or during weekends, holidays, and vacation
Depending on your business needs, you can use a single resource calendar for your entire organization, or independent calendars for individual departments or resources. Similarly, you might create separate task calendars for different customers, indicating when each customer's office is open for business.
To save work and help maintain calendars, you can derive one calendar from another. A derived calendar inherits and optionally overrides the features of its base calendar. Thus you might create a single base calendar for your organization. You can then create derived calendars that specify the vacation time of individual resources, unusual office hours of particular customers, etc.
Optionally, you can use resource calendars for shift scheduling. A shift is a time interval when a resource can be assigned to a specified group of tasks. For example, you might subdivide a resource's working time into a morning shift, when the resource performs installation tasks, and an afternoon shift, when the resource performs maintenance tasks.
You can use calendars in rules and objectives. For example, a calendar rule might require that a resource can be scheduled only during normal working hours. Another calendar rule might specify that a task can be performed only during the customer's office hours. A shift rule might ensure that resources are assigned only to certain types of tasks during specified time intervals.
Service Edge requires resource calendars as input. The calendars define the time intervals when the resources are available for work. You can configure one or more Calendar
or Enhanced Calendar
rules that permit the resources to be assigned only during their working intervals. If the rules permit scheduling during Optional Work (overtime) periods, you can use an Overtime
objective to minimize the use of overtime. Optionally, Service Edge can also accept task calendars as input. You can configure calendar rules that permit Service Edge to assign the tasks only during the working intervals.
Yearly (Single) and Weekly Time Intervals
A calendar contains a set of time intervals having the following types.
Yearly (Single) intervals
A sequence of time intervals that occur once.
An example of a yearly interval is January 1 2011 00:00 to January 2 2011 00:00
. A calendar might specify that a resource does not work during this interval.
Weekly intervals
A sequence of time intervals that recur every week.
An example is Monday 08:00-17:00
. A calendar might specify that a resource works every week during this interval.
Time-phased weekly intervals
A sequence of time intervals that recur each week, and that are valid between specified dates.
An example is Sunday 08:00-17:00, from January 1, 2011 to June 30, 2011
. A calendar might use this interval to specify that a resource works every Sunday during the first half of the year.
Interval Usage
Most organizations use both yearly and weekly intervals. Yearly intervals represent holidays or special events, and weekly intervals represent the normal work week.
Time-phased weekly intervals are optional. They are recommended to represent situations that recur weekly over a specified period, instead of defining yearly intervals for each of the instances.
Activity Intervals
An activity interval is a calendar interval that is labeled with one of the following activity statuses.
Work
The resource or task is active.
Not Work
The resource or task is inactive.
Optional Work
Non-regular active time, such as overtime hours.
Undefined
No status value.
Supervision
The resource is working as a supervisor. This status means that the resource is at work, but the interval is treated as Not Work for scheduling purposes.
For example, you might build up a calendar by specifying the following weekly intervals:
Weekly interval |
Status |
Sunday 00:00 to Monday 08:00 |
Not Work |
Monday, 08:00 to Monday 17:00 |
Work |
Monday 17:00 to Tuesday 08:00 |
Not Work |
(and so forth) |
|
Once you have a standard week, you can insert special days, such as holidays, training periods, and vacations as yearly intervals. For example, you might set a vacation interval such as:
Yearly interval |
Status |
July 14, 2012 00:00 to July 28, 2012 00:00 |
Not Work |
You can set as many intervals as you wish. You do not need to define every possible interval. For example, if you omit weekend intervals, then the system treats these intervals as Undefined.
Deriving One Calendar from Another
A calendar can reference another calendar object and inherit the referenced calendar's intervals. The referenced calendar is called a base calendar, and the new calendar is called a derived calendar.
A derived calendar inherits the complete set of yearly and weekly time intervals from the base calendar: You can override the time intervals in the derived calendar by adding more intervals to the derived calendar.
This feature lets you create a standard calendar for your organization and then derive other calendars from it. For example, suppose your standard calendar has weekly work intervals from Monday through Friday, 09:00 to 17:00. It has yearly nonwork intervals on January 1, Memorial Day, etc.
Your installation department has a weekly meeting every Wednesday from 9:00 to 11:00, when you can't schedule the installation engineers. You create a derived calendar for the installers, which you base on the standard calendar. You add a weekly nonwork interval to allow for the meeting. The new interval overrides the intervals in the base calendar.
An installer named Jane Palmer works a typical weekly schedule but attends a special training course every Tuesday afternoon. You create a personal calendar for Jane Palmer based on the installer's calendar. You add a weekly nonwork interval for the training course, yearly intervals for her vacation, etc. The new intervals override the intervals in both the standard calendar and the installer's calendar.
After you derive a calendar, you can still make changes to the base calendar, and the derived calendar inherits the changes. In the above example, suppose your organization decides to add February 19 as a new company-wide holiday. You add February 19 to the standard calendar as a yearly nonwork interval. The installer's calendar and Jane Palmer's personal calendar—which you previously defined—automatically inherit the new interval. Service Edge treats February 19 as nonwork time for everyone in the company, including the installers and Jane Palmer. Of course, you can override the inheritance by adding February 19 as a work interval to one of the derived calendars.
There is no limit to the length of an inheritance chain. Using this feature, you can create individualized calendars for any level of your organizational hierarchy.
Permissions
In order to view a derived calendar, the user needs read permissions to the referenced calendar as well as to the derived calendar.
You need to provide the user with permissions to the relevant records in the Calendar object (see Managing User Groups).
Adjacent Time Intervals
Time intervals are considered to include their start time but not to include their finish time. For example, an interval from 9:00 - 17:00 contains the time 9:00 but ends just before 17:00.
Therefore there is no conflict if you define, say, a work interval from 9:00 to 17:00 and an adjacent nonwork interval from 17:00 to 9:00 the next day.
Conflicting Time Intervals
A calendar has a continuous timeline. When you add an interval, the calendar adjusts any overlapping intervals that were already on the timeline so they do not conflict. The new interval overrides the ones that were previously on the line.
For example, if you set a working interval of Monday 8:00 - 15:00, and then you set a nonworking interval of Monday 13:00 - 17:00, the calendar truncates the working interval to Monday 8:00 - 13:00. The entire interval of Monday 13:00 - 17:00 is nonworking time.
On the other hand, if you add adjacent or overlapping intervals that have the same status, the calendar unites them. For example, if you add two working intervals of Monday 8:00 - 15:00 and Monday 13:00 - 17:00, the calendar unites them to a single working interval of Monday 8:00 - 17:00.
Yearly intervals override weekly intervals. The override sequence is:
Yearly Intervals > Time-Phased Weekly Intervals > Weekly Intervals
The intervals that you set in a derived calendar override the intervals in a base calendar.
Undefining a Time Interval
You can leave a time interval undefined, or you can explicitly create a time interval that has a status of Undefined. During an undefined interval, a derived calendar inherits the intervals of its base calendar.
Configuring Calendars and Activity Intervals
Conceptually, configuring and maintaining calendars involves the following steps:
- Create the
Calendar
objects. - Define the activity intervals in each calendar.
- Assign the calendars to resources and optionally to tasks.
You can perform these steps in any of the following ways.
Editing Calendars in the Service Edge UI
To create calendars and configure the intervals, use the Calendar view of the Service Edge UI. In the resource and task forms of the Service Edge UI, you can assign a calendar to a resource or task.
Defining Calendars by Using the SXP Tool
In Using the SXP View of the Service Edge UI, you can send a message such as SXPCalendarCreate
to the Service Edge server.
Transmitting Calendar Data by Integration with an External System
If you maintain the calendar data in an external system such as an HRM system, you can transmit the data to the Service Edge server. For instructions, see Integrating Click Field Service Edge with External Systems.
Other Ways to Define Nonwork Time
Calendars are not the only way to define nonwork time. The following paragraphs describe other ways to define the times when a resource is not available.
Nonavailability Assignments
You can create an assignment that contains a resource and a time interval, but does not contain a task. An assignment of this sort is called a nonavailability assignment, or for short, a nonavailability. You can use nonavailability assignments to define periods when a resource is not available, such as vacations, meetings, etc.
In Service Edge, a Resource Availability
rule prevents the resource from being assigned during a nonavailability.
Gap Rule
In Service Edge, you can use a Gap
rule to require breaks between assignments, lunch breaks, etc. The rule supports flexible time constraints, for example, a lunch break of 45 minutes, which begins as soon as possible after 12:00, but not necessarily exactly at 12:00.
Shift Intervals
Optionally, you can add shift intervals to a resource calendar. A shift is a time interval when a resource can be assigned to a specified group of tasks.
For example, suppose that a resource calendar has working intervals of Monday to Friday, 8:00 - 17:00. You can subdivide the working time into shifts of 8:00 - 14:00, when the resources perform installation tasks, and 14:00 - 17:00, when the resources perform maintenance tasks.
To configure a shift, you must associate a calendar time interval with a task group (Groups). In the above example, you would define weekly intervals of Monday to Friday, 8:00 - 14:00, and associate them with a group of installation tasks. You would define weekly intervals of Monday to Friday, 14:00 - 17:00, associated with a group of maintenance tasks.
Timeline of Shift Intervals
Shift intervals operate in exactly the same way as working and nonworking intervals. You can define weekly and yearly shift intervals. A derived calendar inherits the shift intervals of its base calendar.
The calendar maintains the shift intervals on a continuous timeline, resolving conflicts between overlapping intervals and uniting adjacent intervals that have the same task group.
Relation between Activity and Shift Intervals
A calendar maintains activity intervals (working and nonworking time) and shift intervals on separate timelines. The timelines are completely independent of each other.
In some organizations, it makes sense to define shift intervals only during working time. In other organizations, it makes sense to define shift intervals even during nonworking time. This would be appropriate, for example, if your organization sometimes permits overtime work during nominally nonworking time.
Applications that Use Shift Intervals
Among the Integrating Click Field Service Edge with External Systems applications, only Service Edge supports shift intervals in Calendar
objects. You can configure a Shift
rule that enforces the shift restrictions. You can assign shifts only to resource calendars. It is not meaningful to assign shifts to task calendars.
Configuring Shift Intervals
You can define shift intervals in the Service Edge UI. See Creating Shift Intervals.
You can also import shift intervals by integration with an external application, or by using the SXP Tool to send a message such as SXPCalendarCreate
to the server.
Related Topics
Using the SXP View of the Service Edge UI
SXP Messages that Work with Calendars