C
C
MS Graph Calendar Update Event
See more Microsoft Calendar Examples
Update the properties of an event object.Chilkat C Downloads
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>
#include <C_CkStringBuilder.h>
#include <C_CkHttpResponse.h>
void ChilkatSample(void)
{
BOOL success;
HCkHttp http;
HCkJsonObject json;
HCkStringBuilder sbRequestBody;
HCkHttpResponse resp;
HCkStringBuilder sbResponseBody;
HCkJsonObject jResp;
int respStatusCode;
const char *originalStartTimeZone;
const char *originalEndTimeZone;
const char *responseStatusResponse;
const char *responseStatusTime;
const char *recurrence;
const char *iCalUId;
int reminderMinutesBeforeStart;
BOOL isOnlineMeeting;
const char *onlineMeetingProvider;
BOOL isReminderOn;
const char *onlineMeetingJoinUrl;
const char *onlineMeetingConferenceId;
const char *onlineMeetingTollNumber;
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) {
printf("%s\n",CkHttp_lastErrorText(http));
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkStringBuilder_Dispose(sbRequestBody);
CkHttpResponse_Dispose(resp);
return;
}
sbResponseBody = CkStringBuilder_Create();
CkHttpResponse_GetBodySb(resp,sbResponseBody);
jResp = CkJsonObject_Create();
CkJsonObject_LoadSb(jResp,sbResponseBody);
CkJsonObject_putEmitCompact(jResp,FALSE);
printf("Response Body:\n");
printf("%s\n",CkJsonObject_emit(jResp));
respStatusCode = CkHttpResponse_getStatusCode(resp);
printf("Response Status Code = %d\n",respStatusCode);
if (respStatusCode >= 400) {
printf("Response Header:\n");
printf("%s\n",CkHttpResponse_header(resp));
printf("Failed.\n");
CkHttp_Dispose(http);
CkJsonObject_Dispose(json);
CkStringBuilder_Dispose(sbRequestBody);
CkHttpResponse_Dispose(resp);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jResp);
return;
}
// 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
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
// See this example explaining how this memory should be used: const char * functions.
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);
}