Sample code for 30+ languages & platforms
Xbase++ Requires Chilkat v11.0.0+

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

Xbase++
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()