anchor.diff:  To search for tasks you initialize the +query+ map with query values. With the +params+ map you can specify things like
   sort order and pagination. The following query keys can be used in the +query+ map.
   
  -[options="header"]
  +[options="header",cols="25,25,50"]
   |===
   | Key           | Description         | Type
   | number        | Task number         | String (wildcard supported)
  
positive.code: To set an alarm for a task you just have to set two properties on the task instance. Set +alarmTime+ to a +Date+ instance and +alarmType+ to an +Integer+.
  The +CrmTask+ domain class defines +Integer+ constants for common alarm types.
  
  [options="header"]
  |===
  | Constant                   | Value | Description
  | CrmTask.ALARM_NONE         |  0    | No alarm will be triggered
  
negative.code: ----
  def result = crmTaskService.list([referenceType: 'crmContact',
      fromDate: '2014-07-01', toDate: '2014-07-31', complete: 0], [:])
  println "Found ${result.size()} tasks scheduled for July"
  ----
  
  === Setting task status
  
  A task keep track if it's completed or not. The +completed+ property is an +Integer+ constrained to 0-100 which represents
  how many percent completed the task is. The +CrmTask+ domain class has three constants that defines common/simple states of completion.
  These constants can be used when you don't need fine grained control of how many percent is complete.
  
  [cols="40,10,50"]
  |===
  | CrmTask.STATUS_PLANNED   |   0 | The task is not started (it's zero percent complete)
  | CrmTask.STATUS_ACTIVE    |  50 | The task is started but not yet completed (it's 50 % complete)
  