# Resource Data

Premium feature.

How to get resources onto your calendar and how to manipulate resource data thereafter.

## Articles

- [resources (as an array)](resources-array.md) - Tells the calendar to display resources from an array input.
- [resources (as a JSON feed)](resources-json-feed.md) - Tells the calendar to fetch the resource list from a remote script.
- [resources (as a function)](resources-function.md) - A custom function for programmatically generating raw Resources objects.
- [Resource Parsing](resource-parsing.md) - 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.
- [Resource Object](resource-object.md) - Raw resource object are eventually parsed into proper resource objects, which are accessible via Calendar methods such as getResources and getResourceById. You can read their properties or manipulate them via methods.
- [Associating Events with Resources](resources-and-events.md) - How to specify which resources your events are assigned to.
- [refetchResourcesOnNavigate](refetchResourcesOnNavigate.md) - Whether to refetch and rerender resources when the user navigates to a different date or changes the view.
- [initialResources](initialResources.md) - This is exactly like specifying resources as an array except that if the supplied value changes, the calendar will NOT be updated to reflect. Only applicable to declarative front-end frameworks such as React, Vue, and Angular.

## Methods

- [refetchResources](refetchResources.md) - Causes the resource data to be fetched and freshly rerendered.
- [getTopLevelResources](getTopLevelResources.md) - A method that retrieves only top-level Resources.
- [getResources](getResources.md) - A method that retrieves all Resources, including children, as a single flat list.
- [getResourceById](getResourceById.md) - A method that retrieves a specific Resource Object in memory.
- [addResource](addResource.md) - Allows programmatic rendering of a new resource on the calendar after the initial set of resources has already been displayed.
- [Resource::getParent](Resource-getParent.md) - Returns the parent Resource of a child resource.
- [Resource::getChildren](Resource-getChildren.md) - Returns a list of a resource's child resources.
- [Resource::getEvents](Resource-getEvents.md) - Retrieves a list of Event Objects that are associated with the given resource.
- [Resource::setProp](Resource-setProp.md) - Modifies any of the properties of a Resource Object.
- [Resource::setExtendedProp](Resource-setExtendedProp.md) - Modifies a single property in an Resource Object's extendedProps hash.
- [Resource::remove](Resource-remove.md) - Programmatically removes a resource from the calendar.
- [Resource::toPlainObject](Resource-toPlainObject.md) - Serializes a Resource API Object to a plain object that would be fit for JSON.stringify.

## Callbacks

- [resourceAdd](resourceAdd.md) - Called after a resource has been added to the calendar.
- [resourceChange](resourceChange.md) - Called after a resource has been modified in some way.
- [resourceRemove](resourceRemove.md) - Called after a resource has been removed from the calendar.
- [resourcesSet](resourcesSet.md) - Called after resource data is initialized OR changed in any way.

## See Also

- [Event::getResources](Event-getResources.md) - Gets the Resources associated with the given event.
- [Event::setResources](Event-setResources.md) - Sets the Resources associated with the given event.
- [businessHours-per-resource](businessHours-per-resource.md) - The main businessHours settings can be applied more granularly to individual resources via the businessHours property on the Resource input
- [loading](loading.md) - Triggered when event or resource fetching starts/stops.

## Demos

- [Add resources dynamically with addResource](addResource-demo)
