Le Café Central de Deva
... Deva blogs!!
I changed the way of blogging, developing, designing and assisting my customers. Re-designed the site and started using the latest Windows Live Writer!! Additionally added Microsoft Translator gadget available @ top of page, so that you can change the page in your preferred language!!
Information for the availability service is provided via our open specifications document: [MS-OXWAVLS]. Information for the security model used in the availability service, please reference the following document: [MS-OXCPERM].
For more info, you can refer:
Availability Web Services Protocol specification: http://msdn.microsoft.com/en-us/library/cc463891(v=exchg.80).aspx or http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/[MS-OXWAVLS].pdf or http://download.microsoft.com/download/5/D/D/5DD33FDF-91F5-496D-9884-0A0B0EE698BB/Exchange_Protocols.zip.
In this post, we will see how to access user free/busy information programmatically using Exchange Web Services (EWS) – Proxy. Exchange provides such a service by storing what is referred to as free/busy data. This information will indicate what requested time range is free, busy, and tentative for a particular user. It will also provide any out of office (oof) status as well. Free/Busy data can be obtained using the Availability service provided by the Exchange Server. This is simply a web service which obtains the free/busy data directly from a user’s calendar. Specifically, the GetUserAvailability operation will provide the free/busy state at specific level of detail.Using GetUserAvailability operation, which provides current user availability information at a specified level of detail - about the availability of a set of users, rooms, and resources within a specified time period. Client applications such as Microsoft Office Outlook, Microsoft Outlook Web Access, Microsoft Outlook Mobile Access, and other applications use SMTP addresses to identify the requested user information. Let start now by creating the binding, set the credentials/URL and pass the binding (esb) to the following functionality ( which I haven’t added here).
Identify the time to compare free/busy information:
Duration duration = new Duration();
duration.StartTime = DateTime.Now;
duration.EndTime = DateTime.Now.AddHours(4);
Identify the options for comparing free/busy information:
FreeBusyViewOptionsType fbViews = new FreeBusyViewOptionsType();
fbViews.TimeWindow = duration;
fbViews.RequestedView = FreeBusyViewType.MergedOnly;
fbViews.RequestedViewSpecified = true;
fbViews.MergedFreeBusyIntervalInMinutes = 35;
fbViews.MergedFreeBusyIntervalInMinutesSpecified = true;
Identify the user mailbox to review for free/busy data: MailboxData mbx= newMailboxData;
mbx = new MailboxData();
EmailAddress emailAddress = new EmailAddress();
emailAddress.Address = "email@example.com";
emailAddress.Name = String.Empty;
mbx.Email = emailAddress;
mbx.ExcludeConflicts = false; Make the request and set the time zone of the request: getusrRequest.TimeZone = newSerializableTimeZone();
getusrRequest.TimeZone.Bias = 480;
getusrRequest.TimeZone.StandardTime = newSerializableTimeZoneTime();
getusrRequest.TimeZone.StandardTime.Bias = 0;
getusrRequest.TimeZone.StandardTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
getusrRequest.TimeZone.StandardTime.DayOrder = 1;
getusrRequest.TimeZone.StandardTime.Month = 11;
getusrRequest.TimeZone.StandardTime.Time = "02:00:00";
getusrRequest.TimeZone.DaylightTime = new SerializableTimeZoneTime();
getusrRequest.TimeZone.DaylightTime.Bias = -60;
getusrRequest.TimeZone.DaylightTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
getusrRequest.TimeZone.DaylightTime.DayOrder = 2;
getusrRequest.TimeZone.DaylightTime.Month = 3;
getusrRequest.TimeZone.DaylightTime.Time = "02:00:00";
In addition to that, add the mailbox and the view options to the request getusrRequest.MailboxDataArray = mbx;
getusrRequest.FreeBusyViewOptions = fbViews;
Send the above request and get the response: GetUserAvailabilityResponseType getusrResponse = esb.GetUserAvailability(getusrRequest);
Access the free/busy info:
if(getusrResponse.FreeBusyResponseArray.Length < 1)
Console.WriteLine("No free/busy response data available.");
foreach(FreeBusyResponseType fbrt in getusrResponse.FreeBusyResponseArray)
if(fbrt.ResponseMessage.ResponseClass == ResponseClassType.Error)
Console.WriteLine("Error:" + fbrt.ResponseMessage.MessageText);
FreeBusyView fbv = fbrt.FreeBusyView;
Console.WriteLine("Merged free/busy data: " + fbv.MergedFreeBusy);
If you run the above piece of code, then you will get the result:
For more information, you can refer the following article: http://msdn.microsoft.com/en-us/library/aa564001(v=exchg.140).aspx
Public Folders are used in earlier versions of Microsoft Exchange Server to store free/busy data and files. From Microsoft Exchange Server 2007, free/busy data is no longer stored in public folders. It’s recommend that you do not store files in public folders in Exchange 2007. Instead, consider using Microsoft Office SharePoint, or Windows SharePoint Services. Public folders are included and supported in Exchange 2007 and 2010. However, future releases of Microsoft Exchange might not include public folders. You can visit http://blogs.technet.com/b/exchange/archive/2006/02/20/419994.aspx. Also, you can refer MS Exchange team blog have posted the updated public folder guidance for versions of Exchange past Exchange 2007.
So, what are my options?
If you're building something new, you should look at the requirements and building on the SharePoint Technologies platform:
+ Starting with Exchange 2007, we recommend that applications use the Availability service to provide free/busy data for Exchange mailbox users. Windows SharePoint Services replaces the file sharing functionality that public folders provide. You must redesign applications that use public folders to use Exchange Web Services. + Also consider redesigning custom applications as early as possible as future versions of Microsoft Exchange may not contain public folders. + In addition to that you can refer the wonderful blogpost by Joel.
Are you a C++ developer? Then, its for you. Recently I was watching Channel9, “GoingNative 2012” - wonderful sessions on C++. Please find the related links for your reference:
Recently one of my developer customer (developer of PC and mobile based applications) was asking is there any difference available between Outlook Object Model (OOM) API and Pocket Outlook Object Model (POOM) API? If yes, where it's documented? As you know, the Pocket Outlook Object Model (POOM) API is a COM-based library that provides programmatic access to Personal Information Manager (PIM) data on mobile devices. It provides functionality for manipulating PIM-item collections and folders. I pointed him to have a look at the MSDN document, which points at the principal differences between the Pocket Outlook Object Model and the Outlook object model.
I got the latest Windows Phone update: 7.10.8107.79 It fixes the following:
To learn how to install updates, check if there's an update available for you to download, and determine which version of Windows Phone you have now, see Phone updates FAQ.
Here it comes… Kinect for Windows. You can use the power of Kinect to change the world. Kinect has changed the way people play games and experience entertainment. Now, Kinect for Windows offers the potential to transform how people interact with computers and Windows-embedded devices in multiple industries, including education, healthcare, retail, transportation, and beyond. The release of the Kinect for Windows sensor and software development kit (SDK) for commercial applications opens up the limitless possibilities offered by Kinect technology. Together, the hardware and software offer a superior development platform for Windows and a higher quality, better performing experience for end users Are you a developer and want to thrive to Develop what's next, then your journey starts here… The Kinect for Windows sensor and SDK give you the tools you need to develop innovative applications that harness speech and human tracking. Now, the power is in your hands to enable people to interact with technology in completely new and exciting ways. You can download the Kinect SDK @ Download SDK Getting Started: Use these programming guides to help you get started with the Kinect for Windows system.
Got developer queries: Your development questions answered before you even asked them. Note: for all other questions, reference the General FAQ.
In addition to that, if you want to see what can be done, then you can have a look at the gallery. Also you can view the following video clip:
The Blog Get our latest updates and read stories about the amazing applications companies are creating with Kinect for Windows.
Facebook Take part in our Facebook community, where we'll be sharing ongoing news and information.
Twitter Follow us on Twitter and be part of the movement. #kinectforwindows
Forums Share advice and provide feedback about Kinect for Windows in our technical forums
Create a new world around you with Kinect and unleash its power!!
Are you ready for “Office 15”? Hough, CVP of Office Division announced in his blog that they reached an important milestone: the beginning of “Office 15” Technical Preview program. It also points that the Technical Preview program is already full, but everyone will have the opportunity to try the Office 15 public beta later this summer.