9.4.2.3.2. Events

eXo Platform provides APIs to create, update, delete and get information of an event. An event is represented as a JSON object as follows:

{
	//Where the event is organized
	"location": "",
	//Priority of the event
	"priority": "",
	//Detailed description of the event
	"description": "",
	//Title of the event
	"subject": "",
	//Which calendar the event belongs to
	"calendar": "",
	//Status of the event, for example "busy"
	"availability": "",
	//All attachments of the event
	"attachments": [ ],
	//Recurrence id of the event
	"recurrenceId": "",
	//Id of the category which the event belongs to
	"categoryId": "",
	//Repetition information of the event
	"repeat": {},
	//Settings for reminding the event
	"reminder": [],
	//Privacy of the event
	"privacy": "",
	//Starting time of the event
	"from": "",
	//Link to the category the event belongs to
	"categories": [],
	//Ending time of the event
	"to": "",
	//Original event if any
	"originalEvent": "",
	//All participants of the event
	"participants": [],
	//Id of the event
	id": "",
	//Link to the event
	"href": ""
	}

Getting information of an event

To retrieve information of an event, you need to send an Ajax GET request to /rest/private/v1/calendar/events/ by the following script:

function getEventById(){
					$.ajax({
						 type: "GET",
						 url: "/rest/private/v1/calendar/events/"+event_id,
						 success: function (data, status, jqXHR) {
							//process the returned data here
						 },
						 error: function (jqXHR, status) {
							 alert("Cannot retrieve data!");
						 }
					});
				}

In which, event_id is Id of the event that you want to retrieve information. This request returns the information under a JSON object as indicated above.

Creating a new event

Declare a simple event object such as:

var new_event={
	"description": "Welcoming new comers in February",
	"subject": "Welcome event",
	"categoryId": "defaultEventCategoryIdMeeting",
	"privacy": "private",
	"from": "2015-07-30T04:30:00.000Z",
	"to": "2015-07-30T05:30:00.000Z"
	}

Use an Ajax POST request to send this object to /rest/private/v1/calendar/calendars/{calendarId}/events as the following script:

function createNewEvent(){
					$.ajax({
						url: "/rest/private/v1/calendar/calendars/"+current_user+"-defaultCalendarId"+"/events",
						contentType: "application/json",
						data: JSON.stringify(new_event),
						method: "POST"
						}).done(function (data, status, xhr) {
						   //process the returned data here
						}).fail(function (jqxhr, textStatus, error) {
							alert("failed");
					});
				}

In which, the new event will be added to the default calendar of the current logged-in user.

Updating an event

To update an event, you need to use this PUT request:

function updateEvent(){
					$.ajax({
						url: "/rest/private/v1/calendar/events/"+event_id,
						contentType: "application/json",
						data: JSON.stringify(new_content),
						method: "PUT"
						}).done(function (data, status, xhr) {
						   //process the returned data here
						}).fail(function (jqxhr, textStatus, error) {
							alert("failed");
					});
				}

In which, event_id is Id of the event that you want to update, and new_content is a JSON object containing new content of the event, for example:

var new_content={
					"description": "Welcoming new comers in March",
					"subject": "Monthly welcome event",
					"categoryId": "defaultEventCategoryIdMeeting",
					"privacy": "public",
					"from": "2015-07-30T04:30:00.000Z",
					"to": "2015-07-30T05:30:00.000Z"
				}

Deleting an event

To delete an event, use the following DELETE request:

function deleteEvent(){
					$.ajax({
						url: "/rest/private/v1/calendar/events/"+event_id,
						method: "DELETE"
						}).done(function (data, status, xhr) {
						   //process the returned data here
						}).fail(function (jqxhr, textStatus, error) {
							alert("fail");
					});
				}

In which, event_id is Id of the event that you want to delete.

Copyright ©. All rights reserved. eXo Platform SAS
blog comments powered byDisqus