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
(Visual Basic 6.0) MS Graph Calendar List EventsRetrieve a list of events in a calendar. The list contains single instance meetings and series masters. For more details, see https://docs.microsoft.com/en-us/graph/api/calendar-list-events?view=graph-rest-1.0
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim http As New ChilkatHttp ' Use your previously obtained access token as shown here: ' Get Microsoft Graph OAuth2 Access Token with Calendars.ReadWrite scope. Dim jsonToken As New ChilkatJsonObject Dim success As Long success = jsonToken.LoadFile("qa_data/tokens/msGraphCalendar.json") If (success = 0) Then Debug.Print jsonToken.LastErrorText Exit Sub End If http.AuthToken = jsonToken.StringOf("access_token") ' Specify the calendar id success = http.SetUrlVar("id","AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEGAAAA5_vF7TKKdE6bGCRqXyl2PQAClEpRTgAAAA==") ' Send a GET request to https://graph.microsoft.com/v1.0/me/calendars/{$id}/events Dim strResponse As String strResponse = http.QuickGetStr("https://graph.microsoft.com/v1.0/me/calendars/{$id}/events") If (http.LastMethodSuccess = 0) Then Debug.Print http.LastErrorText Exit Sub End If Dim json As New ChilkatJsonObject success = json.Load(strResponse) json.EmitCompact = 0 If (http.LastStatus <> 200) Then Debug.Print json.Emit() Debug.Print "Failed, response status code = " & http.LastStatus Exit Sub End If Debug.Print json.Emit() ' Sample output: ' (See parsing code below..) ' { ' "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('admin%40chilkat.io')/calendars('AQMkADAwATM0MDAAMS1i ... AClEpRTgAAAA%3D%3D')/events", ' "value": [ ' { ' "@odata.etag": "W/\"5+vF7TKKdE6bGCRqXyl2PQAClIgmmw==\"", ' "id": "AQMkADAwATM0MDAAM ... AApRZ7JkAAAA=", ' "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": "040000008200E ... A230FEBFE5F7486A", ' "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=AQMkADAwATM0MDAAMS1iNTcwLWI2NT ... gkal8pdj0AApRZ7JkAAAA%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-15T20:00:00.0000000", ' "timeZone": "UTC" ' }, ' "end": { ' "dateTime": "2019-11-15T22:00:00.0000000", ' "timeZone": "UTC" ' }, ' "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 Dim odataContext As String Dim i As Long Dim count_i As Long Dim odataEtag As String Dim id As String Dim createdDateTime As String Dim lastModifiedDateTime As String Dim changeKey As String Dim originalStartTimeZone As String Dim originalEndTimeZone As String Dim iCalUId As String Dim reminderMinutesBeforeStart As Long Dim isReminderOn As Long Dim hasAttachments As Long Dim subject As String Dim bodyPreview As String Dim importance As String Dim sensitivity As String Dim isAllDay As Long Dim isCancelled As Long Dim isOrganizer As Long Dim responseRequested As Long Dim seriesMasterId As String Dim showAs As String Dim v_type As String Dim webLink As String Dim onlineMeetingUrl As String Dim recurrence As String Dim responseStatusResponse As String Dim responseStatusTime As String Dim bodyContentType As String Dim bodyContent As String Dim startDateTime As String Dim startTimeZone As String Dim endDateTime As String Dim endTimeZone As String Dim locationDisplayName As String Dim locationLocationType As String Dim locationUniqueId As String Dim locationUniqueIdType As String Dim organizerEmailAddressName As String Dim organizerEmailAddressAddress As String Dim j As Long Dim count_j As Long Dim displayName As String Dim locationType As String Dim uniqueId As String Dim uniqueIdType As String Dim statusResponse As String Dim statusTime As String Dim emailAddressName As String Dim emailAddressAddress As String odataContext = json.StringOf("""@odata.context""") i = 0 count_i = json.SizeOfArray("value") Do While i < count_i json.I = i odataEtag = json.StringOf("value[i].""@odata.etag""") id = json.StringOf("value[i].id") createdDateTime = json.StringOf("value[i].createdDateTime") lastModifiedDateTime = json.StringOf("value[i].lastModifiedDateTime") changeKey = json.StringOf("value[i].changeKey") originalStartTimeZone = json.StringOf("value[i].originalStartTimeZone") originalEndTimeZone = json.StringOf("value[i].originalEndTimeZone") iCalUId = json.StringOf("value[i].iCalUId") reminderMinutesBeforeStart = json.IntOf("value[i].reminderMinutesBeforeStart") isReminderOn = json.BoolOf("value[i].isReminderOn") hasAttachments = json.BoolOf("value[i].hasAttachments") subject = json.StringOf("value[i].subject") bodyPreview = json.StringOf("value[i].bodyPreview") importance = json.StringOf("value[i].importance") sensitivity = json.StringOf("value[i].sensitivity") isAllDay = json.BoolOf("value[i].isAllDay") isCancelled = json.BoolOf("value[i].isCancelled") isOrganizer = json.BoolOf("value[i].isOrganizer") responseRequested = json.BoolOf("value[i].responseRequested") seriesMasterId = json.StringOf("value[i].seriesMasterId") showAs = json.StringOf("value[i].showAs") v_type = json.StringOf("value[i].type") webLink = json.StringOf("value[i].webLink") onlineMeetingUrl = json.StringOf("value[i].onlineMeetingUrl") recurrence = json.StringOf("value[i].recurrence") responseStatusResponse = json.StringOf("value[i].responseStatus.response") responseStatusTime = json.StringOf("value[i].responseStatus.time") bodyContentType = json.StringOf("value[i].body.contentType") bodyContent = json.StringOf("value[i].body.content") startDateTime = json.StringOf("value[i].start.dateTime") startTimeZone = json.StringOf("value[i].start.timeZone") endDateTime = json.StringOf("value[i].end.dateTime") endTimeZone = json.StringOf("value[i].end.timeZone") locationDisplayName = json.StringOf("value[i].location.displayName") locationLocationType = json.StringOf("value[i].location.locationType") locationUniqueId = json.StringOf("value[i].location.uniqueId") locationUniqueIdType = json.StringOf("value[i].location.uniqueIdType") organizerEmailAddressName = json.StringOf("value[i].organizer.emailAddress.name") organizerEmailAddressAddress = json.StringOf("value[i].organizer.emailAddress.address") j = 0 count_j = json.SizeOfArray("value[i].categories") Do While j < count_j json.J = j ' ... j = j + 1 Loop j = 0 count_j = json.SizeOfArray("value[i].locations") Do While j < count_j json.J = j displayName = json.StringOf("value[i].locations[j].displayName") locationType = json.StringOf("value[i].locations[j].locationType") uniqueId = json.StringOf("value[i].locations[j].uniqueId") uniqueIdType = json.StringOf("value[i].locations[j].uniqueIdType") j = j + 1 Loop j = 0 count_j = json.SizeOfArray("value[i].attendees") Do While j < count_j json.J = j v_type = json.StringOf("value[i].attendees[j].type") statusResponse = json.StringOf("value[i].attendees[j].status.response") statusTime = json.StringOf("value[i].attendees[j].status.time") emailAddressName = json.StringOf("value[i].attendees[j].emailAddress.name") emailAddressAddress = json.StringOf("value[i].attendees[j].emailAddress.address") j = j + 1 Loop i = i + 1 Loop Debug.Print "Success." |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.