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

MS Graph Calendar Update Event

See more Microsoft Calendar Examples

Update the properties of an event object.

Chilkat Delphi DLL Downloads

Delphi DLL
var
success: Boolean;
http: HCkHttp;
json: HCkJsonObject;
sbRequestBody: HCkStringBuilder;
resp: HCkHttpResponse;
sbResponseBody: HCkStringBuilder;
jResp: HCkJsonObject;
respStatusCode: Integer;
originalStartTimeZone: PWideChar;
originalEndTimeZone: PWideChar;
responseStatusResponse: PWideChar;
responseStatusTime: PWideChar;
recurrence: PWideChar;
iCalUId: PWideChar;
reminderMinutesBeforeStart: Integer;
isOnlineMeeting: Boolean;
onlineMeetingProvider: PWideChar;
isReminderOn: Boolean;
onlineMeetingJoinUrl: PWideChar;
onlineMeetingConferenceId: PWideChar;
onlineMeetingTollNumber: PWideChar;

begin
success := False;

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

http := CkHttp_Create();

//  Implements the following CURL command:

//  curl -X PATCH https://graph.microsoft.com/v1.0/me/events/{id} \
//    -H "Content-type: application/json" \
//    -d '{
//    "originalStartTimeZone": "originalStartTimeZone-value",
//    "originalEndTimeZone": "originalEndTimeZone-value",
//    "responseStatus": {
//      "response": "",
//      "time": "datetime-value"
//    },
//    "recurrence": null,
//    "iCalUId": "iCalUId-value",
//    "reminderMinutesBeforeStart": 99,
//    "isOnlineMeeting": true,
//    "onlineMeetingProvider": "teamsForBusiness",
//    "isReminderOn": true,
//    "categories": ["Red category"]
//  }'

//  Use the following online tool to generate HTTP code from a CURL command
//  Convert a cURL Command to HTTP Source Code

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

//  The following JSON is sent in the request body.

//  {
//    "originalStartTimeZone": "originalStartTimeZone-value",
//    "originalEndTimeZone": "originalEndTimeZone-value",
//    "responseStatus": {
//      "response": "",
//      "time": "datetime-value"
//    },
//    "recurrence": null,
//    "iCalUId": "iCalUId-value",
//    "reminderMinutesBeforeStart": 99,
//    "isOnlineMeeting": true,
//    "onlineMeetingProvider": "teamsForBusiness",
//    "isReminderOn": true,
//    "categories": [
//      "Red category"
//    ]
//  }

json := CkJsonObject_Create();
CkJsonObject_UpdateString(json,'originalStartTimeZone','originalStartTimeZone-value');
CkJsonObject_UpdateString(json,'originalEndTimeZone','originalEndTimeZone-value');
CkJsonObject_UpdateString(json,'responseStatus.response','');
CkJsonObject_UpdateString(json,'responseStatus.time','datetime-value');
CkJsonObject_UpdateNull(json,'recurrence');
CkJsonObject_UpdateString(json,'iCalUId','iCalUId-value');
CkJsonObject_UpdateInt(json,'reminderMinutesBeforeStart',99);
CkJsonObject_UpdateBool(json,'isOnlineMeeting',True);
CkJsonObject_UpdateString(json,'onlineMeetingProvider','teamsForBusiness');
CkJsonObject_UpdateBool(json,'isReminderOn',True);
CkJsonObject_UpdateString(json,'categories[0]','Red category');

CkHttp_SetRequestHeader(http,'Content-type','application/json');

sbRequestBody := CkStringBuilder_Create();
CkJsonObject_EmitSb(json,sbRequestBody);

resp := CkHttpResponse_Create();
success := CkHttp_HttpSb(http,'PATCH','https://graph.microsoft.com/v1.0/me/events/{id}',sbRequestBody,'utf-8','application/json',resp);
if (success = False) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

sbResponseBody := CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp := CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,False);

Memo1.Lines.Add('Response Body:');
Memo1.Lines.Add(CkJsonObject__emit(jResp));

respStatusCode := CkHttpResponse_getStatusCode(resp);
Memo1.Lines.Add('Response Status Code = ' + IntToStr(respStatusCode));
if (respStatusCode >= 400) then
  begin
    Memo1.Lines.Add('Response Header:');
    Memo1.Lines.Add(CkHttpResponse__header(resp));
    Memo1.Lines.Add('Failed.');
    Exit;
  end;

//  Sample JSON response:
//  (Sample code for parsing the JSON response is shown below)

//  {
//    "originalStartTimeZone": "originalStartTimeZone-value",
//    "originalEndTimeZone": "originalEndTimeZone-value",
//    "responseStatus": {
//      "response": "",
//      "time": "datetime-value"
//    },
//    "recurrence": null,
//    "iCalUId": "iCalUId-value",
//    "reminderMinutesBeforeStart": 99,
//    "isOnlineMeeting": true,
//    "onlineMeetingProvider": "teamsForBusiness",
//    "isReminderOn": true,
//    "onlineMeeting": {
//      "joinUrl": "https://teams.microsoft.com/l/meetup-join/19%3ameeting_NzIyNzhlMGEtM2YyZC00ZmY0LTlhNzUtZmZjNWFmZGNlNzE2%40thread.v2/0?context=%7b%22Tid%22%3a%2272f988bf-86f1-41af-91ab-2d7cd011db47%22%2c%22Oid%22%3a%22bc55b173-cff6-457d-b7a1-64bda7d7581a%22%7d",
//      "conferenceId": "177513992",
//      "tollNumber": "+91 22 6241 6885"
//    }
//  }

//  Sample code for parsing the JSON response...
//  Use the following online tool to generate parsing code from sample JSON:
//  Generate Parsing Code from JSON

originalStartTimeZone := CkJsonObject__stringOf(jResp,'originalStartTimeZone');
originalEndTimeZone := CkJsonObject__stringOf(jResp,'originalEndTimeZone');
responseStatusResponse := CkJsonObject__stringOf(jResp,'responseStatus.response');
responseStatusTime := CkJsonObject__stringOf(jResp,'responseStatus.time');
recurrence := CkJsonObject__stringOf(jResp,'recurrence');
iCalUId := CkJsonObject__stringOf(jResp,'iCalUId');
reminderMinutesBeforeStart := CkJsonObject_IntOf(jResp,'reminderMinutesBeforeStart');
isOnlineMeeting := CkJsonObject_BoolOf(jResp,'isOnlineMeeting');
onlineMeetingProvider := CkJsonObject__stringOf(jResp,'onlineMeetingProvider');
isReminderOn := CkJsonObject_BoolOf(jResp,'isReminderOn');
onlineMeetingJoinUrl := CkJsonObject__stringOf(jResp,'onlineMeeting.joinUrl');
onlineMeetingConferenceId := CkJsonObject__stringOf(jResp,'onlineMeeting.conferenceId');
onlineMeetingTollNumber := CkJsonObject__stringOf(jResp,'onlineMeeting.tollNumber');

CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkStringBuilder_Dispose(sbRequestBody);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);