How do I get event information on all calendars with Microsoft Graph Explorer? - get

I want to get attendees and subjects from all calendar events with Microsoft Graph Explorer. I also want to see which calendar these events belong to.
I tried this:
GET => https://graph.microsoft.com/v1.0/me/events$select=subject,attendees,calendar
And I can get event subjects and attendees, but I can't get the calendar names in the same response. How should I write a query on Microsoft Graph Explorer.

You can use the PidTagParentDisplay property of the folder https://learn.microsoft.com/en-us/office/client-developer/outlook/mapi/pidtagparentdisplay-canonical-property which you request as a singleValueExtendedProperties like
https://graph.microsoft.com/v1.0/me/events?$select=subject,attendees,calendar&$expand=singleValueExtendedProperties($filter=id%20eq%20'String%200x0E05')
and you should then get back the name of the calendar in the response eg
"singleValueExtendedProperties#odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('7bedfe35-1780-4c50-8eca-50b0a37eb470')/events('AAMkADVmMTU2OGIxLWUxOTAtNDQzNi05ZWY1LWU3MWQxMGY1NTE5ZgBGAAAAAAA11iv2WTcWSb1HvIjYVgS9BwC753HH1GDaQ4zC-BDnxVlLAAAAAAENAAC753HH1GDaQ4zC-BDnxVlLAADuMzUuAAA%3D')/singleValueExtendedProperties",
"singleValueExtendedProperties": [
{
"id": "String 0xe05",
"value": "Calendar"
}
]

Related

Can I expand the set of fields returned by the Google group members API?

I need to make a Google API call to get specific information about members of a group.
The API for fetching group members is described here: https://developers.google.com/admin-sdk/directory/v1/guides/manage-group-members
But this API only returns ONE of the fields that I require for each member. I also require first name, last name, display name, phone number, organization, job title, and department.
ALL the fields for a user are available through this API: https://developers.google.com/admin-sdk/directory/v1/guides/manage-users. But I don't want to make multiple API calls to get the user information that I need.
Is there a way to get a set of fields for the members of a group?
I have found an API parameter named "fields" which can REDUCE the number of fields returned by the "members" API: https://developers.google.com/admin-sdk/directory/v1/guides/performance#patch
But how do I INCREASE the number of fields returned?
Or, alternatively, can I make a call to the "users" API and FILTER on the group I am looking for?
I did an HTTP GET against https://admin.googleapis.com/admin/directory/v1/groups/groupKey/members.
It returned JSON in this format:
{
"kind": "directory#members",
"members": [
{"kind": "directory#member",
"id": "group member's unique ID",
"email": "liz#example.com",
"role": "MANAGER",
"type": "GROUP"
},
],
}
The "members" list does not include first name, last name, phone number, etc.
I expected an API parameter which I can use to specify which attributes to return in the "members" list.
By using a Google API batch request I was able to reduce the number of API calls to:
MEMBERS API request to get the members of a group.
BATCH API request comprised of 1000 USER API requests (due to the 1000 request limit per batch).
So, for example, a group with 2000 members takes 3 API calls in total:
Get the members of the group.
Get the attributes for the first 1000 users.
Get the attributes for the second 1000 users.
Here is the info for Google API batch requests:
https://developers.google.com/admin-sdk/directory/v1/guides/batch
And the Python Google library we are using provides a very clean wrapper:
https://googleapis.github.io/google-api-python-client/docs/batch.html

Docusign api persisting data through multiple envelopes

Weird issue here. So I have a document that gets prepopulated with data from a crm. The crm has a lead object, which is what this is centered around. The lead can have companies on them as well as contacts. I take the lead id and query the crm for the associated objects. The response looks like this:
{
"result": {
"id": 1032,
"entityType": "Leads",
"primaryAccount": {
"id": 10
},
"contacts": [
{
"id": 72
}
],
}
}
If there is an account(which is actually company), I query that and get the data to prefill fields in docusign when the envelope is created from my code. If there are none, I pass nothing over, obviously.
Heres the problem.
If I send a document to a lead that prepopulates the company data and fill out the form, come back to my crm and remove the company, and resend the document, the company name still exists from the previous document. ONLY the company name. This company exists no where in our system and is not getting populated from our system. I have checked the envelope id and they are completely different envelope ids. I have checked our system for this data and it doesn't exist. I am at a complete loss as to why this is happening. Has anyone experienced this issue? I'd love to understand why this is happening. Thanks community!
This was dumb and attributed to a lack of knowledge of docusign on my part. The field in question is Company field. It populates automatically from your profile in docusign, no matter if you pass a value in or not. Hopefully this helps someone else out and saves people some time.
https://support.docusign.com/en/guides/ndse-user-guide-field-types

how to hide the guest list / attendees to see other attendees in create calendar event using outlook api

In create calendar event through outlook api how to hide the attendees to see other attendees.
I want attendees other than the organizer not to see who the event's attendees are, i checked the entire api documentation but cant find how to hide the attendees to see each other.
Please let me know if i want to pass any additional parameter in the api request inorder to fullfill my requirement.
Below is my sample request
{
'Start': {
'DateTime': new Date(date),
'TimeZone': 'Asia/Calcutta',
},
'End': {
'DateTime': new Date(date),
'TimeZone': 'Asia/Calcutta',
},
"ShowAs": "Free",
"IsReminderOn":true,
"Importance": "High",
"Organizer" :{EmailAddress:{"Address":"{email}","Name":"{name}","Type": "Required"}}
"Attendees" :[{EmailAddress:{"Address":"{attendee1email}","Name":"{attendee1emailname}"}},{EmailAddress:{"Address":"{attendee1emailemail}","Name":"{attendee1email2name}"}}]
}
based on above sample create event request, how should i hide attendee1 should not see attendee2 as a guest and viceversa, but organizer should be able to see both the attendees.
This isn't possible with Outlook. The only way to achieve this would be to create separate events for each attendee.

Adding a Notes using WEB API

I have gone through the WEB Api for leads and not able to find a proper field to update Notes for Leads.
I have used SOAP for creating sales order where NoteText is exposed to update the notes and what is the relevant field in WEB
You need to use the note property.
The value for this property must be specified directly (without nested object with value property).
Below is an example of the body of the PUT request:
{
"LeadID": {
"value": 11973
},
"note": "Some very interesting note\nSome other text from new line."
}

Acumatica run Generic Inquiry via REST API

How can I run a generic inquiry that I created via Acumatica's REST API? I was using the Inventory Summary Inquiry before but it was not returning all of the data I needed so we created a Generic Inquiry to return available for shipment quantity for ALL stock items. However I can't find how to get the data from this report via the API.
UPDATE:
I've tried creating an extended endpoint service and adding my endpoint for the report as described in I210 Documentation and then hitting via the REST API (which is not shown in I210). I added all of the result fields to the fields tab of the endpoint that I need returned.
Here are the details I used:
Extended Endpoint Name: MyInventoryAvailable
Endpoint version: 6.00.001
Endpoint: GetAvailableInventory
URL: https://mycompany.acumatica.com/entity/MyInventoryAvailable/6.00.001/GetAvailableInventory?$expand=Results
When I do a PUT request using the above details, this is the response I get:
{
"message": "The request is invalid.",
"modelState": {
"": [
"The request body should not be empty."
]
}
}
UPDATE 2
Here is the setup in Acumatica for the extended endpoint:
I've tried setting up a request body but with no success:
{
"InventoryID": {
"Value": "AB-CL-60"
},
"Description": {
"Value": ""
},
"Location": {
"Value": ""
},
"QtyHardAvailable":{
"Value": 0.0
},
"QtyOnHand":{
"Value": 0.0
},
"Warehouse":{
"Value": 0.0
}
}
When sending any request body, regardless of the content I recieve this error:
"exceptionMessage": "The given key was not present in the dictionary.",
"exceptionType": "System.Collections.Generic.KeyNotFoundException",
UPDATE 3 - Inquiry Structure
Here is the structure of the inquiry:
And here are the results in Acumatica's UI:
UPDATE 4
Expanded GetAvailableInventory node:
This is how I structure Generic-Inquiries in Web-Service-Endpoints.
While other Endpoints contain any number of Mapped Objects, the Generic-Enquiry Endpoints only have
Enter-Keys, Filter, Result, and Values-for-Update
The FIELDS for the ENDPOINT are the Filters (click POPULATE -> Filters). The example above does not seem to have any filters, which is fine, so this FIELDS should be empty.
To get the data from the Generic Inquiry, a "Detail" entity is added
click the Generic Inquiry
click "+ INSERT"
Fill in form with FieldName='GetAvailableInventoryResults', ObjectName='GetAvailableInventoryResults', ObjectType=Detail
Save
Now, add the results wanted by clicking on 'GetAvailableInventoryResults', then FIELDS (opens a popup). In the popup, select 'Result' and add all the fields you want. Don't select "Row Number" and "Selected" as these are not needed and can cause errors. SAVE.
To access the ENDPOINT, do a PUT to
.../GetAvailableInventory?$expand=GetAvailableInventoryResults
with a BODY of
{}
since this ENDPOINT does not define any Filters, but a PUT requires this to exist.
Why do I use "GetAvailableInventoryResults"? Well, because I ran into issues with multiple Generic-Inquiry Endpoint's having Details with the same name, so I make sure they are all unique.
Use GET instead of PUT. Your requirements fall under this. I supposed Generic Inquiry <> Inquiry Form. Hence the different outcome between GET vs PUT.

Resources