Event Sharing with the REST API

REST API Configuration options: disabled, server, or client.

Any site with My Calendar Pro installed can be set up to share events with another site that has My Calendar Pro installed. For security purposes, there are a number of controls in place to restrict how that works.

You can enable the REST API from the My Calendar Pro settings. By default, the REST API is fully disabled, and there’s no access to it. You can either enable My Calendar to act as a REST API server or as a REST API client.


Settings for REST API Clients

If your site is a client, then the REST API is not enabled, but the user interface for adding your events to other site’s is enabled. You will have an interface for adding endpoints, or URLs that this site can attempt to send events to.


The API key entered for endpoints must be that provided by the API server. This is the default API key; if you’re using multiple endpoints, each endpoint can have a unique API key.

URL: The home URL for the My Calendar server.

Label: The label that will be displayed in the user interface for selecting where to send events.

Author: The author ID that should be sent as the author on the remote site. This will probably not be an author ID that exists in your site, so you will need to be provided with an appropriate author for the target site.

Key: The API key for the target API server. If left blank, queries will use the API key set globally.

Cross Posting Events

Cross posting events to remote sites

When the site is a client, any configured servers will be shown in the admin ‘Add Events’ interface as options to select for target. The events will always also be added to the current site.

Cross posting is not available from the public submissions form.


REST API Server settings

For sites operating as an API server, you have to configure the clients that you are allowing access to post events. Only clients that match these client URLs and pass the API key you define will be allowed to post events.


API Key: You can set the API key for your site. This is an API key that any other site will need to have entered in their Endpoint settings in order to be allowed to post events on your site.

URL: The home_url() value of a site that you are granting permissions to post events to your site.

Label: How that site will be labeled when it is shown on your site as an event source or when filtering events.

Display on Calendar: Whether the display of events from these clients should default to ‘on’ or ‘off’. If ‘off’, the events will be hidden by default. They are still available, just not visible by default.


When your site is operating as a server, the My Calendar API Filters widget or [my_calendar_api_sources] shortcode can be used to display controls for enabling and disabling events from the various sources (similar to the category filtering in the default calendar.)