Some users of my app Week View were asking me, if i plan to create a similar app for windows 8.x. I already thought about doing so when windows 8.0 was release but felt no preasure to do this since the windows 8.x built in calendar is not that bad as the built in windows phone calendar (my personal opinion of course).
Since windows 8.1 has been released some days ago now and the appointments programing interface has been updated, i wanted to give it a try. 🙂
Usually it’s a good idea to create a „prototype“ to try out new things. I have already done some windows 8 apps but non of them had to deal with calendars/appointments.
A nice thing for windows 8.x development is: There are a bunch of samples from MS, also when working with the appointments Api: http://code.msdn.microsoft.com/windowsapps/Appointments-API-sample-2b55c76e
Planed for the first prototype: Simpy show the list of a users appointments, when the app starts.
After some searching (since i could not believe it) i discovered: In the Windows 8.1 Api it is not possible to simply query for appointments – this functionality does not exist.
The programing interface is quite different from windows phone 8. It allows adding, editing and deleting appointments (windows phone 8 only allows adding appointments).
While the windows phone programing interface has many limitations itself, at least it allows to query for appointments. The windows 8.1 programing interface does not do this.
The suggested way to query for appointments by MS is to use the Windows Live SDK. Wow, what a „great“ solution!
What if a users wants to get appointments from windows live, exchange, google and facebook calendar?
Answer: The app needs to login to all these online calendars and a users has to enter his login data again although he/she already did so in the windows 8.1 built in calendar app.
What if no internet connection exists to make web-requests to get data from these online calendar?
In Windows 8.1 it’s just bad luck – you cannot read your (!) calendar data.
Windows Phone 8 stores synced calendar data locally and allows to read it. Windows 8 does not.
What if a user is not permanently logged in to his windows live account, which is suggested when a user account is created in windows 8/8.1 but i don’t want to do so myself?
I tested this with some calendar from the windows 8/8.1 store: The all of course require you to log in to your live account and query data from your online calendar. If you are not online or do not want to login to your live account, you do not see your calendar data.
I unserstand this from a technical point of view (from a users point of view it just „does not work“ which is really bad) But the built in windows 8.x calendar already stores appointments offline but there is now way to access this data from other apps.
There IS a „share“ contract that can be used to share data between apps but the windows 8.1 built in calendar does not implement this contract so it cannot share it’s (offline stored) calendar data?
Why, MS didn’t you do this?
You want developers to create great apps and make use of functions that are provided by windows 8.1 like providing data to share but WHY aren’t you doing this yourself?
This is really frustrating and i guess most users do not understand why they have to sign in to their live account to read their calendar data – I can already hear them saysing: …this all was working in the „old days“, when i created appointments in my local outlook installation without going online…and they were right.
…if you think that i was quite frustrated while writing this, you are right. 🙁
I am interrested, what MS will answer to my developer forum posting: http://social.msdn.microsoft.com/Forums/windowsapps/de-DE/2cead4fc-9e88-4b7f-a092-42b876e29e89/query-appointments-api?forum=winstoreappsde