Prior to My Calendar 3.6, category icons could only be replaced by uploading your files to a custom location, then assigning those icons to your categories.
Since My Calendar 3.6, icons can also be filtered using the mc_get_core_icon_index and mc_get_core_icons filters.
The advantage to using the PHP filter method is that you can keep the existing key for your category and just replace the value returned. If you add a custom icon via the filter, you will need to clear the My Calendar fragment cache in the General settings panel before it will be visible.
Replacing via file upload
Once you’ve uploaded the files to your custom location, they should be recognized by the plugin and loaded in place of the default icons. You will be able to select them in place of the default icons.
Replacing via filter
The filter is more flexible, as you can mix the default icons with your own custom icons. Filtered icons must return the full SVG for the icon. They should not include accessible names, as the icon names will be generated dynamically depending on the category and event being represented.