Scraping calendar data for WinRT app development - calendar

I am developing an app for WinRT tablet which requires data from Windows8 Calendar app .
I am trying to use Windows.ApplicationModel.Appointments api of win 8.1 preview .
Will it help ? What other api's can be helpful to me to extract data of a user from his calendar ?

The Appointments API is designed to provide a way to manage appointments on the user's calendar without granting access directly to that data. The app can manage the appointments that it sourced, for instance, but cannot delete arbitrary appointments.
Otherwise the Calendar app doesn't provide open access; the user's calendar that's associated with their live ID can be accessed through the Live SDK, although that will be limited to just their Live calendar data and not other associated calendars.

Related

Create Event on Teams Channel Calendar from Daemon application using Microsoft Graph API

I have a daemon application that needs to update calendars created in Teams channels.
As far as I can tell, these channel calendars (unlike traditional Outlook calendars) do not have easily accessible IDs, so the Create event method for Calendars is not possible.
The Create event method for Group calendars documentation states that Application permissions are "not supported" so my daemon app cannot make changes.
Does a work around exist for this? Am I missing something?
As per docs the current api does not support application permission so your app wont be able to change the calendar.

google calendar javascript api: how to create a calendar in my google account and not in oauth authenticated user?

I'm thinking on my scenario and there is a point I cannot manage to bring to a valid approach:
I have a web app where users log in and, among other things, they can create calendars. If this calendars are marked as publics, all users can see them.
I want them to be able to sync the calendars with their google calendar account. I have this already implemented using gapi.
The problem is when, after a while, any user updates an event of a calendar which other user had synchronized before. He is not going to see the changes in his google calendar, as I'm not able to send him updates since he is not logged into the app.
So, my idea was to create all calendars in our own account, and whoever wants to have it in their google account, just have to subscribe to it. I would do that with gapi.acl lib.
What I don't know how to do is: when the first user wants to syncronize the calendar, it should first be created in our own google account, so that the user will be able to subscribe to it...
But how do I change the account where to create a calendar using gapi?
Maybe it is a stupid question but I cannot manage to find out how to do it.
Thanks in advance!!!!
But how do I change the account where to create a calendar using gapi?
You cant, what you are trying to do is get offline access to a users Google calendar data. OffLine access means that your application can access the users account when the user is "offLine" as in not there. This being a fully automated functionality of your application.
You need to request permission of the user for "offline" access once that is granted you are given a Refresh token the refresh token can then be used to request a new access token when ever your application needs even if the user is "offline".
Your problem being that JavaScript is client side this means that the code is running in the users browser. Due to major security concerns offline access is not something you can request using JavaScript you need to use a server sided programming language.
Maybe it is a stupid question but I cannot manage to find out how to do it.
I don't think its a stupid question but I do think there are some major wholes in your applicating design.
You first need to think of if users really want you writing to their personal calendar account.
Then you need to consider weather or not you want to be writing and sharing your personal calendar with a bunch of unknown users.
There are also major limitations to the number of writes or inserts you can make to a single calendar per day so storing everyone's calendar data in your own calendar is going to not only messy but it may end up overloading your request limit.
Once all that is added up have you considered the verification process this application is going to have to go though. How will you justify your application to googles security review, I am writing to a users calendar, I am storing users calendar data in my own personal calendar ....

is Google Calendar suitable as backend for a large application

I'm researching an excellent calendar service to host the events to a specific platform; the idea is to use a quick calendar service to host and manage our events.
Since our platform has a frontend, the customer doesn't have direct access to this calendar, instead, he'll use a frontend logic to create and manage events and our backend will link that business logic with a calendar service like Google Calendar service.
Our business logic will separate and organize many customers and different calendars (multi-tenant), allowing multiple customers to have a good experience with scheduling events and each one accessing his own list of events.
Is Google Calendar suitable as a calendar service backend for a large application like that?
After some research, I found that it is possible to use Google Calendar as a backend for my app. You can leverage that using Google Server-To-Server API or "Two-legged OAuth".
A Google API must be created in Google API panel
You must take care because Google API has a quota to limit your requests
If you want more allowance, you can request by contact Google office
More details in:
https://developers.google.com/api-client-library/php/auth/service-accounts
I'll go with my service from scratch. Also, I found a satisfying service.
- http://calendarserver.org/ (worth a try)

How can I make free/busy information available across Calendar server, Google apps and Exchange?

As some background, my company is currently using an Apple Calendar server, some Exchange servers and a Google Apps subscription to provide calendaring for different parts of the organization. I've been tasked with providing free/busy access across these services while we try to take at least one of the services out of the equation.
I've attempted to use Google Interop, but it does not work with Exchange 2013 due to Microsoft eliminating Exchange Public Folder Databases in that release. I've also set up an IIS WebDAV server to attempt to share calendars, but this has shortcomings as well because only one person is able to moderate the calendar, and f/b data can't be queried in the Apple Calendar app - you have to subscribe to a separate f/b calendar.
Are there any suggestions as to how I should proceed?
If you can write your own connectors for each service (ie using propietary API's) you could then expose that information through a custom caldav service.
For example you could use http://milton.io (java) or http://sabre.io/ (php), both allow pulling data from arbitrary data sources.

Notifications and Syncing Exchange/Office-365 Calendars

I'm working on an application (server-side) that requires syncing calendar events.
The application is intended to work with both Google Calendar and Microsoft Exchange calendar services. I already have the Google calendar syncing in place thanks to their use of web-hook notifications when a resource changes, but I'm having trouble figuring out what method to use with Microsoft's service.
All I've been able to find when searching for a Microsoft solution has been related to EWS. Does the Office 365 calendar API provide any sort of notification mechanism? Am I missing some link/relation between O365 and EWS?
Thanks!
We are working on offering webhooks and sync for Office 365 Mail, Calendar and Contact REST APIs, especially for Calendar. Stay tuned.
[UPDATE] You can use Exchange Web Services in the interim. Take a look at SyncFolderItems, SyncFolderHierarchy, and Notifications. In the Notifications doc, you need to look at the info for Push Notifications.
If you are using O365, you will likely want Streaming Notifications as opposed to Push Notifications.

Resources