= Google Calendar Stream Component
:doctitle: Google Calendar Stream
:shortname: google-calendar-stream
:artifactid: camel-google-calendar
:description: Poll for changes in a Google Calendar.
:since: 2.23
:supportlevel: Stable
:tabs-sync-option:
:component-header: Only consumer is supported
//Manually maintained attributes
:group: Google
:camel-spring-boot-name: google-calendar

*Since Camel {since}*

*{component-header}*

The Google Calendar Stream component provides access
to https://calendar.google.com[Calendar] via
the https://developers.google.com/calendar/overview[Google Calendar
Web APIs]. This component provides the streaming feature for Calendar events.

Google Calendar uses
the https://developers.google.com/accounts/docs/OAuth2[OAuth 2.0
protocol] for authenticating a Google account and authorizing access to
user data. Before you can use this component, you will need
to https://developers.google.com/calendar/auth[create an
account and generate OAuth credentials]. Credentials consist of a
`clientId`, `clientSecret`, and a `refreshToken`. A handy resource for
generating a long-lived `refreshToken` is
the https://developers.google.com/oauthplayground[OAuth playground].

In the case of a https://developers.google.com/identity/protocols/oauth2#serviceaccount[service account],
credentials consist of a JSON-file (serviceAccountKey). You can also use
https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority[delegation domain-wide authority]
(delegate) and one, several, or all possible
https://developers.google.com/calendar/api/guides/auth[Calendar API Auth Scopes].

Maven users will need to add the following dependency to their pom.xml
for this component:

[source,xml]
----
<dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-google-calendar</artifactId>
        <!-- use the same version as your Camel core version -->
        <version>x.x.x</version>
</dependency>
----

== URI Format

The Google Calendar Component uses the following URI format:

----
google-calendar-stream://index?[options]
----


// component-configure options: START

// component-configure options: END

// component options: START
include::partial$component-configure-options.adoc[]
include::partial$component-endpoint-options.adoc[]
// component options: END

// endpoint options: START

// endpoint options: END
// component headers: START
include::partial$component-endpoint-headers.adoc[]
// component headers: END


include::spring-boot:partial$starter.adoc[]
