Today I wanted to add a custom action to a calendar in a SharePoint App. Thought it would be straight forward, but apparently not.
Adding the custom action is fine…
Selecting ‘Calendar’ as the list template to associate the custom action with is simple.
You then get a choice of where you want the action to appear. I want it on the Events Actions ribbon menu. Easy enough, well that’s not quite right as the List is not exhaustive and misses out completely the Calendar ribbon locations.
Turns out that even though you chose a calendar list template it does not offer you the ribbon locations available to a Calendar. So don’t use ‘Ribbon.ListItem.Actions’ as your location, use ‘Ribbon.Calendar.Events.Actions.Controls._children’ instead.
This is the correct location to use to add a command to the calendar ribbon.
By using this location your custom ribbon action will appear in the events lists on your App’s host site.
These locations can be found in ‘15\TEMPLATE\GLOBAL\XML\CMDUI.XML’, but I find it easier to use the developer tools in IE to get the locations.
If you look at the ribbon with the DOM Explorer then you can see a list of the locations in the IDs of the section containers. If find this a quicker easier way to find out ribbon locations you need to use.