Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(VBScript) MS Graph Calendar Create EventCreates a new event in a specified calendar. For more details, see https://docs.microsoft.com/en-us/graph/api/calendar-post-events?view=graph-rest-1.0
Dim fso, outFile Set fso = CreateObject("Scripting.FileSystemObject") 'Create a Unicode (utf-16) output text file. Set outFile = fso.CreateTextFile("output.txt", True, True) ' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.Http") set http = CreateObject("Chilkat.Http") ' Use your previously obtained access token as shown here: ' Get Microsoft Graph OAuth2 Access Token with Calendars.ReadWrite scope. ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set jsonToken = CreateObject("Chilkat.JsonObject") success = jsonToken.LoadFile("qa_data/tokens/msGraphCalendar.json") If (success = 0) Then outFile.WriteLine(jsonToken.LastErrorText) WScript.Quit End If http.AuthToken = jsonToken.StringOf("access_token") ' Create a JSON body for the HTTP POST ' Use this online tool to generate the code from sample JSON: ' Generate Code to Create JSON ' { ' "subject": "Let's go for lunch", ' "body": { ' "contentType": "HTML", ' "content": "Does mid month work for you?" ' }, ' "start": { ' "dateTime": "2019-11-15T12:00:00", ' "timeZone": "Pacific Standard Time" ' }, ' "end": { ' "dateTime": "2019-11-15T14:00:00", ' "timeZone": "Pacific Standard Time" ' }, ' "location":{ ' "displayName":"Harry's Bar" ' }, ' "attendees": [ ' { ' "emailAddress": { ' "address":"adelev@contoso.onmicrosoft.com", ' "name": "Adele Vance" ' }, ' "type": "required" ' } ' ] ' } ' For versions of Chilkat < 10.0.0, use CreateObject("Chilkat_9_5_0.JsonObject") set json = CreateObject("Chilkat.JsonObject") success = json.UpdateString("subject","Let's go for lunch") success = json.UpdateString("body.contentType","HTML") success = json.UpdateString("body.content","Does mid month work for you?") success = json.UpdateString("start.dateTime","2019-11-15T12:00:00") success = json.UpdateString("start.timeZone","Pacific Standard Time") success = json.UpdateString("end.dateTime","2019-11-15T14:00:00") success = json.UpdateString("end.timeZone","Pacific Standard Time") success = json.UpdateString("location.displayName","Harry's Bar") success = json.UpdateString("attendees[0].emailAddress.address","adelev@contoso.onmicrosoft.com") success = json.UpdateString("attendees[0].emailAddress.name","Adele Vance") success = json.UpdateString("attendees[0].type","required") ' POST the JSON to https://graph.microsoft.com/v1.0/me/calendars/{id}/events ' This is posting to a calendar in the default calendarGroup. ' Specify the calendar id success = http.SetUrlVar("id","AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEGAAAA5_vF7TKKdE6bGCRqXyl2PQAClEpRTgAAAA==") ' resp is a Chilkat.HttpResponse Set resp = http.PostJson3("https://graph.microsoft.com/v1.0/me/calendars/{$id}/events","application/json",json) If (http.LastMethodSuccess = 0) Then outFile.WriteLine(http.LastErrorText) WScript.Quit End If success = json.Load(resp.BodyStr) json.EmitCompact = 0 If (resp.StatusCode <> 201) Then outFile.WriteLine(json.Emit()) outFile.WriteLine("Failed, response status code = " & resp.StatusCode) WScript.Quit End If outFile.WriteLine(json.Emit()) ' A sample response: ' (See code for parsing this response below..) ' { ' "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin%40chilkat.io')/calendars('AQMkADAwATM0MDAAMS ... AClEpRTgAAAA%3D%3D')/events/$entity", ' "@odata.etag": "W/\"5+vF7TKKdE6bGCRqXyl2PQAClIgmmw==\"", ' "id": "AQMkADAwAT ... ApRZ7JkAAAA=", ' "createdDateTime": "2019-04-26T14:31:39.8791929Z", ' "lastModifiedDateTime": "2019-04-26T14:31:41.2753537Z", ' "changeKey": "5+vF7TKKdE6bGCRqXyl2PQAClIgmmw==", ' "categories": [ ' ], ' "originalStartTimeZone": "Pacific Standard Time", ' "originalEndTimeZone": "Pacific Standard Time", ' "iCalUId": "040000008200E00074C5B7101A82E00800000000F05DF1C23CFCD40100000000000000001000000009911D155F71EF42A230FEBFE5F7486A", ' "reminderMinutesBeforeStart": 15, ' "isReminderOn": true, ' "hasAttachments": false, ' "subject": "Let's go for lunch", ' "bodyPreview": "Does mid month work for you?", ' "importance": "normal", ' "sensitivity": "normal", ' "isAllDay": false, ' "isCancelled": false, ' "isOrganizer": true, ' "responseRequested": true, ' "seriesMasterId": null, ' "showAs": "busy", ' "type": "singleInstance", ' "webLink": "https://outlook.live.com/owa/?itemid=AQMkADAwATM0MDAAMS1iNTcwL...pRZ7JkAAAA%3D&exvsurl=1&path=/calendar/item", ' "onlineMeetingUrl": null, ' "recurrence": null, ' "responseStatus": { ' "response": "organizer", ' "time": "0001-01-01T00:00:00Z" ' }, ' "body": { ' "contentType": "html", ' "content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nDoes mid month work for you?\r\n</body>\r\n</html>\r\n" ' }, ' "start": { ' "dateTime": "2019-11-15T12:00:00.0000000", ' "timeZone": "Pacific Standard Time" ' }, ' "end": { ' "dateTime": "2019-11-15T14:00:00.0000000", ' "timeZone": "Pacific Standard Time" ' }, ' "location": { ' "displayName": "Harry's Bar", ' "locationType": "default", ' "uniqueId": "Harry's Bar", ' "uniqueIdType": "private" ' }, ' "locations": [ ' { ' "displayName": "Harry's Bar", ' "locationType": "default", ' "uniqueId": "Harry's Bar", ' "uniqueIdType": "private" ' } ' ], ' "attendees": [ ' { ' "type": "required", ' "status": { ' "response": "none", ' "time": "0001-01-01T00:00:00Z" ' }, ' "emailAddress": { ' "name": "Adele Vance", ' "address": "adelev@contoso.onmicrosoft.com" ' } ' } ' ], ' "organizer": { ' "emailAddress": { ' "name": "Matt", ' "address": "outlook_3A33FCEB9B74CC15@outlook.com" ' } ' } ' } ' ' ' Use this online tool to generate parsing code from sample JSON: ' Generate Parsing Code from JSON odataContext = json.StringOf("""@odata.context""") odataEtag = json.StringOf("""@odata.etag""") id = json.StringOf("id") createdDateTime = json.StringOf("createdDateTime") lastModifiedDateTime = json.StringOf("lastModifiedDateTime") changeKey = json.StringOf("changeKey") originalStartTimeZone = json.StringOf("originalStartTimeZone") originalEndTimeZone = json.StringOf("originalEndTimeZone") iCalUId = json.StringOf("iCalUId") reminderMinutesBeforeStart = json.IntOf("reminderMinutesBeforeStart") isReminderOn = json.BoolOf("isReminderOn") hasAttachments = json.BoolOf("hasAttachments") subject = json.StringOf("subject") bodyPreview = json.StringOf("bodyPreview") importance = json.StringOf("importance") sensitivity = json.StringOf("sensitivity") isAllDay = json.BoolOf("isAllDay") isCancelled = json.BoolOf("isCancelled") isOrganizer = json.BoolOf("isOrganizer") responseRequested = json.BoolOf("responseRequested") seriesMasterId = json.StringOf("seriesMasterId") showAs = json.StringOf("showAs") type = json.StringOf("type") webLink = json.StringOf("webLink") onlineMeetingUrl = json.StringOf("onlineMeetingUrl") recurrence = json.StringOf("recurrence") responseStatusResponse = json.StringOf("responseStatus.response") responseStatusTime = json.StringOf("responseStatus.time") bodyContentType = json.StringOf("body.contentType") bodyContent = json.StringOf("body.content") startDateTime = json.StringOf("start.dateTime") startTimeZone = json.StringOf("start.timeZone") endDateTime = json.StringOf("end.dateTime") endTimeZone = json.StringOf("end.timeZone") locationDisplayName = json.StringOf("location.displayName") locationLocationType = json.StringOf("location.locationType") locationUniqueId = json.StringOf("location.uniqueId") locationUniqueIdType = json.StringOf("location.uniqueIdType") organizerEmailAddressName = json.StringOf("organizer.emailAddress.name") organizerEmailAddressAddress = json.StringOf("organizer.emailAddress.address") i = 0 count_i = json.SizeOfArray("categories") Do While i < count_i json.I = i ' ... i = i + 1 Loop i = 0 count_i = json.SizeOfArray("locations") Do While i < count_i json.I = i displayName = json.StringOf("locations[i].displayName") locationType = json.StringOf("locations[i].locationType") uniqueId = json.StringOf("locations[i].uniqueId") uniqueIdType = json.StringOf("locations[i].uniqueIdType") i = i + 1 Loop i = 0 count_i = json.SizeOfArray("attendees") Do While i < count_i json.I = i type = json.StringOf("attendees[i].type") statusResponse = json.StringOf("attendees[i].status.response") statusTime = json.StringOf("attendees[i].status.time") emailAddressName = json.StringOf("attendees[i].emailAddress.name") emailAddressAddress = json.StringOf("attendees[i].emailAddress.address") i = i + 1 Loop outFile.WriteLine("Success.") outFile.Close |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.