Using OCCategories This 'class' is meant for any apps that uses OC_VObjects with the CATEGORIES field e.g. Contacts and Calendar. It provides an editor UI for adding/deleting and rescanning categories and basic ajax functions for adding and deleting. To use the mass updating of OC_VObjects that /lib/vcategories.php provides, the app must implement its own ajax functions in /apps/$(APP)/ajax/categories/rescan.php and /apps/$(APP)/ajax/categories/delete.php See examples in /apps/contacts/ajax/categories and the inline docs in /lib/vcategories.php. In your app make sure you load the script and stylesheet: OC_Util::addScript('','oc-vcategories'); OC_Util::addStyle('','oc-vcategories'); Set the app specific values in your javascript file. This is what I've used for the Contacts app: OCCategories.app = 'contacts'; OCCategories.changed = Contacts.UI.Card.categoriesChanged; If OCCategories.changed is set that function will be called each time the categories have been changed in the editor (add/delete/rescan) to allow the app to update the UI accordingly. The only argument to the function is an array of the updated categories e.g.: OCCategories.changed = function(categories) { for(var category in categories) { console.log(categories[category]); } } To show the categories editor call: OCCategories.edit()