Since i get some emails which are related to this topic, i like to explain some things about it + this will also allow me to point at this posting, when users send me an email according to this. 🙂
At first: The development environment for windows phone, which is visual studio 2012, is great! I use it in my job and also for creating apps. 🙂
So what are these ‚windows phone limitations‘ I am talking about?
Microsoft provides a programming interface for developers, the Windows Phone SDK. This ’software development kit‘ is the interface a developer has to use to create apps for windows phone. It allows accessing
all many features of the phone like camera, email, GPS, sensors and much more…
Using this SDK is the only way to access features of the phone and if the SDK does not provide access to a specific feature, it cannot be used. For example: Every windows phone has a light sensor to adjust the display brightness so it is most useful in the current ambient light. Since there is not API for it, a developer cannot access this sensor.
I agree, it’s not that important for most apps to access the light sensor 🙂 but this was just an example and I want to talk in more details about the limitations of the ‚calendar programming interface‘ which is much more important for many apps.
The Windows Phone 7.x SDK does not provide methods for:
- Adding appointments
- Editing appointments
- Deleting appointments
- It does not return details for private appointments. ‚Private‘ means, they are private on YOUR phone. So you really should be able to see them on your phone.
- No information about calendar categories (birthday calendar, office calendar, private calendar, shared calendars, …) is returned.
- There is no way to access ‚Tasks‘ which are shown in the windows phone internal calendar.
- Opening the built in calendar at a specific (or any) date is not possible
Did this situation got better with the Windows Phone 8 SDK?
MS now provides a „SaveAppointmentTask“ which can be called by a developer and allows to create new appointments in all calendars that are configured on the phone. When a developer calls this „SaveAppointmentTask“ it looks exactly the same way as creating a new appointment in the built in calendar.
This is nice but it also means that no other ‚reminder times‘ can be used and no other options for creating recurring events exist. 🙁
Editing and deleting appointments is still not possible and all other limitations of WP 7.x still exist in WP 8.0.
What does this mean for developers?
It’s impossible for to create apps that can provide the same feature set as the built in calendar. This is valid for ALL apps created by ‚third party developers‘.
The built in calendar (in my opinion) lacks of some important features, for example a good week view, which is the reason why i created ‚Week View‚.
What can a developer do about this?
Use workarounds + this is exactly, what i did in Week View. 🙂
Week View uses the ‚Windows Live SDK‚ to bypass all mentioned limitations. By using this workaround in Week View it is possible to edit/delete appointments, show different calendar categories in different colors and show details for private appointments.
From a technical perspective it’s the same thing as using your web browser to navigate to the web-view of your windows live calendar and create/edit/delete appointments there.
But this workaround (using the Windows Live SDK) only works for the windows live calendar. Editing/deleting appointments in exchange calendar is still not possible for third party apps and this is the reason why you see no app in the marketplace (as far as i know) that can do this.
I really hope, MS will extend the windows phone SDK in the next update of their OS to allow app developers access to the same features as the built in WP calendar.
If you share my opinion, please vote for the features below at the ‚users voice page‘ which is provided by MS to collect feature suggestions by windows phone users.
- Provide a task to edit/delete appointments
- Provide Information about calendar categories
- Provide details for private appointments – it’s your phone! 🙂
- Allow developers access to tasks
Developers like me want to create great apps for you!
Please support us by voting for some features that allow this – maybe MS will listen to our ‚users voice‘! 🙂