diff --git src/wp-admin/admin-ajax.php src/wp-admin/admin-ajax.php
index 3213d55028..e0f4464d94 100644
--- src/wp-admin/admin-ajax.php
+++ src/wp-admin/admin-ajax.php
@@ -64,7 +64,7 @@ $core_actions_post = array(
 	'parse-media-shortcode', 'destroy-sessions', 'install-plugin', 'update-plugin', 'press-this-save-post',
 	'press-this-add-category', 'crop-image', 'generate-password', 'save-wporg-username', 'delete-plugin',
 	'search-plugins', 'search-install-plugins', 'activate-plugin', 'update-theme', 'delete-theme',
-	'install-theme', 'get-post-thumbnail-html', 'get-community-events',
+	'install-theme', 'get-post-thumbnail-html',
 );
 
 // Deprecated
diff --git src/wp-admin/includes/ajax-actions.php src/wp-admin/includes/ajax-actions.php
index 029e20e62b..3342cad375 100644
--- src/wp-admin/includes/ajax-actions.php
+++ src/wp-admin/includes/ajax-actions.php
@@ -297,40 +297,6 @@ function wp_ajax_autocomplete_user() {
 }
 
 /**
- * Handles AJAX requests for community events
- *
- * @since 4.8.0
- */
-function wp_ajax_get_community_events() {
-	require_once( ABSPATH . 'wp-admin/includes/class-wp-community-events.php' );
-
-	check_ajax_referer( 'community_events' );
-
-	$search         = isset( $_POST['location'] ) ? wp_unslash( $_POST['location'] ) : '';
-	$timezone       = isset( $_POST['timezone'] ) ? wp_unslash( $_POST['timezone'] ) : '';
-	$user_id        = get_current_user_id();
-	$saved_location = get_user_option( 'community-events-location', $user_id );
-	$events_client  = new WP_Community_Events( $user_id, $saved_location );
-	$events         = $events_client->get_events( $search, $timezone );
-
-	if ( is_wp_error( $events ) ) {
-		wp_send_json_error( array(
-			'error' => $events->get_error_message(),
-		) );
-	} else {
-		if ( isset( $events['location'] ) ) {
-			// Send only the data that the client will use.
-			$events['location'] = $events['location']['description'];
-
-			// Store the location network-wide, so the user doesn't have to set it on each site.
-			update_user_option( $user_id, 'community-events-location', $events['location'], true );
-		}
-
-		wp_send_json_success( $events );
-	}
-}
-
-/**
  * Ajax handler for dashboard widgets.
  *
  * @since 3.4.0
diff --git src/wp-admin/includes/dashboard.php src/wp-admin/includes/dashboard.php
index de0eef3447..53266b07f3 100644
--- src/wp-admin/includes/dashboard.php
+++ src/wp-admin/includes/dashboard.php
@@ -144,7 +144,8 @@ function wp_get_community_events_script_data() {
 	$events_client = new WP_Community_Events( $user_id, $user_location );
 
 	$script_data = array(
-		'nonce' => wp_create_nonce( 'community_events' ),
+		'rest_url' => rest_url( '/' ),
+		'rest_nonce' => wp_create_nonce( 'wp_rest' ),
 		'cache' => $events_client->get_cached_events(),
 
 		'l10n' => array(
@@ -1225,7 +1226,7 @@ function wp_print_community_events_templates() {
 		<?php printf(
 			/* translators: %s is a placeholder for the name of a city. */
 			__( 'Attend an upcoming event near %s.' ),
-			'<strong>{{ data.location }}</strong>'
+			'<strong>{{ data.location.description }}</strong>'
 		); ?>
 	</script>
 
@@ -1247,12 +1248,14 @@ function wp_print_community_events_templates() {
 					</div>
 				</div>
 
-				<div class="event-date-time">
-					<span class="event-date">{{ event.formatted_date }}</span>
-					<# if ( 'meetup' === event.type ) { #>
-						<span class="event-time">{{ event.formatted_time }}</span>
-					<# } #>
-				</div>
+				<# if ( event.date && event.date.formatted ) { #>
+					<div class="event-date-time">
+						<span class="event-date">{{ event.date.formatted.date }}</span>
+						<# if ( 'meetup' === event.type ) { #>
+							<span class="event-time">{{ event.date.formatted.time }}</span>
+						<# } #>
+					</div>
+				<# } #>
 			</li>
 		<# } ) #>
 	</script>
@@ -1262,7 +1265,7 @@ function wp_print_community_events_templates() {
 			<?php printf(
 				/* translators: 1: the city the user searched for, 2: meetup organization documentation URL */
 				__( 'There aren&#8217;t any events scheduled near %1$s at the moment. Would you like to <a href="%2$s">organize one</a>?' ),
-				'{{data.location}}',
+				'{{data.location.description}}',
 				__( 'https://make.wordpress.org/community/handbook/meetup-organizer/welcome/' )
 			); ?>
 		</li>
diff --git src/wp-admin/js/dashboard.js src/wp-admin/js/dashboard.js
index 6a9b5033d4..d449cdceca 100644
--- src/wp-admin/js/dashboard.js
+++ src/wp-admin/js/dashboard.js
@@ -191,7 +191,7 @@ jQuery(document).ready( function($) {
 
 jQuery( function( $ ) {
 	'use strict';
-	
+
 	var communityEventsData = window.communityEventsData || {};
 
 	var app = window.wp.communityEvents = {
@@ -291,42 +291,52 @@ jQuery( function( $ ) {
 			    $spinner = $( '.community-events-form' ).children( '.spinner' );
 
 			requestParams          = requestParams || {};
-			requestParams._wpnonce = communityEventsData.nonce;
 			requestParams.timezone = window.Intl ? window.Intl.DateTimeFormat().resolvedOptions().timeZone : '';
+			requestParams._embed   = 1;
 
 			initiatedBy = requestParams.location ? 'user' : 'app';
 
 			$spinner.addClass( 'is-active' );
 
-			wp.ajax.post( 'get-community-events', requestParams )
-				.always( function() {
-					$spinner.removeClass( 'is-active' );
-				})
-
-				.done( function( response ) {
-					if ( 'no_location_available' === response.error ) {
-						if ( requestParams.location ) {
-							response.unknownCity = requestParams.location;
-						} else {
-							/*
-							 * No location was passed, which means that this was an automatic query
-							 * based on IP, locale, and timezone. Since the user didn't initiate it,
-							 * it should fail silently. Otherwise, the error could confuse and/or
-							 * annoy them.
-							 */
-
-							delete response.error;
-						}
+			$.ajax( communityEventsData.rest_url + 'wp/dashboard/v1/community-events/location/me', {
+				method: 'GET',
+				data: requestParams,
+				dataType: 'json',
+				headers: {
+					'X-WP-Nonce': communityEventsData.rest_nonce
+				},
+				success: function( response ) {
+					var events   = response._embedded && response._embedded.events ? response._embedded.events[0] : [];
+					var location = response;
+
+					delete location._embedded;
+					delete location._links;
+
+					app.renderEventsTemplate({
+						location: location,
+						events: events
+					}, initiatedBy );
+				},
+				error: function( xhr ) {
+					if ( xhr.responseJSON && 'rest_cannot_retrieve_user_location' === xhr.responseJSON.code && requestParams.location ) {
+						app.renderEventsTemplate({
+							unknownCity: requestParams.location,
+							location: false,
+							events: []
+						}, initiatedBy );
+
+						return;
 					}
-					app.renderEventsTemplate( response, initiatedBy );
-				})
 
-				.fail( function() {
 					app.renderEventsTemplate( {
 						'location' : false,
 						'error'    : true
 					}, initiatedBy );
-				});
+				},
+				complete: function() {
+					$spinner.removeClass( 'is-active' );
+				}
+			});
 		},
 
 		/**
diff --git src/wp-includes/rest-api.php src/wp-includes/rest-api.php
index ec7c50d27b..891be7ceb6 100644
--- src/wp-includes/rest-api.php
+++ src/wp-includes/rest-api.php
@@ -237,6 +237,14 @@ function create_initial_rest_routes() {
 	// Settings.
 	$controller = new WP_REST_Settings_Controller;
 	$controller->register_routes();
+
+	// Community events.
+	$controller = new WP_REST_Community_Events_Events_Controller;
+	$controller->register_routes();
+
+	// Community events location.
+	$controller = new WP_REST_Community_Events_Location_Controller;
+	$controller->register_routes();
 }
 
 /**
diff --git src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-events-controller.php src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-events-controller.php
new file mode 100644
index 0000000000..570abd2adc
--- /dev/null
+++ src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-events-controller.php
@@ -0,0 +1,281 @@
+<?php
+/**
+ * REST API: WP_REST_Community_Events_Events_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.8.0
+ */
+
+/**
+ * Core class to access community events via the REST API.
+ *
+ * @since 4.8.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Community_Events_Events_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/dashboard/v1';
+		$this->rest_base = 'community-events/events';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/me', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_current_items' ),
+				'permission_callback' => array( $this, 'get_current_items_permissions_check' ),
+				'args'                => $this->get_collection_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks whether a given request has permission to read community events.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|true True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_current_items_permissions_check( $request ) {
+		if ( ! is_user_logged_in() ) {
+			return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves community events.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_current_items( $request ) {
+		require_once( ABSPATH . 'wp-admin/includes/class-wp-community-events.php' );
+
+		$user_id = get_current_user_id();
+
+		$location = $request->get_param( 'location' );
+		$timezone = $request->get_param( 'timezone' );
+
+		$saved_location = get_user_option( 'community-events-location', $user_id );
+		$events_client  = new WP_Community_Events( $user_id, $saved_location );
+		$events         = $events_client->get_events( $location, $timezone );
+
+		$data = array();
+
+		// Store the location network-wide, so the user doesn't have to set it on each site.
+		if ( ! is_wp_error( $events ) ) {
+			if ( isset( $events['location'] ) ) {
+				update_user_option( $user_id, 'community-events-location', $events['location'], true );
+			}
+
+			if ( isset( $events['events'] ) ) {
+				foreach ( $events['events'] as $event ) {
+					$data[] = $this->prepare_item_for_response( $event, $request );
+				}
+			}
+		}
+
+		return rest_ensure_response( $data );
+	}
+
+	/**
+	 * Prepares a single event output for response.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param array           $event   Event data array from the API.
+	 * @param WP_REST_Request $request Request object.
+	 * @return array Item prepared for response.
+	 */
+	public function prepare_item_for_response( $event, $request ) {
+		$data = array();
+
+		$keys_to_copy = array( 'type', 'title', 'url', 'meetup', 'meetup_url' );
+		foreach ( $keys_to_copy as $key ) {
+			if ( isset( $event[ $key ] ) ) {
+				$data[ $key ] = $event[ $key ];
+			} else {
+				$data[ $key ] = null;
+			}
+		}
+
+		$data['date'] = array(
+			'raw'       => isset( $event['date'] ) ? $event['date'] : null,
+			'formatted' => array(
+				'date' => isset( $event['formatted_date'] ) ? $event['formatted_date'] : null,
+				'time' => isset( $event['formatted_time'] ) ? $event['formatted_time'] : null,
+			),
+		);
+
+		$data['location'] = isset( $event['location'] ) ? $event['location'] : null;
+
+		return $data;
+	}
+
+	/**
+	 * Retrieves a community event's schema, conforming to JSON Schema.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		return array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'community_event',
+			'type'                 => 'object',
+			'properties'           => array(
+				'type'       => array(
+					'description' => __( 'Type for the event.' ),
+					'type'        => 'string',
+					'enum'        => array( 'meetup', 'wordcamp' ),
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'title'      => array(
+					'description' => __( 'Title for the event.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'url'        => array(
+					'description' => __( 'Website URL for the event.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'meetup'     => array(
+					'description' => __( 'Name of the meetup, if the event is a meetup.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'meetup_url' => array(
+					'description' => __( 'URL for the meetup on meetup.com, if the event is a meetup.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'date'       => array(
+					'description' => __( 'Date and time information for the event.' ),
+					'type'        => 'object',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+					'properties'  => array(
+						'raw'       => array(
+							'description' => __( 'Unformatted date and time string.' ),
+							'type'        => 'string',
+							'format'      => 'date-time',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+						),
+						'formatted' => array(
+							'description' => __( 'Formatted date and time information for the event.' ),
+							'type'        => 'object',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+							'properties'  => array(
+								'date' => array(
+									'description' => __( 'Formatted event date.' ),
+									'type'        => 'string',
+									'context'     => array( 'view', 'edit', 'embed' ),
+									'readonly'    => true,
+								),
+								'time' => array(
+									'description' => __( 'Formatted event time.' ),
+									'type'        => 'string',
+									'context'     => array( 'view', 'edit', 'embed' ),
+									'readonly'    => true,
+								),
+							),
+						),
+					),
+				),
+				'location'   => array(
+					'description' => __( 'Location information for the event.' ),
+					'type'        => 'object',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+					'properties'  => array(
+						'location'  => array(
+							'description' => __( 'Location name for the event.' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+						),
+						'country'   => array(
+							'description' => __( 'Two-letter country code for the event.' ),
+							'type'        => 'string',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+						),
+						'latitude'  => array(
+							'description' => __( 'Latitude for the event.' ),
+							'type'        => 'number',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+						),
+						'longitude' => array(
+							'description' => __( 'Longitude for the event.' ),
+							'type'        => 'number',
+							'context'     => array( 'view', 'edit', 'embed' ),
+							'readonly'    => true,
+						),
+					),
+				),
+			),
+		);
+	}
+
+	/**
+	 * Retrieves the query params for collections.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @return array Collection parameters.
+	 */
+	public function get_collection_params() {
+		return array(
+			'context'  => $this->get_context_param( array( 'default' => 'view' ) ),
+			'location' => array(
+				'description' => __( 'Optional city name to help determine the location for the events.' ),
+				'type'        => 'string',
+				'default'     => '',
+			),
+			'timezone' => array(
+				'description' => __( 'Optional timezone to help determine the location for the events.' ),
+				'type'        => 'string',
+				'default'     => '',
+			),
+		);
+	}
+}
diff --git src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-location-controller.php src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-location-controller.php
new file mode 100644
index 0000000000..9e0550ce69
--- /dev/null
+++ src/wp-includes/rest-api/endpoints/dashboard/class-wp-rest-community-events-location-controller.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * REST API: WP_REST_Community_Events_Location_Controller class
+ *
+ * @package WordPress
+ * @subpackage REST_API
+ * @since 4.8.0
+ */
+
+/**
+ * Core class to access community events user locations via the REST API.
+ *
+ * @since 4.8.0
+ *
+ * @see WP_REST_Controller
+ */
+class WP_REST_Community_Events_Location_Controller extends WP_REST_Controller {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 */
+	public function __construct() {
+		$this->namespace = 'wp/dashboard/v1';
+		$this->rest_base = 'community-events/location';
+	}
+
+	/**
+	 * Registers the routes for the objects of the controller.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @see register_rest_route()
+	 */
+	public function register_routes() {
+
+		register_rest_route( $this->namespace, '/' . $this->rest_base . '/me', array(
+			array(
+				'methods'             => WP_REST_Server::READABLE,
+				'callback'            => array( $this, 'get_current_item' ),
+				'permission_callback' => array( $this, 'get_current_item_permissions_check' ),
+				'args'                => $this->get_item_params(),
+			),
+			'schema' => array( $this, 'get_public_item_schema' ),
+		) );
+	}
+
+	/**
+	 * Checks whether a given request has permission to read the current user's community events location.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|true True if the request has read access, WP_Error object otherwise.
+	 */
+	public function get_current_item_permissions_check( $request ) {
+		if ( ! is_user_logged_in() ) {
+			return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) );
+		}
+
+		return true;
+	}
+
+	/**
+	 * Retrieves the community events location for the current user.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param WP_REST_Request $request Full details about the request.
+	 * @return WP_Error|WP_REST_Response Response object on success, or WP_Error object on failure.
+	 */
+	public function get_current_item( $request ) {
+		require_once( ABSPATH . 'wp-admin/includes/class-wp-community-events.php' );
+
+		$user_id = get_current_user_id();
+
+		$location = $request->get_param( 'location' );
+		$timezone = $request->get_param( 'timezone' );
+
+		$saved_location = get_user_option( 'community-events-location', $user_id );
+		$events_client  = new WP_Community_Events( $user_id, $saved_location );
+		$events         = $events_client->get_events( $location, $timezone );
+
+		// Store the location network-wide, so the user doesn't have to set it on each site.
+		if ( ! is_wp_error( $events ) ) {
+			if ( isset( $events['error'] ) && 'no_location_available' === $events['error'] ) {
+				return new WP_Error( 'rest_cannot_retrieve_user_location', __( 'The user location could not be retrieved.' ) );
+			}
+
+			if ( isset( $events['location'] ) ) {
+				update_user_option( $user_id, 'community-events-location', $events['location'], true );
+
+				$data = $this->prepare_item_for_response( $events['location'], $request );
+
+				return rest_ensure_response( $data );
+			}
+		}
+
+		return $events;
+	}
+
+	/**
+	 * Prepares a single location output for response.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @param array           $location Location data array from the API.
+	 * @param WP_REST_Request $request  Request object.
+	 * @return WP_REST_Response Response object.
+	 */
+	public function prepare_item_for_response( $location, $request ) {
+		$data = array(
+			'description' => isset( $location['description'] ) ? $location['description']       : null,
+			'country'     => isset( $location['country'] )     ? $location['country']           : null,
+			'latitude'    => isset( $location['latitude'] )    ? (float) $location['latitude']  : null,
+			'longitude'   => isset( $location['longitude'] )   ? (float) $location['longitude'] : null,
+		);
+
+		$response = rest_ensure_response( $data );
+
+		$url = rest_url( 'wp/dashboard/v1/community-events/events/me' );
+
+		$url_args = array();
+
+		if ( ! empty( $request['location'] ) ) {
+			$url_args['location'] = $request['location'];
+		}
+		if ( ! empty( $request['timezone'] ) ) {
+			$url_args['timezone'] = $request['timezone'];
+		}
+
+		if ( ! empty( $url_args ) ) {
+			$url = add_query_arg( $url_args, $url );
+		}
+
+		$response->add_links( array(
+			'events' => array(
+				'href'       => $url,
+				'embeddable' => true,
+			),
+		) );
+
+		return $response;
+	}
+
+	/**
+	 * Retrieves a community events location schema, conforming to JSON Schema.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @return array Item schema data.
+	 */
+	public function get_item_schema() {
+		return array(
+			'$schema'              => 'http://json-schema.org/schema#',
+			'title'                => 'community_events_location',
+			'type'                 => 'object',
+			'properties'           => array(
+				'description' => array(
+					'description' => __( 'Location description.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'country'     => array(
+					'description' => __( 'Two-letter country code.' ),
+					'type'        => 'string',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'latitude'    => array(
+					'description' => __( 'Latitude.' ),
+					'type'        => 'number',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+				'longitude'   => array(
+					'description' => __( 'Longitude.' ),
+					'type'        => 'number',
+					'context'     => array( 'view', 'edit', 'embed' ),
+					'readonly'    => true,
+				),
+			),
+		);
+	}
+
+	/**
+	 * Retrieves the params for a single item.
+	 *
+	 * @since 4.8.0
+	 * @access public
+	 *
+	 * @return array Item parameters.
+	 */
+	public function get_item_params() {
+		return array(
+			'context'  => $this->get_context_param( array( 'default' => 'view' ) ),
+			'location' => array(
+				'description' => __( 'Optional city name to help determine the location.' ),
+				'type'        => 'string',
+				'default'     => '',
+			),
+			'timezone' => array(
+				'description' => __( 'Optional timezone to help determine the location.' ),
+				'type'        => 'string',
+				'default'     => '',
+			),
+		);
+	}
+}
diff --git src/wp-settings.php src/wp-settings.php
index d1505c502d..060ab4c782 100644
--- src/wp-settings.php
+++ src/wp-settings.php
@@ -234,6 +234,8 @@ require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-terms-controller.p
 require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-users-controller.php' );
 require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-comments-controller.php' );
 require( ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-settings-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/dashboard/class-wp-rest-community-events-events-controller.php' );
+require( ABSPATH . WPINC . '/rest-api/endpoints/dashboard/class-wp-rest-community-events-location-controller.php' );
 require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-meta-fields.php' );
 require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-comment-meta-fields.php' );
 require( ABSPATH . WPINC . '/rest-api/fields/class-wp-rest-post-meta-fields.php' );
