Sample code for 30+ languages & platforms
Ruby

Outlook Calendar List Calendars

See more Outlook Calendar Examples

Get all the user's calendars.

Chilkat Ruby Downloads

Ruby
require 'chilkat'

success = false

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = Chilkat::CkHttp.new()

# Use your previously obtained access token here: Get Outlook Calendar OAuth2 Access Token (Azure AD v2.0 Endpoint).

jsonToken = Chilkat::CkJsonObject.new()
success = jsonToken.LoadFile("qa_data/tokens/outlookCalendar.json")
if (success == false)
    print jsonToken.lastErrorText() + "\n";
    exit
end

http.put_AuthToken(jsonToken.stringOf("access_token"))

resp = Chilkat::CkHttpResponse.new()
success = http.HttpNoBody("GET","https://graph.microsoft.com/v1.0/me/calendars",resp)
if (success == false)
    print http.lastErrorText() + "\n";
    exit
end

print "Response status code = " + resp.get_StatusCode().to_s() + "\n";

# The HTTP request succeeded if the response status code = 200.
if (resp.get_StatusCode() != 200)
    print resp.bodyStr() + "\n";
    print "Failed" + "\n";
    exit
end

json = Chilkat::CkJsonObject.new()
json.Load(resp.bodyStr())
json.put_EmitCompact(false)
print json.emit() + "\n";

# Here is a sample response:

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

# {
#     "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars",
#     "value": [
#         {
#             "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/calendars('AAMkAGI2TGuLAAA=')",
#             "id": "AAMkAGI2TGuLAAA=",
#             "name": "Calendar",
#             "color": "auto",
#             "changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
#             "canShare":true,
#             "canViewPrivateItems":true,
#             "hexColor": "",
#             "canEdit":true,
#             "allowedOnlineMeetingProviders": [
#                 "teamsForBusiness"
#             ],
#             "defaultOnlineMeetingProvider": "teamsForBusiness",
#             "isTallyingResponses": true,
#             "isRemovable": false,
#             "owner":{
#                 "name":"Samantha Booth",
#                 "address":"samanthab@adatum.onmicrosoft.com"
#             }
#         }
#     ]
# }

odata_context = json.stringOf("\"@odata.context\"")
i = 0
count_i = json.SizeOfArray("value")
while i < count_i
    json.put_I(i)
    id = json.stringOf("value[i].id")
    name = json.stringOf("value[i].name")
    color = json.stringOf("value[i].color")
    hexColor = json.stringOf("value[i].hexColor")
    isDefaultCalendar = json.BoolOf("value[i].isDefaultCalendar")
    changeKey = json.stringOf("value[i].changeKey")
    canShare = json.BoolOf("value[i].canShare")
    canViewPrivateItems = json.BoolOf("value[i].canViewPrivateItems")
    canEdit = json.BoolOf("value[i].canEdit")
    defaultOnlineMeetingProvider = json.stringOf("value[i].defaultOnlineMeetingProvider")
    isTallyingResponses = json.BoolOf("value[i].isTallyingResponses")
    isRemovable = json.BoolOf("value[i].isRemovable")
    ownerName = json.stringOf("value[i].owner.name")
    ownerAddress = json.stringOf("value[i].owner.address")
    j = 0
    count_j = json.SizeOfArray("value[i].allowedOnlineMeetingProviders")
    while j < count_j
        json.put_J(j)
        strVal = json.stringOf("value[i].allowedOnlineMeetingProviders[j]")
        j = j + 1
    end
    i = i + 1
end