Delphi DLL Requires Chilkat v11.0.0+
Delphi DLL
MS Graph Calendar Update Event
See more Microsoft Calendar Examples
Update the properties of an event object.Chilkat Delphi DLL Downloads
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);