Get user calendar using OutlookClient

1.6k Views Asked by At

I'm using Outlook-SDK-Android (https://github.com/OfficeDev/Outlook-SDK-Android) to talk with Outlook Calendar REST API (https://msdn.microsoft.com/en-us/office/office365/api/calendar-rest-operations).

So far I've been able to get the events on my own calendar using:

            import com.microsoft.services.outlook.fetchers.OutlookClient;

            OutlookClient mClient;
            ...
            mClient = new OutlookClient(outlookBaseUrl, mResolver);
            ...
            mClient.getMe()                
                    .getCalendarView()
                    .addParameter("startDateTime", startDate)
                    .addParameter("endDateTime", endDate)
                    .read()

This corresponds to "https://outlook.office.com/api/v2.0/me/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}"

  • In order to use it for other users calendars on which I have read permission how do I achieve the same in the following format specified in the Outlook documentation?

"https://outlook.office.com/api/v2.0/USERS/[email protected]/calendars/Calendar/EVENTS?startDateTime={start_datetime}&endDateTime={end_datetime}"

(or also "..v2.0/USERS/[email protected]/CALENDARVIEW)

  • How do I add the query parameter "$select" to the latter, using OutlookClient? (eg. $select=Subject,Organizer,Start,End)
2

There are 2 best solutions below

8
On BEST ANSWER

There is a select method:

public OrcCollectionFetcher<TEntity, TFetcher, TOperations> select(String select)

in OrcCollectionFetcher class, so you can call it like this:

mClient.getMe()                
                    .getCalendarView()
                    .addParameter("startDateTime", startDate)
                    .addParameter("endDateTime", endDate)
                    .select("Subject")
                    .read()

To get events from resource try this:

            final List<Event> events = outlookClient
                .getUsers()
                .getById("[email protected]")
                .getCalendarView()
                .addParameter("startDateTime", startDate)
                .addParameter("endDateTime", endDate)
                .read()
0
On
        mClient.getMe()                
                .getCalendarView()
                .addParameter("startDateTime", startDate)
                .addParameter("endDateTime", endDate)
                .select("Subject,Start,End").
                .read()

See https://msdn.microsoft.com/office/office365/api/complex-types-for-mail-contacts-calendar#UseODataqueryparametersSelectspecificpropertiestobereturned