Skip to main content

Is it possible to read in a table like the one below, and use FME to publish the event to a calendar in Microsoft Outlook or Exchange Server?

 

EventDateStart TimeEnd TimeA Cool Event12/05/201811:00 AM1:00 PM

 

You should have a look at the vCal Wikipedia page. It's an open xml standard for calender items.

 

Actually it is not XML, but I do think you should be able tot work things out without that page. It also refers to some other flavors (XML, Json)


To write directly you would need a web service/connection in FME. Luckily there is a web service available for Microsoft Graph. The name sounds odd (I mean, you don't want to create graphs) but it appears that the "Microsoft Graph API is the gateway for Azure AD, Excel, Intune, Outlook, OneDrive, OneNote, SharePoint, Planner" so it sounds like it would work here.

You would need to sign up for a developer account, get a Client ID, and add it to the Web Service in FME. There are some good instructions when you look at the service in FME to tell you what you need to set it up.

Then you can make calls through the HTTPCaller to the Graph API, which should let you control your Microsoft calendars.

Here's a link to the web service on the FME Hub: https://hub.safe.com/web_connections/microsoft-graph

And here's a link to a recent blog post, where I did the same setup, but using the Fitbit API (it should give you some good clues as to how to set this up): https://blog.safe.com/2018/11/internet-devices-and-fme-evangelist181/

As Lars mentions, the other method would be to use the vCal xml standard. I think (90% sure) it depends on if you want to push the data directly to the calendar without user intervention. If you do, then I think you'll have to use the Graph API. If it's OK to have a pop up dialog ("Do you want to add this to your calendar?") then you could go the XML route.

The reading part would be the easy bit. Just read it with the Textline or CSV readers.


If this is Outlook in office 365 then you use Microsoft Graph or Microsoft Flow, but I suspect this is an onsite exchange (and not a hybrid) and therefore I do not believe these options will work.

Instead it looks like you need to install something like Microsoft EWS API and utilise that


If this is Outlook in office 365 then you use Microsoft Graph or Microsoft Flow, but I suspect this is an onsite exchange (and not a hybrid) and therefore I do not believe these options will work.

Instead it looks like you need to install something like Microsoft EWS API and utilise that

I looked at the EWS API but found that it was being, well, not actively developed is the phrase used I think. And that it was being deprecated in favour of Graph. Ah... I see. It's still available for on-premises Exchange products. That makes sense. Anyway, if it's of use to anyone the page I was looking at is here: https://developer.microsoft.com/en-us/graph/blogs/upcoming-changes-to-exchange-web-services-ews-api-for-office-365/


Reply