Using Google Calendar as a source for Event Data in a static Gatsbyjs site
The initial iteration of this plugin is simply to read all single events for a given calendar associated with a GSuite account over a specified duration and expose this information within the Gatsby ecosystem as static data consumed via graphql.
For client name, use the client ID associated with the service account and allow the following scopes: https://www.googleapis.com/auth/calendar.events.readonly, https://www.googleapis.com/auth/calendar.readonly
Configuration options are as follows:
string
. This is the google calendar to be used as a data source.arrayOf(strings)
. The fields to be included in the graphql schema from the Google Calendar APIdate-time
. Upper bound for events to return, by start time of event.date-time
. Lower bound for events to return, by end time of event.string
. Path to .json
key used for authentication of Google API requests in local developmentstring
. Stringified .json
pem file used for authentication of Google API requests in ProductionarrayOf(strings)
. Permissions for Google Clients interaction with API{
includedFields: ['start', 'end', 'summary', 'status', 'organizer', 'description', 'location'],
calendarId: '',
assumedUser: '',
envVar: '',
pemFilePath: '',
// only events after today
timeMin: moment().format(),
// only events two years from now
timeMax: moment().add(2, 'y').format(),
scopes: [
`https://www.googleapis.com/auth/calendar.events.readonly`,
`https://www.googleapis.com/auth/calendar.readonly`
]
};
{
resolve: `gatsby-source-google-calendar-events`,
options: {
envVar: GOOGLE_CALENDAR_SERVICE_ACCOUNT_KEY,
calendarId: '[email protected]',
assumedUser: '[email protected]'
}
},
Pull requests welcome!