# ScriptRunner Connect Managed API for Google Calendar
Managed API for Google Calendar is an API Client for Google Calendar by [Adaptavist](https://www.adaptavist.com/). You can read more about Managed APIs [here](https://docs.adaptavist.com/src/managed-apis).

This is [ScriptRunner Connect](https://scriptrunnerconnect.com) runtime specific version of the Managed API (with `sr-connect` suffix). If you want to use Managed API in any other runtime, have a look at the [runtime agnostic version](https://www.npmjs.com/package/@managed-api/google-calendar-v3-core).

# Supported API calls
- [fetch](https://docs.adaptavist.com/src/managed-apis/managed-api-abstractions)
- CalendarList
    - [getCalendarsFromCalendarList](https://developers.google.com/calendar/api/v3/reference/calendarList/list)
- Event
    - [deleteEvent](https://developers.google.com/calendar/api/v3/reference/events/delete)
    - [getEvent](https://developers.google.com/calendar/api/v3/reference/events/get)
    - [createEvent](https://developers.google.com/calendar/api/v3/reference/events/insert)
    - [getEvents](https://developers.google.com/calendar/api/v3/reference/events/list)
    - [updateEvent](https://developers.google.com/calendar/api/v3/reference/events/update)

# Constructing Managed API
In ScriptRunner Connect a Managed API is constructed for you, but if you need to construct it manually, here's how you can do it:
```typescript
import { GoogleCalendarApi } from '@managed-api/google-calendar-v3-sr-connect';

export default async function() {
    const api = new GoogleCalendarApi('API_CONNECTION_ID');
}
```

# Contact
Feel free to drop ideas, suggestions or improvements into our [Community hub](https://loop.scriptrunnerhq.com/c/integration-forum).

# Changelog

* 2.1.0
    - Removed non-empty body from HEAD requests.

* 2.0.0
    - `Breaking change:` URL and query string parameters are now URL encoded, meaning if you encoded them explicitly before you have to remove your own encoding, otherwise they will get double encoded.

* 0.1.0

    - Added support for the following CalendarList method:

        * [list](https://developers.google.com/calendar/api/v3/reference/calendarList/list) that can be used as `CalendarList.getCalendarsFromCalendarList` or `All.getCalendarsFromCalendarList`.

    - Added support for the following Event methods:

        * [delete](https://developers.google.com/calendar/api/v3/reference/events/delete) that can be used as `Event.deleteEvent` or `All.deleteEvent`.
        * [get](https://developers.google.com/calendar/api/v3/reference/events/get) that can be used as `Event.getEvent` or `All.getEvent`.
        * [insert](https://developers.google.com/calendar/api/v3/reference/events/insert) that can be used as `Event.createEvent` or `All.createEvent`.
        * [list](https://developers.google.com/calendar/api/v3/reference/events/list) that can be used as `Event.getEvents` or `All.getEvents`.
        * [update](https://developers.google.com/calendar/api/v3/reference/events/update) that can be used as `Event.updateEvent` or `All.updateEvent`.

Copyright Adaptavist 2022 (c) All rights reserved