<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Service Agents for Calendar Exchange</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Magdalena Kostoska</string-name>
          <email>magdalena.kostoska@finki.ukim.mk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Krste Bozinoski</string-name>
          <email>bozhinoski.krste@students</email>
          <email>bozhinoski.krste@students.finki.ukim.mk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Goran Velkoski</string-name>
          <email>velkoski.goran@students</email>
          <email>velkoski.goran@students.finki.ukim.mk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sasko Ristov</string-name>
          <email>sashko.ristov@finki.ukim.mk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marjan Gusev</string-name>
          <email>marjan.gushev@finki.ukim.mk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>BCI'12, September 16-20, 2012, Novi Sad, Serbia.</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Copyright c 2012 by the paper's authors. Copying permitted only for private and</institution>
          ,
          <addr-line>academic purposes. This volume is published and copyrighted by its editors., Local Proceedings also appeared in ISBN 978-86-7031-200-5</addr-line>
          ,
          <institution>Faculty of Sciences, University of Novi Sad.</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ss. Cyril and Methodius University, Faculty of Information Sciences and Computer, Engineering</institution>
          ,
          <addr-line>16 Rugjer Boshkovikj, Skopje, FYR</addr-line>
          <country country="MK">Macedonia</country>
        </aff>
      </contrib-group>
      <fpage>142</fpage>
      <lpage>146</lpage>
      <abstract>
        <p>With the emerging use of electronic calendars services on the Internet the users are constantly increasing the number of calendar platforms they use and the need to have them synchronized in one place is increasing. In this paper we discuss the evolution of the electronic services for calendars, and give overview of the APIs they use, along with protocols and interfaces to these services. We introduce an idea to create Calendar Service Agent as a software agent in order to exchange, modify and synchronize information about events from different calendar platforms. The solution is explained by protocols and patterns, as well as the structure and architecture, and platforms included.</p>
      </abstract>
      <kwd-group>
        <kwd>Calendar protocols</kwd>
        <kwd>calendar services</kwd>
        <kwd>calendar interoperability</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Categories and Subject Descriptors</title>
    </sec>
    <sec id="sec-2">
      <title>1. INTRODUCTION</title>
      <p>Nowadays almost every person that uses electronic
services also uses calendars offered by different providers. The
main purpose is to schedule or share information about
meetings, activities or events. Somehow every person becomes
conformable using and depending upon usage of this
electronic service as reminder and organizational tool.</p>
      <p>A lot of services are offered on the market and a typical
Internet user starts to use (or is forced to use) new
calendars for different purposes (new work position, new group,
etc.). The problem arises when at certain point one has
to check several calendar services in order to synchronize all
the events (even those not written in calendars) and to avoid
overlapping or missing an event.</p>
      <p>A typical architecture of different calendar usage is
presented in Figure 1 showing how an user connects to multiple
popular calendar services (using appropriate GUIs) in order
to check the events and schedules. These activities can be
also exhausting.</p>
      <p>In this paper we give an overview of possibilities to
exchange and gather different information from various
calendar providers. Several conceptual models have been
proposed:
• Compatible Collaborative Calendar-Server (CCS) Web</p>
      <p>
        Services [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] which exploit the iCalendar protocol,
• Gadget for Personal Information Integration [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] which
performs data extraction and visualization, and
• Collaborator [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] which provides enterprise users with
a shared workspace to support the activities of virtual
teams.
      </p>
      <p>Yet all these solution do not include most of todays’ popular
calendar services.</p>
      <p>The idea about calendar integration is offered by some
existing products, like Hipmunk and Nimble - social CRM,
but they are neither stand-alone products nor they cover
only some of popular calendar platforms.</p>
      <p>Our initial motivation in this research was to exploit the
calendar interoperability and to create a stand-alone
software agent which joins all the popular calendar services at
one place and offers the users a possibility to join all their
calendar and scheduling events at one place, unlike the
multiple calendar scenario shown on Figure 1. Also our goal
was to exploit the existing technologies to ease the usage of
multiple calendars.</p>
      <p>The paper is organized as follows. Section 2 presents the
common establish and used protocols concerning calendars
and web services. Section 3 briefly describes the
characteristics of the calendar platforms we have used. Section 4 gives
architectural and structural overview of the new proposed
solution. Finally we conclude our work and describe our
future work in Section 5.</p>
    </sec>
    <sec id="sec-3">
      <title>CALENDAR PROTOCOLS AND APIS</title>
      <p>
        The need for storing calendar events and sharing
standards about event storage and organization emerged in 1996
due to the big number calendars and scheduling products
and their limitation to exchange information only among
users within the same system. At that moment some
proprietary standards existed, but there was no single and open
specification. A working group of Internet Engineering Task
Force (IETF) was created and this group outlined three key
areas for future standardization: exchange format,
interoperability protocol and access control [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>This Calendaring and Scheduling (CalSch) workgroup over
time produced few standards:
• Internet Calendaring and Scheduling Core Object
Specification (iCalendar),
• iCalendar Transport-Independent Interoperability
Protocol (iTIP) and
• iCalendar Message-Based Interoperability Protocol (iMIP).</p>
      <p>
        Today iCalendar is widely used standard used by a large
number of popular calendar products like Google
Calendar [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], Apple iCal [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], Microsoft Outlook [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], IBM
Lotus Notes [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] etc... Thanks to this protocol calendar files
can be shared and edited by using WebDav server, which
represents a RESTful interface.
      </p>
      <p>In the following sections we give a short explanation about
iCalendar protocol, the WebDav protocol and the REST
framework. We will also explain the oAuth security
protocol, which is widely used by the calendar services providers.</p>
    </sec>
    <sec id="sec-4">
      <title>2.1 iCalendar</title>
      <p>
        Internet Calendaring and Scheduling Core Object
Specification (iCalendar) standard defines ”data format for
representing and exchanging calendaring and scheduling
information such as events, to-dos, journal entries, and free/busy
information, independent of any particular calendar service
or protocol ” [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>
        It defines a MIME content type and enables exchange
using several standard transport protocols (like HTTP and
SMTP), different file systems and more types of transport
and communication. It provides mapping of the content
type to set of messages for calendaring operations [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
2.2
      </p>
    </sec>
    <sec id="sec-5">
      <title>WebDAV and CalDAV</title>
      <p>
        The first version of the HTTP Extensions for Distributed
Authoring (WEBDAV) specified ”set of methods, headers,
and content-types ancillary to HTTP/1.1 for the
management of resource properties, creation and management of
resource collections, namespace manipulation, and resource
locking (collision avoidance)” [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>
        This protocol was initially created for remote Web site
authoring and it supports remote collaborative authoring of
Web sites and individual documents, as well as remote access
to document-management systems [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ].
      </p>
      <p>
        Calendaring Extensions to WebDAV (CalDAV) defines
”extensions to the Web Distributed Authoring and
Versioning (WebDAV) protocol to specify a standard way of
accessing, managing, and sharing calendaring and scheduling
information based on the iCalendar format” [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
      </p>
      <p>
        The CalDAV protocol provides three key features:
calendar maintenance, calendar queries and calendar security
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
2.3
      </p>
    </sec>
    <sec id="sec-6">
      <title>REST</title>
      <p>
        REST is a framework that defines Web Services with
focus towards resources rather than operations. In the REST
style interactions do not depend on any context stored on a
server [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]. The web applications using REST web services
are being build based on data and data processing. The
main task is to identify resources [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. Almost always this
means cleaner and simpler service structure. By choosing
them as technology, Google, Facebook and Microsoft Live,
confess that REST technology is very useful for data driven
applications and use the popularity of this kind of web
services to encourage more developers to use their services.
      </p>
      <p>
        The four basic design principles of REST web services are
[
        <xref ref-type="bibr" rid="ref27">27</xref>
        ]:
• Use of explicit HTTP methods,
• Stateless design,
• Directory structured-like URIs and
• Transfer data using XML, JSON or even both.
      </p>
      <p>The OAuth 2.0 protocol provides secure authorization in a
simple and standard method from web, mobile and desktop
applications. Third-party applications are using this
protocol to obtain limited access over the private user data stored
on different information system without knowing the user
credentials.</p>
      <p>
        The simplest explanation of the OAuth protocol says:
”For most people, their car is one of their most valuable
possessions, valued in tens of thousands of dollars. They are
convenient places to leave our other valuables like computers
and clothing. Yet we are sometimes required to give them to
a parking attendant or valet whom we’ve not met before. A
valet key solves the problem - it’s an access token with limited
rights that can operate the vehicle but not grant access to the
trunk or glove box.” - Eran Hammer [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
      </p>
      <p>User credentials are replaced with single text string called
Access Token entrusting the client (third-party app) with
limited access over the user data. For obtaining access token
user grant is needed.</p>
      <p>Validity of the token expires after certain amount of time
however, if needed third-party application can be de-authorized
and the generated token will be non-valid. Different
platforms encourage different access token life times based on
their security projections.</p>
      <p>There are three types of tokens: BEARER TOKEN, MAC
TOKEN and SAML. Services that we were using have
implemented the OAuth protocol using the BEARER TOKEN
which actually is big randomly generated number.
Implementation of OAuth protocol which consumes BEARER
TOKEN has to encrypt all service calls using SSL
encryption.</p>
      <p>Figure 2 depicts the so called oAuth dance is presented
with a simple sequence diagram representing the oAuth 2.0
protocol way of work.</p>
    </sec>
    <sec id="sec-7">
      <title>OVERVIEW OF THE CALENDAR SER</title>
    </sec>
    <sec id="sec-8">
      <title>VICE AGENTS</title>
      <p>In this section we overview of the calendar platforms used
in this research and their evolution.
3.1</p>
    </sec>
    <sec id="sec-9">
      <title>Overview of the Included Platforms</title>
      <p>The calendar service agent is working with a variety of
platforms constructed by the social networking prodigies
such as Facebook and Google followed by Microsoft. Their
calendar services are popular and it’s only natural that clients
would want them easy accessible altogether.</p>
      <p>In last 10 years Google, Facebook and Microsoft have
created their own APIs and services regarding their calendars in
order to create the best possible solution for their clients and
the developers working with their platforms. By employing
different technologies and techniques they all converged to
probably, the best solution nowadays. This is the reason
behind the fact that all the platforms i.e. Facebooks Graph
API, Googles Callendar APIv3 and Live Connect API
include communication by using REST and authenticate
external application with oAuth 2.0 protocol. Besides the
functional similarities, the platforms clearly differ as they
all employ different information systems.</p>
      <p>An essential difference between the companies and their
APIs is in their business logic. Google divides their APIs in
spite of Microsoft Live and Facebook who use one API to
share everything. The division of APIs means that the client
produces API dedicated access token whereas Facebook and
Microsoft Life in order to limit their clients only to certain
privileges generate different access tokens using the same
API.</p>
      <p>Another obvious difference between APIs is the format of
the request and response messages, although they are all
using REST web service and communicate using basic HTTP
verbs.
3.2</p>
    </sec>
    <sec id="sec-10">
      <title>Platforms Evolution</title>
      <p>Platforms are subjects to constant improvement and
evolution. During 2011 majority of the platforms started to
deprecate the OAuth 1.0 protocol with his known security
flaw. Main purposes of the evolution from 2011 were
concentrated on enhancing the security of the APIs. However,
the evolution is still ongoing and the new trends are
demanding standardization of the APIs which will result in
decreasing the learning curve for the APIs. The Calendar
Service Agents had to evolve together with the changes of
each platform.</p>
      <p>
        Since October 2011 Facebook platform migrates to OAuth
2.0 and completely removed former Legacy Connect Auth
[
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Following Facebook, Google and Microsoft also started
using OAuth 2.0 as basic authorization protocol [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ].
      </p>
      <p>
        Enhancing the security Facebook announced that from
October 2012 long-lived tokens which never expired will be
replaced with tokens which are valid up to 60 days [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        Google in the version 3 of the Calendar API will replace
GData response format with JSON data objects In order to
satisfy clients needs Google decided to keep GData response
format active, minimizing the clients costs for migration [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ].
GData response format required additional client API to be
installed in order to successfully retrieve data and
installation of this client wasn’t trivial task.
      </p>
    </sec>
    <sec id="sec-11">
      <title>4. SOFTWARE AGENT ARCHITECTURE</title>
      <p>In this section we describe the architecture of the new
proposed software agent for calendars. Due to popularity
of web services, the calendar service agent is in fact a web
service.</p>
      <p>For our research we have developed a prototype using Java
EE. Data for the web service is being stored in the MySQL
database. The calendar agent is constructed as a RPC style
web service using SOAP messages for communication. Data
in the messages are structured as JSON strings because of
JSONs’ clean structure and in order to make the web
service easy to use and integrate. The whole calendar agent
architecture is depicted in Figure 3.</p>
      <p>The calendar agent was implemented using the ”facade”
design pattern by integrating and wrapping up three other
private subagents that can’t be accessed from an external
agent. Each subagent has assignment to execute a task on
a particular platform and to store the results from the task
in the database. Clients can only access the calendar agent
by sending authentication details wrapped in a single JSON
message. The message has to be SSL encrypted and its
contents vary depending on the task being executed. If the
task is successful then the results are stored in the database
and sent back to the user like JSON string.</p>
      <p>Figure 4 depicts the structure of the calendar agent.
Private factory methods, that generate instances of subagents,
construct the calendar agent. Each subagent respectively
implements entire logic for executing tasks for the dedicated
platform. Scalability for the calendar agent is being ensured
by following the open/closed object orientated principle for
subagent development.</p>
      <p>The number of accounts the clients can have is unlimited.
Registration of each account requires valid access token that
will be stored in the database of appropriate calendar agent.</p>
      <p>Functions implemented in the current calendar agent are:
• Fetch events,
• Create event,
• Update event and
• Delete event.</p>
    </sec>
    <sec id="sec-12">
      <title>CONCLUSION AND FUTURE WORK</title>
      <p>This paper shows how to exploit and compose together the
possibilities of calendar interoperability offered by the
existing and popular calendar solutions. We have succeeded in
our intention and we have created Calendar Agent Services
as a one check point for the most popular calendars the user
have today. With this application the user don’t have to
check all the different calendar services he/she uses on their
native platforms, but to have them all in one place. This
solution is service-oriented, easily scalable and modifiable
and it includes the popular calendar services. The whole
solution is built with web services, so the interface can be
changed very fast and it is easily adoptable and maintainable
to different device platforms.</p>
      <p>
        Calendar Service Agents is not the only calendar
synchronization and exchange calendar solution. There are a lot of
Desktop calendar solutions like Desktop Calendar [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] and
Desktop iCalendar [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] but they are restricted in platforms
and can be used only on the pre-installed computer. VueSoft
have developed VueMinder Calendar [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ] but this solution
supports windows platform only, does not support Facebook
synchronization and beside the regular price the user has to
pay additionally to have synchronization in both directions.
Also the Blackberry Default Calendar (CICAL) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], besides
the limitation to the platform have issues with Facebook
synchronization and by a lot of user have been declared as
a non-user-friendly product. There a also a few Android
products like Smooth Calendar [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Fliq Calendar [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] or
CalDAV-Sync [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] but they are also limited only to the
Android platform and not all them support all the popular
services.
      </p>
      <p>Our solution it is unique, it is based on web services, offers
more adaptability since it can be reached from any browser
(including smart phone browsers) and includes today most
popular calendar services.</p>
      <p>Calendar Service Agents is a project that constantly evolves
and adapts. In the last year we had to make a lot of changes
due to change of platforms by different calendar providers,
changed APIs or authentication protocols. At the moment
we provide user interface that can be used via browser.</p>
      <p>Our next milestone is to extend this project with
mobile applications for Android and iOS and to include other
popular calendar services. We also want to include oAuth
2.0 authentication for our agent and to create REST web
services for our project, beside the standard RPC solution.
Our further future work include extending the research to
wide-range cloud-based SaaS calendars interoperability.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>W. W.</given-names>
            <surname>Ahmet Fatih</surname>
          </string-name>
          Mustacoglu and
          <string-name>
            <given-names>G.</given-names>
            <surname>Fox</surname>
          </string-name>
          .
          <article-title>Internet calendaring and scheduling core object specification (icalendar) compatible collaborative calendar-server (ccs) web services</article-title>
          .
          <source>In International Symposium on Collaborative Technologies and Systems</source>
          , pages
          <fpage>12</fpage>
          -
          <lpage>17</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Bi</surname>
          </string-name>
          and
          <string-name>
            <given-names>X.</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>Add oauth authentication support to httpclient</article-title>
          , Dec.
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Blackberry</surname>
          </string-name>
          .
          <article-title>How to merge multiple calendars into one calendar on the blackberry smartphone</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>C.</given-names>
            <surname>Cedergren</surname>
          </string-name>
          . Smooth calendar.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>C.-M. L. Chia-Hui</surname>
            <given-names>Chang</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shih-Feng Yang</surname>
            and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Kayed</surname>
          </string-name>
          .
          <article-title>Gadget creation for personal information integration on web portals</article-title>
          .
          <source>In IEEE International Conference on Information Reuse and Integration</source>
          , pages
          <fpage>469</fpage>
          -
          <lpage>472</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Crow. AppleˆaA</surname>
          </string-name>
          ˘
          <article-title>Z´s ical and ical/vcal format</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>F.</given-names>
            <surname>Dawson</surname>
          </string-name>
          .
          <article-title>Emerging calendaring and scheduling standards</article-title>
          .
          <source>Computer</source>
          ,
          <volume>30</volume>
          (
          <issue>12</issue>
          ):
          <fpage>126</fpage>
          -
          <lpage>128</lpage>
          , Dec.
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Desksware</surname>
          </string-name>
          .
          <article-title>Desktop icalendar - internet desktop calendar</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>L.</given-names>
            <surname>Dusseault</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          .
          <article-title>Open calendar sharing and scheduling with caldav</article-title>
          .
          <source>Internet Computing, IEEE</source>
          ,
          <volume>9</volume>
          (
          <issue>2</issue>
          ):
          <fpage>81</fpage>
          -
          <lpage>89</lpage>
          ,
          <string-name>
            <surname>Mar</surname>
          </string-name>
          .-Apr.
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Facebook</surname>
          </string-name>
          . Authentication,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Facebook</surname>
          </string-name>
          . Completed changes,
          <source>Jul</source>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>M. M. Federico Bergenti</surname>
            and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Garijo</surname>
          </string-name>
          .
          <article-title>Collaborator - enabling enterprise collaboration through agents</article-title>
          .
          <source>In 13th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprises</source>
          , pages
          <fpage>41</fpage>
          -
          <lpage>46</lpage>
          ,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>I. E. T.</given-names>
            <surname>Force</surname>
          </string-name>
          .
          <article-title>Http extensions for distributed authoring - webdav</article-title>
          , Feb.
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>I. E. T.</given-names>
            <surname>Force</surname>
          </string-name>
          .
          <article-title>Calendaring extensions to webdav (caldav</article-title>
          ),
          <source>Mar</source>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>I. E. T.</given-names>
            <surname>Force</surname>
          </string-name>
          .
          <article-title>Internet calendaring and scheduling core object specification (icalendar</article-title>
          ),
          <source>Sept</source>
          .
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gajda</surname>
          </string-name>
          .
          <article-title>Caldav-sync beta</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>C.</given-names>
            <surname>Glezer</surname>
          </string-name>
          .
          <article-title>A conceptual model of an interorganizational intelligent meeting-scheduler (iims)</article-title>
          .
          <source>Journal of Strategic Information Systems</source>
          ,
          <volume>12</volume>
          :
          <fpage>47</fpage>
          -
          <lpage>79</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Google</surname>
          </string-name>
          .
          <article-title>Import events from icalendar or csv files</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <source>[19] Google. Oauth 2</source>
          .0 playground: Open to developers!,
          <source>Nov</source>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Google</surname>
          </string-name>
          .
          <article-title>Migrating to google api java client</article-title>
          ,
          <source>Jun</source>
          .
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>E.</given-names>
            <surname>Hammer</surname>
          </string-name>
          . Explaining oauth,
          <source>Sept</source>
          .
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          <source>[22] IBM. Ibm lotus notes 8</source>
          .
          <article-title>5 icalendar: Interoperability, implementation, and application</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>[23] Mark/Space. Fliq calendar.</mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          .
          <article-title>View and subscribe to internet calendars.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>Microsoft</surname>
          </string-name>
          .
          <article-title>Windows live developer platform updated with oauth 2.0 support and more</article-title>
          ,
          <source>Jun</source>
          .
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Mikko</surname>
          </string-name>
          <string-name>
            <surname>Hartikainen</surname>
          </string-name>
          , Markku Laitkorpi and
          <string-name>
            <given-names>T.</given-names>
            <surname>Systa</surname>
          </string-name>
          .
          <article-title>How to drill down to rest apis: Resource harvesting with a pattern tool</article-title>
          .
          <source>In 13th IEEE International Symposium on Web Systems Evolution (WSE)</source>
          , pages
          <fpage>135</fpage>
          -
          <lpage>140</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rodriguez</surname>
          </string-name>
          .
          <article-title>Restful web services: The basics</article-title>
          ,
          <source>Nov</source>
          .
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>T.</given-names>
            <surname>Software</surname>
          </string-name>
          .
          <source>About desktop calendar.</source>
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>H. S.</given-names>
            <surname>Takeru</surname>
          </string-name>
          <string-name>
            <surname>Inoue</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Hiroshi</given-names>
            <surname>Asakura</surname>
          </string-name>
          and
          <string-name>
            <given-names>N.</given-names>
            <surname>Takahashi</surname>
          </string-name>
          .
          <article-title>Key roles of session state: Not against rest architectural style</article-title>
          .
          <source>In IEEE 34th Annual Computer Software and Applications Conference (COMPSAC)</source>
          , pages
          <fpage>171</fpage>
          -
          <lpage>178</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <surname>VueSoft</surname>
          </string-name>
          .
          <article-title>Vueminder feature overview</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>J.</given-names>
            <surname>Whitehead</surname>
          </string-name>
          .
          <article-title>Webdav: versatile collaboration multiprotocol</article-title>
          .
          <source>Internet Computing, IEEE</source>
          ,
          <volume>9</volume>
          (
          <issue>1</issue>
          ):
          <fpage>75</fpage>
          -
          <lpage>81</lpage>
          ,
          <string-name>
            <surname>Jan</surname>
          </string-name>
          .-Feb.
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>