In this paper, we consider a collaborative sensing scenario where sensing nodes are powered by energy harvested from environment. We assume that in each time slot, the utility generated by sensing nodes is a function of the number of the active sensing nodes in that slot. Under the energy causality constraint at every sensor, our objective is to develop a collaborative sensing scheduling for the sensors such that the time average utility is maximized. We consider an offline setting, where the energy harvesting profile over duration [0; T-1] for each sensor is known beforehand. Under the assumption that the utility function is concave over i+, we first propose an algorithm to identify the number of active sensors in each slot. The obtained scheduling structure has a 'majorization' property. We then propose a procedure to construct a collaborative sensing policy with the identified structure. The obtained sensing scheduling is proved to be optimal.