Resource Parsing

All of the techniques for specifying resources accept an array of raw objects. These raw objects are “parsed” into proper Resource objects, which are accessible via methods like getResources and getResourceById.

The following properties are accepted in each raw resource object:

idUniquely identifies this resource. Event Objects with a corresponding resourceId field will be linked to this event. Will be coerced into a string.
titleText that will be displayed on the resource when it is rendered.
eventColorEvents associated with this resources will have their backgrounds and borders colored. Any CSS string color format can be specified, like "#f00" or "rgb(255,0,0)". This value will take precedence over the global eventColor option and the Event Source Object color option, but it will not take precedence over the Event Object color option.
eventContrastColorThe eventContrastColor setting for associated events.
eventClassCSS class name(s) that will apply to associated events.
eventOverlapThe eventOverlap setting for associated events. Does not accept a function.
eventConstraintThe eventConstraint setting for associated events.
eventAllowThe eventAllow setting for associated events.
businessHoursA businessHours declaration that will only apply to this resource. See example.
childrenChild resources. See below.
parentIdDefines the parent resource. See below.
any other prop!

Every other non-standard prop will be transferred over to the extendedProps hash in the Resource object.

For the color-related properties, even when an event is rendered on a non-resource view (views other than Timeline), these properties will still take effect.

Resources can be nested within each other. This will be displayed as an expander arrow in the UI which expands and contracts the child resources. Specifying nested resources can be done via one of two possible techniques…

Nested resources with a nested array

Child resources can be specified directly within the parent resource via the children property. This technique is often more pleasant when hardcoding an array because it is visually easier to understand the code.

resources: [
  {
    id: 'a',
    title: 'Room A',
    children: [
      {
        id: 'a1',
        title: 'Room A1'
      },
      {
        id: 'a2',
        title: 'Room A2'
      }
    ]
  }
]

Nested resources with a flat array

An alternative method for specifying child resources is via linking them together with the parentId property. This is often more pleasant when dealing with resource data that originates from a database.

resources: [
  {
    id: 'a',
    title: 'Room A'
  },
  {
    id: 'a1',
    parentId: 'a',
    title: 'Room A1'
  },
  {
    id: 'a2',
    parentId: 'a',
    title: 'Room A2'
  }
]