(Beginner) How to call Outlook RESTful APIs in Outlook VSTO Add-In - vsto

I'm looking to develop an Outlook Add-In, in which I receive a meeting room request and propose another room based upon conditions relating number of participants and size of the other rooms. I'm attempting to do this using a VSTO Add-In in C#.
My problem comes in the algorithm to determine the list of rooms and which room is smaller. From research, I can see that Outlook incorporates a number of RESTful APIs (https://msdn.microsoft.com/en-us/office/office365/api/calendar-rest-operations). However, I'm running into roadblocks in terms of how to call the APIs and how to get their data.
Is this possible in a VSTO add-in? If so, how could I get and store a list of the meeting rooms in Outlook using the REST APIs? I know there are other types of add-ins but I'm unfamiliar with Javascript and thus I'd like to stay with C#.

We recommend using the web add-in framework, instead of COM, for writing an Outlook add-in. The web add-in framework enables developers to:
Write once and have their add-in run across supported Outlook
clients enabling the add-in to reach millions of Outlook Desktop,
Outlook for Web, Outlook for Mac, and Outlook Mobile users.
Simplified deployment through the Office store, enabling users to acquire your add-in with a single click.
Access to user mailbox data via a rich REST based API set.
In addition to the benefits of the web add-in framework, Microsoft is not investing in new functionality on the COM platform. We understand COM add-ins may support different scenarios than the web add-in framework and thus are continually investing in the web add-in framework.
If you have any feedback or new functionality you would like to see available in the web add-in framework please let us know.
We track Outlook add-in feature requests on our user-voice page. Please add your request there.
[Outlook Add-ins Engineering Team]

Related

How to send a recurring event from Outlook to Google Calendar

I have some Outlook VBA code which executes when I add an event to my Outlook calendar. The code makes use of the google calendar API to send the event information to google. Google them updates my google calendar. I also have code which, when I delete an event from my Outlook calendar, will send a DELETE to google through the calendar API. Google then deletes the event from my google calendar. This code works perfectly.
Now I need to write the VBA code which will send recurring event data to google. Is there a simple way to send this information? Is there an online service that I can send information to and have an RRule string generated? Do I have to build the RRule string manually?
Thank you.
If you deal with Office365 account you may consider using the Graph API directly without involving client applications like Outlook. For the Exchange on-premise you may consider using Exchange Web Services, see Start using web services in Exchange for more information.
If you need to end up with a client-side solution you may consider creating a VSTO based add-in (COM add-in) which can sync everything with your system. See Walkthrough: Create your first VSTO Add-in for Outlook to get started quickly. VBA was not designed for distributing solutions on multiple machines.

Outlook add-in which uses another add-in

I have old outlook add-in (COM/VSTO). And I have new one with office.js.
Is it possible to use old one from new one?
Basically I want to imitate left click action on old plugin from new plugin code.
Thank you
Office.js API doesn't have functionality to directly communicate to the COM/VSTO technology add-ins. You may share certain message data and/or user properties as described at How to share user roaming settings between Outlook COM/VSTO and Office JS Add-in, but nothing more.
If you have strong business case and this is something you would like to see in upcoming Office.js releases, you may post your suggestion at officespdev.uservoice.com

"Sideload" an App for Office programatically on the Desktop

I'm not sure whether "sideloading" is the correct term: Is therea an API to programatically install an Office Javascript API based add-in (e.g. a Task Pane app) in to the current / specific document on the desktop (at least on Windows)?
VisualStudio does this when you debug an App for Office project. How do I go about achieving the same?
There is no current way to programmatically insert an app (now "Office Add-in") into a document via JavaScript. It is a scenario that the product group is aware of, but it's not something we have yet.
You can insert an it via the Open XML SDK (which is actually how Visual Studio does this), but that would be .NET code running outside of the Office add-in (and not on the currently open document). Visual Studio in particular is atually inserting an app registered into the special local registry-based "Developer Store", but I can't think of any reason why wouldn't work for an actual Office-Store or SharePoint App Catalog-hosted app. If you are interested in going this route, let me know, and I might be able to find some pointers on the code you'd need to write.
Finally (though it probably goes without saying), you can insert an app into a Template, rather than a regular document. That way, anyone creating a document from that template would get your add-in -- I believe that's what the Paypal Invoicing add-in in Excel does, for example.
Hope this helps,
~ Michael Zlatkovsky, Developer on Office Extensibility team, MSFT

GetUserAvailability from Exchange from a COM Outlook addin

I have a COM Outlook addin programmed in C++ (VS2005). I'm trying to see if within this addin I can get a random user or resource and see if it is available during a certain meeting time. Basically I'm trying to do something like getuseravailability() from the 2007 Exchange Web Service api listed below.
getuseravailability
Is this the only way to get this information? I've been looking through CDO, ADSI, MAPI and the Outlook object model but can't find anything else like it. I'm avoiding using web services because the Exchange Servers I run against may not have it enabled/ may not be Exchange 2007. And also, I'm hoping for a COM api easily integrated with the existing Outlook COM addin, was really hoping for an OOM solution.
Am I wrong or would the webservices sdk require .net to be installed on the machine running the addin as well?
I believe I've found a way to do this with CDO. Will be trying a sample app for this to see if it does what I think it does.
http://msdn.microsoft.com/en-us/library/ms870482%28EXCHG.65%29.aspx
I didn't find this earlier because the MSDN library's default view doesn't easily let you browse through the table of contents for a section. You have to go into MSDNs preferences and choose "Classic View" to get the table of contents view on the left.

Is it possible to develop a chat plugin like Gtalk for outlook?

My company uses outlook as the email client and we login to an exchange server. Out address book (not individual contacts) has all the users connected to our company network.
Our company dont have IM ;-( .. I am thinking about developing an outlook plugin like Gmail's Gtalk . is this possible(technically)? Or how difficult it is? Will I be able to get the list of all users (from address book) who have opened their outlook so that I can show them in the online list?
Can I do this without a DB (just sent the message to the recepient and show them)?
Outlook development is new for me and the links in this question did not help me much (very confusing). Where can I get some basic tutorials to begin with?
Edit: I have worked with VBA in outlook. So if the above can achieved using VBA the it would be great ;-) Is that possible?
VBA is an old method of building Office plug-ins and has since been replaced with just a more straight forward VB/C# module coding method. VBA plugins from Office 2003 should work alright in Office 2007, but it's no longer the suggested method if you're looking at Office 2007 + 1.
If you're using Visual Studio 2005, look for information on the Visual Studio Tools for Office (VSTO) Second Edition add-on on MSDN. If you're on Visual Studio 2008, the VSTO packages should come with the Professional editions (or higher) by default. It'll have all the templates for building add-ons for the Office suite. Going with this new direction of coding add-ons, anything should be possible.
I've personally never tried to make any sort of server/client solution, so I'm not helpful on that front, but I thought I'd put that information out there for you to consider in your planning stage of making the chat solution.
As a note, the non-individual (Exchange) address book is also known as the Global Address List (GAL).
Outlook 2010 includes instant messaging:
Use instant messaging services with Outlook
Microsoft Outlook can be used with several instant messaging services.
You can tell if your contacts are available for a real-time online
chat, audio and video conferencing, or file sharing.
Note Online status is available for any person whose instant
messaging e-mail address that you have added to your instant messaging
contact list. In addition, online status is shown for people using
Microsoft Office Communicator, regardless of whether they are on your
instant messaging contact list.