Sample code for 30+ languages & platforms
Java

MS Graph Calendar List Events

See more Microsoft Calendar Examples

Retrieve a list of events in a calendar. The list contains single instance meetings and series masters.

For more details, see https://docs.microsoft.com/en-us/graph/api/calendar-list-events?view=graph-rest-1.0

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.JsonObject;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Http http = new Http();

        // Use your previously obtained access token as shown here:
        //    Get Microsoft Graph OAuth2 Access Token with Calendars.ReadWrite scope.

        JsonObject jsonToken = new JsonObject();
        String strResponse;
        try {
            jsonToken.loadFile("qa_data/tokens/msGraphCalendar.json");

            http.setAuthToken(jsonToken.stringOf("access_token"));

            // Specify the calendar id
            http.setUrlVar("id", "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEGAAAA5_vF7TKKdE6bGCRqXyl2PQAClEpRTgAAAA==");
            // Send a GET request to https://graph.microsoft.com/v1.0/me/calendars/{$id}/events
            strResponse = http.quickGetStr("https://graph.microsoft.com/v1.0/me/calendars/{$id}/events");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        JsonObject json = new JsonObject();
        json.load(strResponse);
        json.setEmitCompact(false);

        if (http.getLastStatus() != 200) {
            System.out.println(json.emit());
            System.out.println("Failed, response status code = " + http.getLastStatus());
            return;
        }

        System.out.println(json.emit());

        // Sample output:
        // (See parsing code below..)

        // {
        //   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin%40chilkat.io')/calendars('AQMkADAwATM0MDAAMS1i ... AClEpRTgAAAA%3D%3D')/events",
        //   "value": [
        //     {
        //       "@odata.etag": "W/\"5+vF7TKKdE6bGCRqXyl2PQAClIgmmw==\"",
        //       "id": "AQMkADAwATM0MDAAM ... AApRZ7JkAAAA=",
        //       "createdDateTime": "2019-04-26T14:31:39.8791929Z",
        //       "lastModifiedDateTime": "2019-04-26T14:31:41.2753537Z",
        //       "changeKey": "5+vF7TKKdE6bGCRqXyl2PQAClIgmmw==",
        //       "categories": [
        //       ],
        //       "originalStartTimeZone": "Pacific Standard Time",
        //       "originalEndTimeZone": "Pacific Standard Time",
        //       "iCalUId": "040000008200E ... A230FEBFE5F7486A",
        //       "reminderMinutesBeforeStart": 15,
        //       "isReminderOn": true,
        //       "hasAttachments": false,
        //       "subject": "Let's go for lunch",
        //       "bodyPreview": "Does mid month work for you?",
        //       "importance": "normal",
        //       "sensitivity": "normal",
        //       "isAllDay": false,
        //       "isCancelled": false,
        //       "isOrganizer": true,
        //       "responseRequested": true,
        //       "seriesMasterId": null,
        //       "showAs": "busy",
        //       "type": "singleInstance",
        //       "webLink": "https://outlook.live.com/owa/?itemid=AQMkADAwATM0MDAAMS1iNTcwLWI2NT ... gkal8pdj0AApRZ7JkAAAA%3D&exvsurl=1&path=/calendar/item",
        //       "onlineMeetingUrl": null,
        //       "recurrence": null,
        //       "responseStatus": {
        //         "response": "organizer",
        //         "time": "0001-01-01T00:00:00Z"
        //       },
        //       "body": {
        //         "contentType": "html",
        //         "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nDoes mid month work for you?\r\n</body>\r\n</html>\r\n"
        //       },
        //       "start": {
        //         "dateTime": "2019-11-15T20:00:00.0000000",
        //         "timeZone": "UTC"
        //       },
        //       "end": {
        //         "dateTime": "2019-11-15T22:00:00.0000000",
        //         "timeZone": "UTC"
        //       },
        //       "location": {
        //         "displayName": "Harry's Bar",
        //         "locationType": "default",
        //         "uniqueId": "Harry's Bar",
        //         "uniqueIdType": "private"
        //       },
        //       "locations": [
        //         {
        //           "displayName": "Harry's Bar",
        //           "locationType": "default",
        //           "uniqueId": "Harry's Bar",
        //           "uniqueIdType": "private"
        //         }
        //       ],
        //       "attendees": [
        //         {
        //           "type": "required",
        //           "status": {
        //             "response": "none",
        //             "time": "0001-01-01T00:00:00Z"
        //           },
        //           "emailAddress": {
        //             "name": "Adele Vance",
        //             "address": "adelev@contoso.onmicrosoft.com"
        //           }
        //         }
        //       ],
        //       "organizer": {
        //         "emailAddress": {
        //           "name": "Matt",
        //           "address": "outlook_3A33FCEB9B74CC15@outlook.com"
        //         }
        //       }
        //     }
        //   ]
        // }

        // Use this online tool to generate parsing code from sample JSON:
        // Generate Parsing Code from JSON

        String odataEtag = "";
        String id = "";
        String createdDateTime = "";
        String lastModifiedDateTime = "";
        String changeKey = "";
        String originalStartTimeZone = "";
        String originalEndTimeZone = "";
        String iCalUId = "";
        int reminderMinutesBeforeStart = 0;
        boolean isReminderOn = false;
        boolean hasAttachments = false;
        String subject = "";
        String bodyPreview = "";
        String importance = "";
        String sensitivity = "";
        boolean isAllDay = false;
        boolean isCancelled = false;
        boolean isOrganizer = false;
        boolean responseRequested = false;
        String seriesMasterId = "";
        String showAs = "";
        String v_type = "";
        String webLink = "";
        String onlineMeetingUrl = "";
        String recurrence = "";
        String responseStatusResponse = "";
        String responseStatusTime = "";
        String bodyContentType = "";
        String bodyContent = "";
        String startDateTime = "";
        String startTimeZone = "";
        String endDateTime = "";
        String endTimeZone = "";
        String locationDisplayName = "";
        String locationLocationType = "";
        String locationUniqueId = "";
        String locationUniqueIdType = "";
        String organizerEmailAddressName = "";
        String organizerEmailAddressAddress = "";
        int j = 0;
        int count_j = 0;
        String displayName = "";
        String locationType = "";
        String uniqueId = "";
        String uniqueIdType = "";
        String statusResponse = "";
        String statusTime = "";
        String emailAddressName = "";
        String emailAddressAddress = "";

        String odataContext = json.stringOf("\"@odata.context\"");
        int i = 0;
        int count_i = json.sizeOfArray("value");
        while (i < count_i) {
            json.setI(i);
            odataEtag = json.stringOf("value[i].\"@odata.etag\"");
            id = json.stringOf("value[i].id");
            createdDateTime = json.stringOf("value[i].createdDateTime");
            lastModifiedDateTime = json.stringOf("value[i].lastModifiedDateTime");
            changeKey = json.stringOf("value[i].changeKey");
            originalStartTimeZone = json.stringOf("value[i].originalStartTimeZone");
            originalEndTimeZone = json.stringOf("value[i].originalEndTimeZone");
            iCalUId = json.stringOf("value[i].iCalUId");
            reminderMinutesBeforeStart = json.intOf("value[i].reminderMinutesBeforeStart");
            isReminderOn = json.boolOf("value[i].isReminderOn");
            hasAttachments = json.boolOf("value[i].hasAttachments");
            subject = json.stringOf("value[i].subject");
            bodyPreview = json.stringOf("value[i].bodyPreview");
            importance = json.stringOf("value[i].importance");
            sensitivity = json.stringOf("value[i].sensitivity");
            isAllDay = json.boolOf("value[i].isAllDay");
            isCancelled = json.boolOf("value[i].isCancelled");
            isOrganizer = json.boolOf("value[i].isOrganizer");
            responseRequested = json.boolOf("value[i].responseRequested");
            seriesMasterId = json.stringOf("value[i].seriesMasterId");
            showAs = json.stringOf("value[i].showAs");
            v_type = json.stringOf("value[i].type");
            webLink = json.stringOf("value[i].webLink");
            onlineMeetingUrl = json.stringOf("value[i].onlineMeetingUrl");
            recurrence = json.stringOf("value[i].recurrence");
            responseStatusResponse = json.stringOf("value[i].responseStatus.response");
            responseStatusTime = json.stringOf("value[i].responseStatus.time");
            bodyContentType = json.stringOf("value[i].body.contentType");
            bodyContent = json.stringOf("value[i].body.content");
            startDateTime = json.stringOf("value[i].start.dateTime");
            startTimeZone = json.stringOf("value[i].start.timeZone");
            endDateTime = json.stringOf("value[i].end.dateTime");
            endTimeZone = json.stringOf("value[i].end.timeZone");
            locationDisplayName = json.stringOf("value[i].location.displayName");
            locationLocationType = json.stringOf("value[i].location.locationType");
            locationUniqueId = json.stringOf("value[i].location.uniqueId");
            locationUniqueIdType = json.stringOf("value[i].location.uniqueIdType");
            organizerEmailAddressName = json.stringOf("value[i].organizer.emailAddress.name");
            organizerEmailAddressAddress = json.stringOf("value[i].organizer.emailAddress.address");
            j = 0;
            count_j = json.sizeOfArray("value[i].categories");
            while (j < count_j) {
                json.setJ(j);
                // ...
                j = j + 1;
            }

            j = 0;
            count_j = json.sizeOfArray("value[i].locations");
            while (j < count_j) {
                json.setJ(j);
                displayName = json.stringOf("value[i].locations[j].displayName");
                locationType = json.stringOf("value[i].locations[j].locationType");
                uniqueId = json.stringOf("value[i].locations[j].uniqueId");
                uniqueIdType = json.stringOf("value[i].locations[j].uniqueIdType");
                j = j + 1;
            }

            j = 0;
            count_j = json.sizeOfArray("value[i].attendees");
            while (j < count_j) {
                json.setJ(j);
                v_type = json.stringOf("value[i].attendees[j].type");
                statusResponse = json.stringOf("value[i].attendees[j].status.response");
                statusTime = json.stringOf("value[i].attendees[j].status.time");
                emailAddressName = json.stringOf("value[i].attendees[j].emailAddress.name");
                emailAddressAddress = json.stringOf("value[i].attendees[j].emailAddress.address");
                j = j + 1;
            }

            i = i + 1;
        }

        System.out.println("Success.");
    }
}