Xbase++ Requires Chilkat v11.0.0+
Xbase++
MS Graph Create Calendar
See more Microsoft Calendar Examples
Creates a new calendar.For more details, see https://docs.microsoft.com/en-us/graph/api/user-post-calendars?view=graph-rest-1.0
Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oJsonToken
LOCAL oJson
LOCAL oResp
LOCAL cOdataContext
LOCAL cId
LOCAL cName
LOCAL cColor
LOCAL cChangeKey
LOCAL cCanShare
LOCAL cCanViewPrivateItems
LOCAL cCanEdit
LOCAL cOwnerName
LOCAL cOwnerAddress
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oHttp := CreateObject("Chilkat.Http")
// Use your previously obtained access token as shown here:
// Get Microsoft Graph OAuth2 Access Token with Calendars.ReadWrite scope.
oJsonToken := CreateObject("Chilkat.JsonObject")
nSuccess := oJsonToken:LoadFile("qa_data/tokens/msGraphCalendar.json")
IF (nSuccess == 0)
? oJsonToken:LastErrorText
oHttp:destroy()
oJsonToken:destroy()
RETURN
ENDIF
oHttp:AuthToken := oJsonToken:StringOf("access_token")
// Create a JSON body for the HTTP POST
// {
// "name": "Work"
// }
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("name", "Work")
// POST the JSON to https://graph.microsoft.com/v1.0/me/calendars
oResp := CreateObject("Chilkat.HttpResponse")
nSuccess := oHttp:HttpJson("POST", "https://graph.microsoft.com/v1.0/me/calendars", oJson, "application/json", oResp)
IF (nSuccess == 0)
? oHttp:LastErrorText
oHttp:destroy()
oJsonToken:destroy()
oJson:destroy()
oResp:destroy()
RETURN
ENDIF
oJson:Load(oResp:BodyStr)
oJson:EmitCompact := 0
IF (oResp:StatusCode != 201)
? oJson:Emit()
? "Failed, response status code = " + Str(oResp:StatusCode)
oHttp:destroy()
oJsonToken:destroy()
oJson:destroy()
oResp:destroy()
RETURN
ENDIF
? oJson:Emit()
// A sample response:
// {
// "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin%40chilkat.io')/calendars/$entity",
// "id": "AQMkAD...TgAAAA==",
// "name": "Work",
// "color": "auto",
// "changeKey": "5+vF7T...HjDcA==",
// "canShare": true,
// "canViewPrivateItems": true,
// "canEdit": true,
// "owner": {
// "name": "...",
// "address": "outlook_3A33...4CC15@outlook.com"
// }
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
cOdataContext := oJson:StringOf('"@odata.context"')
cId := oJson:StringOf("id")
cName := oJson:StringOf("name")
cColor := oJson:StringOf("color")
cChangeKey := oJson:StringOf("changeKey")
cCanShare := oJson:BoolOf("canShare")
cCanViewPrivateItems := oJson:BoolOf("canViewPrivateItems")
cCanEdit := oJson:BoolOf("canEdit")
cOwnerName := oJson:StringOf("owner.name")
cOwnerAddress := oJson:StringOf("owner.address")
? "Success."
oHttp:destroy()
oJsonToken:destroy()
oJson:destroy()
oResp:destroy()