FAQ Q241: How to bulk import resources using a CSV file

Note: this feature is still in the beta. Please send us an email if you notice any problems with the CSV format.

There are two ways to bulk import resources: use the API function add_resource or you can use a much simpler bulk CSV import (you'll find a link at the bottom of Site Settings). In both cases you'll first need to set up one or more base resources. This is the resource which will serve as a base for the new resource, all settings which cannot be set in the CSV will be taken from the base resource. If you wish, you can create a special base resource, just for this purpose, and keep it in the unpublished state (unpublished resources don't result in any charges).

The CSV structure is very simple: there is no special pre-defined meaning for any column, the first (header) row determines what given column stands for. The following names can be used in the header row:
Header cell labelAlternative labelsObligatory fieldDescription
NameYesName of the new resource
QuantityQtyYesQuantity of the new resource. In case of shared resources, it's the number of persons the resource can be shared between (seats etc.)
Minimum rentalMin rental, min. rentalYou can override the base resource's minimum rental time by specifying this parameter. The value is always expressed in hours, e.g. for the min. rental time of 1 day enter 24. In case you use predefined durations (see predefined duration xxx below), you should not use this parameter. You can also skip it if the min. rental time is the same as that of the base resource.
Maximum rentalMax rental, max. rental You can override the base resource's maximum rental time by specifying this parameter. The value is always expressed in hours, e.g. for the max. rental time of 1 week enter 168. In case you use predefined durations (see predefined duration xxx below), you should not use this parameter. You can also skip it if the max. rental time is the same as that of the base resource.
Predefined duration text X, Predefined duration hours X In case you want to use predefined durations (see time-related settings in resource settings or Q228), you should pass both these values for as many duration choices as you want the end customer to see. E.g. if you want to give the customer a choice of an hour-long or two-hour long massage, you'll need to add 4 columns: Predefined duration text 1 (with a value like Hour-long massage), Predefined duration hours 1 (with a value of 1), Predefined duration text 2 (with a value like Two-hour massage), Predefined duration hours 2 (with a value of 2).
Available from, Available untilYou can override the base resource's setting Available on working days from and Available on working days until. This only applies to hour-based resources. This should be a single integer (using a 24-hour clock), e.g. 8 means 8am and 18 means 6pm.
Start timesYou can override the base resource's setting Restrict starting times. This only applies to hour-based resources. The different times should be comma-separated, and the format is exactly like in the UI (resource settings page).
Minimum hours to rentalMin hours to rental, Min time to rental, Min. time to rentalYou can override the base resource's setting Min. time between reservation and rental. This is a number and the time is expressed in hours, e.g. 1 means reservation is allowed up to 1 hour before rental.
Maximum days to rentalMax days to rental, Max time to rental, Max. time to rentalYou can override the base resource's setting Max. time between reservation and rental. This is a number and the time is expressed in days, e.g. 7 means reservation is allowed no earlier than 7 days before rental.
Default pricePriceYou can override the base resource's default price (first row in the pricing manager). This can be also used to specify a new custom pricing script (see Q137 in the FAQ).
Resource admin You can override the base resource's resource admin ID. The new resource admin must be either an existing resource admin or moderator. New users without an administrative role in the planyo site are not allowed to be admins.
Event datesEvent days, Event day, Event dateFor event-type resources, you can specify comma-separated start dates or start dates and times (in the same way as in resource settings) of your event.
Is publishedBy default the new resource will be published. Set this to No if you want the new resource to be unpublished
ImagesImage, Photo, PhotosYou can specify comma-separated full URLs (starting with http:// or https://) of images to be downloaded by planyo and used for the new resource
Any custom resource property nameprop_res_xxxYou can override any number of resource-specific properties (defined in the admin panel in: Site settings / Custom resource properties). E.g. for a custom property 'distance to sea', the header can be either Distance to sea or prop_res_distance_to_sea. The resource description is also stored as a custom resource property with the name prop_res_description, so you should set it if you want to update the resource description. Other properties with pre-defined meaning in planyo are: prop_res_url - used for resource description URLs, prop_res_number_of_persons - used to calculate the max. number of persons per resource, prop_res_gps_coords - GPS coordinates used to e.g. show resources on a map (in form latitude, longitude), prop_res_rental_tax_rate - can be used to set specific tax rate for given resource (expressed in percent)
Base resourceIf you don't want to use only one base resource in the bulk import, you can specify a different base resource for some of the new resources. If this is not specified, the general base resource (specified in the UI) will be used.


The remaining rows in the CSV file should be filled with information about each new resource to be added. Please note that new resources must have a unique name. If a resource with the same name already exists, the new reasource will not be imported.