diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.5.0`
+`1.0.0`
 
 
 ## Description
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,3 @@
-import           Distribution.Simple
+import Distribution.Simple
+
 main = defaultMain
diff --git a/gen/Gogol/AppsCalendar.hs b/gen/Gogol/AppsCalendar.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar.hs
@@ -0,0 +1,541 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Manipulates events and other calendar data.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference>
+module Gogol.AppsCalendar
+  ( -- * Configuration
+    appsCalendarService,
+
+    -- * OAuth Scopes
+    Calendar'FullControl,
+    Calendar'Acls,
+    Calendar'Acls'Readonly,
+    Calendar'App'Created,
+    Calendar'Calendarlist,
+    Calendar'Calendarlist'Readonly,
+    Calendar'Calendars,
+    Calendar'Calendars'Readonly,
+    Calendar'Events,
+    Calendar'Events'Freebusy,
+    Calendar'Events'Owned,
+    Calendar'Events'Owned'Readonly,
+    Calendar'Events'Public'Readonly,
+    Calendar'Events'Readonly,
+    Calendar'Freebusy,
+    Calendar'Readonly,
+    Calendar'Settings'Readonly,
+
+    -- * Resources
+
+    -- ** calendar.acl.delete
+    CalendarAclDeleteResource,
+    CalendarAclDelete (..),
+    newCalendarAclDelete,
+
+    -- ** calendar.acl.get
+    CalendarAclGetResource,
+    CalendarAclGet (..),
+    newCalendarAclGet,
+
+    -- ** calendar.acl.insert
+    CalendarAclInsertResource,
+    CalendarAclInsert (..),
+    newCalendarAclInsert,
+
+    -- ** calendar.acl.list
+    CalendarAclListResource,
+    CalendarAclList (..),
+    newCalendarAclList,
+
+    -- ** calendar.acl.patch
+    CalendarAclPatchResource,
+    CalendarAclPatch (..),
+    newCalendarAclPatch,
+
+    -- ** calendar.acl.update
+    CalendarAclUpdateResource,
+    CalendarAclUpdate (..),
+    newCalendarAclUpdate,
+
+    -- ** calendar.acl.watch
+    CalendarAclWatchResource,
+    CalendarAclWatch (..),
+    newCalendarAclWatch,
+
+    -- ** calendar.calendarList.delete
+    CalendarCalendarListDeleteResource,
+    CalendarCalendarListDelete (..),
+    newCalendarCalendarListDelete,
+
+    -- ** calendar.calendarList.get
+    CalendarCalendarListGetResource,
+    CalendarCalendarListGet (..),
+    newCalendarCalendarListGet,
+
+    -- ** calendar.calendarList.insert
+    CalendarCalendarListInsertResource,
+    CalendarCalendarListInsert (..),
+    newCalendarCalendarListInsert,
+
+    -- ** calendar.calendarList.list
+    CalendarCalendarListListResource,
+    CalendarCalendarListList (..),
+    newCalendarCalendarListList,
+
+    -- ** calendar.calendarList.patch
+    CalendarCalendarListPatchResource,
+    CalendarCalendarListPatch (..),
+    newCalendarCalendarListPatch,
+
+    -- ** calendar.calendarList.update
+    CalendarCalendarListUpdateResource,
+    CalendarCalendarListUpdate (..),
+    newCalendarCalendarListUpdate,
+
+    -- ** calendar.calendarList.watch
+    CalendarCalendarListWatchResource,
+    CalendarCalendarListWatch (..),
+    newCalendarCalendarListWatch,
+
+    -- ** calendar.calendars.clear
+    CalendarCalendarsClearResource,
+    CalendarCalendarsClear (..),
+    newCalendarCalendarsClear,
+
+    -- ** calendar.calendars.delete
+    CalendarCalendarsDeleteResource,
+    CalendarCalendarsDelete (..),
+    newCalendarCalendarsDelete,
+
+    -- ** calendar.calendars.get
+    CalendarCalendarsGetResource,
+    CalendarCalendarsGet (..),
+    newCalendarCalendarsGet,
+
+    -- ** calendar.calendars.insert
+    CalendarCalendarsInsertResource,
+    CalendarCalendarsInsert (..),
+    newCalendarCalendarsInsert,
+
+    -- ** calendar.calendars.patch
+    CalendarCalendarsPatchResource,
+    CalendarCalendarsPatch (..),
+    newCalendarCalendarsPatch,
+
+    -- ** calendar.calendars.update
+    CalendarCalendarsUpdateResource,
+    CalendarCalendarsUpdate (..),
+    newCalendarCalendarsUpdate,
+
+    -- ** calendar.channels.stop
+    CalendarChannelsStopResource,
+    CalendarChannelsStop (..),
+    newCalendarChannelsStop,
+
+    -- ** calendar.colors.get
+    CalendarColorsGetResource,
+    CalendarColorsGet (..),
+    newCalendarColorsGet,
+
+    -- ** calendar.events.delete
+    CalendarEventsDeleteResource,
+    CalendarEventsDelete (..),
+    newCalendarEventsDelete,
+
+    -- ** calendar.events.get
+    CalendarEventsGetResource,
+    CalendarEventsGet (..),
+    newCalendarEventsGet,
+
+    -- ** calendar.events.import
+    CalendarEventsImportResource,
+    CalendarEventsImport (..),
+    newCalendarEventsImport,
+
+    -- ** calendar.events.insert
+    CalendarEventsInsertResource,
+    CalendarEventsInsert (..),
+    newCalendarEventsInsert,
+
+    -- ** calendar.events.instances
+    CalendarEventsInstancesResource,
+    CalendarEventsInstances (..),
+    newCalendarEventsInstances,
+
+    -- ** calendar.events.list
+    CalendarEventsListResource,
+    CalendarEventsList (..),
+    newCalendarEventsList,
+
+    -- ** calendar.events.move
+    CalendarEventsMoveResource,
+    CalendarEventsMove (..),
+    newCalendarEventsMove,
+
+    -- ** calendar.events.patch
+    CalendarEventsPatchResource,
+    CalendarEventsPatch (..),
+    newCalendarEventsPatch,
+
+    -- ** calendar.events.quickAdd
+    CalendarEventsQuickAddResource,
+    CalendarEventsQuickAdd (..),
+    newCalendarEventsQuickAdd,
+
+    -- ** calendar.events.update
+    CalendarEventsUpdateResource,
+    CalendarEventsUpdate (..),
+    newCalendarEventsUpdate,
+
+    -- ** calendar.events.watch
+    CalendarEventsWatchResource,
+    CalendarEventsWatch (..),
+    newCalendarEventsWatch,
+
+    -- ** calendar.freebusy.query
+    CalendarFreebusyQueryResource,
+    CalendarFreebusyQuery (..),
+    newCalendarFreebusyQuery,
+
+    -- ** calendar.settings.get
+    CalendarSettingsGetResource,
+    CalendarSettingsGet (..),
+    newCalendarSettingsGet,
+
+    -- ** calendar.settings.list
+    CalendarSettingsListResource,
+    CalendarSettingsList (..),
+    newCalendarSettingsList,
+
+    -- ** calendar.settings.watch
+    CalendarSettingsWatchResource,
+    CalendarSettingsWatch (..),
+    newCalendarSettingsWatch,
+
+    -- * Types
+
+    -- ** Acl
+    Acl (..),
+    newAcl,
+
+    -- ** AclRule
+    AclRule (..),
+    newAclRule,
+
+    -- ** AclRule_Scope
+    AclRule_Scope (..),
+    newAclRule_Scope,
+
+    -- ** Calendar
+    Calendar (..),
+    newCalendar,
+
+    -- ** CalendarList
+    CalendarList (..),
+    newCalendarList,
+
+    -- ** CalendarListEntry
+    CalendarListEntry (..),
+    newCalendarListEntry,
+
+    -- ** CalendarListEntry_NotificationSettings
+    CalendarListEntry_NotificationSettings (..),
+    newCalendarListEntry_NotificationSettings,
+
+    -- ** CalendarNotification
+    CalendarNotification (..),
+    newCalendarNotification,
+
+    -- ** Channel
+    Channel (..),
+    newChannel,
+
+    -- ** Channel_Params
+    Channel_Params (..),
+    newChannel_Params,
+
+    -- ** ColorDefinition
+    ColorDefinition (..),
+    newColorDefinition,
+
+    -- ** Colors
+    Colors (..),
+    newColors,
+
+    -- ** Colors_Calendar
+    Colors_Calendar (..),
+    newColors_Calendar,
+
+    -- ** Colors_Event
+    Colors_Event (..),
+    newColors_Event,
+
+    -- ** ConferenceData
+    ConferenceData (..),
+    newConferenceData,
+
+    -- ** ConferenceParameters
+    ConferenceParameters (..),
+    newConferenceParameters,
+
+    -- ** ConferenceParametersAddOnParameters
+    ConferenceParametersAddOnParameters (..),
+    newConferenceParametersAddOnParameters,
+
+    -- ** ConferenceParametersAddOnParameters_Parameters
+    ConferenceParametersAddOnParameters_Parameters (..),
+    newConferenceParametersAddOnParameters_Parameters,
+
+    -- ** ConferenceProperties
+    ConferenceProperties (..),
+    newConferenceProperties,
+
+    -- ** ConferenceRequestStatus
+    ConferenceRequestStatus (..),
+    newConferenceRequestStatus,
+
+    -- ** ConferenceSolution
+    ConferenceSolution (..),
+    newConferenceSolution,
+
+    -- ** ConferenceSolutionKey
+    ConferenceSolutionKey (..),
+    newConferenceSolutionKey,
+
+    -- ** CreateConferenceRequest
+    CreateConferenceRequest (..),
+    newCreateConferenceRequest,
+
+    -- ** EntryPoint
+    EntryPoint (..),
+    newEntryPoint,
+
+    -- ** Error'
+    Error' (..),
+    newError,
+
+    -- ** Event
+    Event (..),
+    newEvent,
+
+    -- ** Event_Creator
+    Event_Creator (..),
+    newEvent_Creator,
+
+    -- ** Event_ExtendedProperties
+    Event_ExtendedProperties (..),
+    newEvent_ExtendedProperties,
+
+    -- ** Event_ExtendedProperties_Private
+    Event_ExtendedProperties_Private (..),
+    newEvent_ExtendedProperties_Private,
+
+    -- ** Event_ExtendedProperties_Shared
+    Event_ExtendedProperties_Shared (..),
+    newEvent_ExtendedProperties_Shared,
+
+    -- ** Event_Gadget
+    Event_Gadget (..),
+    newEvent_Gadget,
+
+    -- ** Event_Gadget_Preferences
+    Event_Gadget_Preferences (..),
+    newEvent_Gadget_Preferences,
+
+    -- ** Event_Organizer
+    Event_Organizer (..),
+    newEvent_Organizer,
+
+    -- ** Event_Reminders
+    Event_Reminders (..),
+    newEvent_Reminders,
+
+    -- ** Event_Source
+    Event_Source (..),
+    newEvent_Source,
+
+    -- ** EventAttachment
+    EventAttachment (..),
+    newEventAttachment,
+
+    -- ** EventAttendee
+    EventAttendee (..),
+    newEventAttendee,
+
+    -- ** EventBirthdayProperties
+    EventBirthdayProperties (..),
+    newEventBirthdayProperties,
+
+    -- ** EventDateTime
+    EventDateTime (..),
+    newEventDateTime,
+
+    -- ** EventFocusTimeProperties
+    EventFocusTimeProperties (..),
+    newEventFocusTimeProperties,
+
+    -- ** EventOutOfOfficeProperties
+    EventOutOfOfficeProperties (..),
+    newEventOutOfOfficeProperties,
+
+    -- ** EventReminder
+    EventReminder (..),
+    newEventReminder,
+
+    -- ** EventWorkingLocationProperties
+    EventWorkingLocationProperties (..),
+    newEventWorkingLocationProperties,
+
+    -- ** EventWorkingLocationProperties_CustomLocation
+    EventWorkingLocationProperties_CustomLocation (..),
+    newEventWorkingLocationProperties_CustomLocation,
+
+    -- ** EventWorkingLocationProperties_OfficeLocation
+    EventWorkingLocationProperties_OfficeLocation (..),
+    newEventWorkingLocationProperties_OfficeLocation,
+
+    -- ** Events
+    Events (..),
+    newEvents,
+
+    -- ** FreeBusyCalendar
+    FreeBusyCalendar (..),
+    newFreeBusyCalendar,
+
+    -- ** FreeBusyGroup
+    FreeBusyGroup (..),
+    newFreeBusyGroup,
+
+    -- ** FreeBusyRequest
+    FreeBusyRequest (..),
+    newFreeBusyRequest,
+
+    -- ** FreeBusyRequestItem
+    FreeBusyRequestItem (..),
+    newFreeBusyRequestItem,
+
+    -- ** FreeBusyResponse
+    FreeBusyResponse (..),
+    newFreeBusyResponse,
+
+    -- ** FreeBusyResponse_Calendars
+    FreeBusyResponse_Calendars (..),
+    newFreeBusyResponse_Calendars,
+
+    -- ** FreeBusyResponse_Groups
+    FreeBusyResponse_Groups (..),
+    newFreeBusyResponse_Groups,
+
+    -- ** Setting
+    Setting (..),
+    newSetting,
+
+    -- ** Settings
+    Settings (..),
+    newSettings,
+
+    -- ** TimePeriod
+    TimePeriod (..),
+    newTimePeriod,
+
+    -- ** CalendarListListMinAccessRole
+    CalendarListListMinAccessRole (..),
+
+    -- ** CalendarListWatchMinAccessRole
+    CalendarListWatchMinAccessRole (..),
+
+    -- ** EventsDeleteSendUpdates
+    EventsDeleteSendUpdates (..),
+
+    -- ** EventsInsertSendUpdates
+    EventsInsertSendUpdates (..),
+
+    -- ** EventsListEventTypes
+    EventsListEventTypes (..),
+
+    -- ** EventsListOrderBy
+    EventsListOrderBy (..),
+
+    -- ** EventsMoveSendUpdates
+    EventsMoveSendUpdates (..),
+
+    -- ** EventsPatchSendUpdates
+    EventsPatchSendUpdates (..),
+
+    -- ** EventsQuickAddSendUpdates
+    EventsQuickAddSendUpdates (..),
+
+    -- ** EventsUpdateSendUpdates
+    EventsUpdateSendUpdates (..),
+
+    -- ** EventsWatchEventTypes
+    EventsWatchEventTypes (..),
+
+    -- ** EventsWatchOrderBy
+    EventsWatchOrderBy (..),
+  )
+where
+
+import Gogol.AppsCalendar.Calendar.Acl.Delete
+import Gogol.AppsCalendar.Calendar.Acl.Get
+import Gogol.AppsCalendar.Calendar.Acl.Insert
+import Gogol.AppsCalendar.Calendar.Acl.List
+import Gogol.AppsCalendar.Calendar.Acl.Patch
+import Gogol.AppsCalendar.Calendar.Acl.Update
+import Gogol.AppsCalendar.Calendar.Acl.Watch
+import Gogol.AppsCalendar.Calendar.CalendarList.Delete
+import Gogol.AppsCalendar.Calendar.CalendarList.Get
+import Gogol.AppsCalendar.Calendar.CalendarList.Insert
+import Gogol.AppsCalendar.Calendar.CalendarList.List
+import Gogol.AppsCalendar.Calendar.CalendarList.Patch
+import Gogol.AppsCalendar.Calendar.CalendarList.Update
+import Gogol.AppsCalendar.Calendar.CalendarList.Watch
+import Gogol.AppsCalendar.Calendar.Calendars.Clear
+import Gogol.AppsCalendar.Calendar.Calendars.Delete
+import Gogol.AppsCalendar.Calendar.Calendars.Get
+import Gogol.AppsCalendar.Calendar.Calendars.Insert
+import Gogol.AppsCalendar.Calendar.Calendars.Patch
+import Gogol.AppsCalendar.Calendar.Calendars.Update
+import Gogol.AppsCalendar.Calendar.Channels.Stop
+import Gogol.AppsCalendar.Calendar.Colors.Get
+import Gogol.AppsCalendar.Calendar.Events.Delete
+import Gogol.AppsCalendar.Calendar.Events.Get
+import Gogol.AppsCalendar.Calendar.Events.Import
+import Gogol.AppsCalendar.Calendar.Events.Insert
+import Gogol.AppsCalendar.Calendar.Events.Instances
+import Gogol.AppsCalendar.Calendar.Events.List
+import Gogol.AppsCalendar.Calendar.Events.Move
+import Gogol.AppsCalendar.Calendar.Events.Patch
+import Gogol.AppsCalendar.Calendar.Events.QuickAdd
+import Gogol.AppsCalendar.Calendar.Events.Update
+import Gogol.AppsCalendar.Calendar.Events.Watch
+import Gogol.AppsCalendar.Calendar.Freebusy.Query
+import Gogol.AppsCalendar.Calendar.Settings.Get
+import Gogol.AppsCalendar.Calendar.Settings.List
+import Gogol.AppsCalendar.Calendar.Settings.Watch
+import Gogol.AppsCalendar.Types
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Delete.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Delete.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an access control rule.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.delete@.
+module Gogol.AppsCalendar.Calendar.Acl.Delete
+  ( -- * Resource
+    CalendarAclDeleteResource,
+
+    -- ** Constructing a Request
+    CalendarAclDelete (..),
+    newCalendarAclDelete,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.delete@ method which the
+-- 'CalendarAclDelete' request conforms to.
+type CalendarAclDeleteResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.Capture "ruleId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes an access control rule.
+--
+-- /See:/ 'newCalendarAclDelete' smart constructor.
+data CalendarAclDelete = CalendarAclDelete
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | ACL rule identifier.
+    ruleId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclDelete' with the minimum fields required to make a request.
+newCalendarAclDelete ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  ACL rule identifier. See 'ruleId'.
+  Core.Text ->
+  CalendarAclDelete
+newCalendarAclDelete calendarId ruleId =
+  CalendarAclDelete {calendarId = calendarId, ruleId = ruleId}
+
+instance Core.GoogleRequest CalendarAclDelete where
+  type Rs CalendarAclDelete = ()
+  type
+    Scopes CalendarAclDelete =
+      '[Calendar'FullControl, Calendar'Acls]
+  requestClient CalendarAclDelete {..} =
+    go calendarId ruleId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Get.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Get.hs
@@ -0,0 +1,91 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns an access control rule.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.get@.
+module Gogol.AppsCalendar.Calendar.Acl.Get
+  ( -- * Resource
+    CalendarAclGetResource,
+
+    -- ** Constructing a Request
+    CalendarAclGet (..),
+    newCalendarAclGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.get@ method which the
+-- 'CalendarAclGet' request conforms to.
+type CalendarAclGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.Capture "ruleId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AclRule
+
+-- | Returns an access control rule.
+--
+-- /See:/ 'newCalendarAclGet' smart constructor.
+data CalendarAclGet = CalendarAclGet
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | ACL rule identifier.
+    ruleId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclGet' with the minimum fields required to make a request.
+newCalendarAclGet ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  ACL rule identifier. See 'ruleId'.
+  Core.Text ->
+  CalendarAclGet
+newCalendarAclGet calendarId ruleId =
+  CalendarAclGet {calendarId = calendarId, ruleId = ruleId}
+
+instance Core.GoogleRequest CalendarAclGet where
+  type Rs CalendarAclGet = AclRule
+  type
+    Scopes CalendarAclGet =
+      '[ Calendar'FullControl,
+         Calendar'Acls,
+         Calendar'Acls'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarAclGet {..} =
+    go calendarId ruleId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Insert.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Insert.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an access control rule.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.insert@.
+module Gogol.AppsCalendar.Calendar.Acl.Insert
+  ( -- * Resource
+    CalendarAclInsertResource,
+
+    -- ** Constructing a Request
+    CalendarAclInsert (..),
+    newCalendarAclInsert,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.insert@ method which the
+-- 'CalendarAclInsert' request conforms to.
+type CalendarAclInsertResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AclRule
+    Core.:> Core.Post '[Core.JSON] AclRule
+
+-- | Creates an access control rule.
+--
+-- /See:/ 'newCalendarAclInsert' smart constructor.
+data CalendarAclInsert = CalendarAclInsert
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AclRule,
+    -- | Whether to send notifications about the calendar sharing change. Optional. The default is True.
+    sendNotifications :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclInsert' with the minimum fields required to make a request.
+newCalendarAclInsert ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AclRule ->
+  CalendarAclInsert
+newCalendarAclInsert calendarId payload =
+  CalendarAclInsert
+    { calendarId = calendarId,
+      payload = payload,
+      sendNotifications = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarAclInsert where
+  type Rs CalendarAclInsert = AclRule
+  type
+    Scopes CalendarAclInsert =
+      '[Calendar'FullControl, Calendar'Acls]
+  requestClient CalendarAclInsert {..} =
+    go
+      calendarId
+      sendNotifications
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/List.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/List.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the rules in the access control list for the calendar.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.list@.
+module Gogol.AppsCalendar.Calendar.Acl.List
+  ( -- * Resource
+    CalendarAclListResource,
+
+    -- ** Constructing a Request
+    CalendarAclList (..),
+    newCalendarAclList,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.list@ method which the
+-- 'CalendarAclList' request conforms to.
+type CalendarAclListResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Acl
+
+-- | Returns the rules in the access control list for the calendar.
+--
+-- /See:/ 'newCalendarAclList' smart constructor.
+data CalendarAclList = CalendarAclList
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclList' with the minimum fields required to make a request.
+newCalendarAclList ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarAclList
+newCalendarAclList calendarId =
+  CalendarAclList
+    { calendarId = calendarId,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      showDeleted = Core.Nothing,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarAclList where
+  type Rs CalendarAclList = Acl
+  type
+    Scopes CalendarAclList =
+      '[Calendar'FullControl, Calendar'Acls, Calendar'Acls'Readonly]
+  requestClient CalendarAclList {..} =
+    go
+      calendarId
+      maxResults
+      pageToken
+      showDeleted
+      syncToken
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclListResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Patch.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Patch.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an access control rule. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.patch@.
+module Gogol.AppsCalendar.Calendar.Acl.Patch
+  ( -- * Resource
+    CalendarAclPatchResource,
+
+    -- ** Constructing a Request
+    CalendarAclPatch (..),
+    newCalendarAclPatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.patch@ method which the
+-- 'CalendarAclPatch' request conforms to.
+type CalendarAclPatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.Capture "ruleId" Core.Text
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AclRule
+    Core.:> Core.Patch '[Core.JSON] AclRule
+
+-- | Updates an access control rule. This method supports patch semantics.
+--
+-- /See:/ 'newCalendarAclPatch' smart constructor.
+data CalendarAclPatch = CalendarAclPatch
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AclRule,
+    -- | ACL rule identifier.
+    ruleId :: Core.Text,
+    -- | Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.
+    sendNotifications :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclPatch' with the minimum fields required to make a request.
+newCalendarAclPatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AclRule ->
+  -- |  ACL rule identifier. See 'ruleId'.
+  Core.Text ->
+  CalendarAclPatch
+newCalendarAclPatch calendarId payload ruleId =
+  CalendarAclPatch
+    { calendarId = calendarId,
+      payload = payload,
+      ruleId = ruleId,
+      sendNotifications = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarAclPatch where
+  type Rs CalendarAclPatch = AclRule
+  type
+    Scopes CalendarAclPatch =
+      '[Calendar'FullControl, Calendar'Acls]
+  requestClient CalendarAclPatch {..} =
+    go
+      calendarId
+      ruleId
+      sendNotifications
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Update.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Update.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an access control rule.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.update@.
+module Gogol.AppsCalendar.Calendar.Acl.Update
+  ( -- * Resource
+    CalendarAclUpdateResource,
+
+    -- ** Constructing a Request
+    CalendarAclUpdate (..),
+    newCalendarAclUpdate,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.update@ method which the
+-- 'CalendarAclUpdate' request conforms to.
+type CalendarAclUpdateResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> Core.Capture "ruleId" Core.Text
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AclRule
+    Core.:> Core.Put '[Core.JSON] AclRule
+
+-- | Updates an access control rule.
+--
+-- /See:/ 'newCalendarAclUpdate' smart constructor.
+data CalendarAclUpdate = CalendarAclUpdate
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AclRule,
+    -- | ACL rule identifier.
+    ruleId :: Core.Text,
+    -- | Whether to send notifications about the calendar sharing change. Note that there are no notifications on access removal. Optional. The default is True.
+    sendNotifications :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclUpdate' with the minimum fields required to make a request.
+newCalendarAclUpdate ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AclRule ->
+  -- |  ACL rule identifier. See 'ruleId'.
+  Core.Text ->
+  CalendarAclUpdate
+newCalendarAclUpdate calendarId payload ruleId =
+  CalendarAclUpdate
+    { calendarId = calendarId,
+      payload = payload,
+      ruleId = ruleId,
+      sendNotifications = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarAclUpdate where
+  type Rs CalendarAclUpdate = AclRule
+  type
+    Scopes CalendarAclUpdate =
+      '[Calendar'FullControl, Calendar'Acls]
+  requestClient CalendarAclUpdate {..} =
+    go
+      calendarId
+      ruleId
+      sendNotifications
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Acl/Watch.hs b/gen/Gogol/AppsCalendar/Calendar/Acl/Watch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Acl/Watch.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Acl.Watch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Watch for changes to ACL resources.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.watch@.
+module Gogol.AppsCalendar.Calendar.Acl.Watch
+  ( -- * Resource
+    CalendarAclWatchResource,
+
+    -- ** Constructing a Request
+    CalendarAclWatch (..),
+    newCalendarAclWatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.acl.watch@ method which the
+-- 'CalendarAclWatch' request conforms to.
+type CalendarAclWatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "acl"
+    Core.:> "watch"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Channel
+    Core.:> Core.Post '[Core.JSON] Channel
+
+-- | Watch for changes to ACL resources.
+--
+-- /See:/ 'newCalendarAclWatch' smart constructor.
+data CalendarAclWatch = CalendarAclWatch
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Channel,
+    -- | Whether to include deleted ACLs in the result. Deleted ACLs are represented by role equal to \"none\". Deleted ACLs will always be included if syncToken is provided. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All entries deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarAclWatch' with the minimum fields required to make a request.
+newCalendarAclWatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Channel ->
+  CalendarAclWatch
+newCalendarAclWatch calendarId payload =
+  CalendarAclWatch
+    { calendarId = calendarId,
+      maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      payload = payload,
+      showDeleted = Core.Nothing,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarAclWatch where
+  type Rs CalendarAclWatch = Channel
+  type
+    Scopes CalendarAclWatch =
+      '[Calendar'FullControl, Calendar'Acls, Calendar'Acls'Readonly]
+  requestClient CalendarAclWatch {..} =
+    go
+      calendarId
+      maxResults
+      pageToken
+      showDeleted
+      syncToken
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarAclWatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Delete.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Delete.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes a calendar from the user\'s calendar list.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.delete@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Delete
+  ( -- * Resource
+    CalendarCalendarListDeleteResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListDelete (..),
+    newCalendarCalendarListDelete,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.delete@ method which the
+-- 'CalendarCalendarListDelete' request conforms to.
+type CalendarCalendarListDeleteResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Removes a calendar from the user\'s calendar list.
+--
+-- /See:/ 'newCalendarCalendarListDelete' smart constructor.
+newtype CalendarCalendarListDelete = CalendarCalendarListDelete
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListDelete' with the minimum fields required to make a request.
+newCalendarCalendarListDelete ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarCalendarListDelete
+newCalendarCalendarListDelete calendarId =
+  CalendarCalendarListDelete {calendarId = calendarId}
+
+instance Core.GoogleRequest CalendarCalendarListDelete where
+  type Rs CalendarCalendarListDelete = ()
+  type
+    Scopes CalendarCalendarListDelete =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendarlist
+       ]
+  requestClient CalendarCalendarListDelete {..} =
+    go calendarId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Get.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Get.hs
@@ -0,0 +1,88 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a calendar from the user\'s calendar list.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.get@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Get
+  ( -- * Resource
+    CalendarCalendarListGetResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListGet (..),
+    newCalendarCalendarListGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.get@ method which the
+-- 'CalendarCalendarListGet' request conforms to.
+type CalendarCalendarListGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CalendarListEntry
+
+-- | Returns a calendar from the user\'s calendar list.
+--
+-- /See:/ 'newCalendarCalendarListGet' smart constructor.
+newtype CalendarCalendarListGet = CalendarCalendarListGet
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListGet' with the minimum fields required to make a request.
+newCalendarCalendarListGet ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarCalendarListGet
+newCalendarCalendarListGet calendarId =
+  CalendarCalendarListGet {calendarId = calendarId}
+
+instance Core.GoogleRequest CalendarCalendarListGet where
+  type Rs CalendarCalendarListGet = CalendarListEntry
+  type
+    Scopes CalendarCalendarListGet =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendarlist,
+         Calendar'Calendarlist'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarCalendarListGet {..} =
+    go calendarId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Insert.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Insert.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts an existing calendar into the user\'s calendar list.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.insert@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Insert
+  ( -- * Resource
+    CalendarCalendarListInsertResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListInsert (..),
+    newCalendarCalendarListInsert,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.insert@ method which the
+-- 'CalendarCalendarListInsert' request conforms to.
+type CalendarCalendarListInsertResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.QueryParam "colorRgbFormat" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] CalendarListEntry
+    Core.:> Core.Post '[Core.JSON] CalendarListEntry
+
+-- | Inserts an existing calendar into the user\'s calendar list.
+--
+-- /See:/ 'newCalendarCalendarListInsert' smart constructor.
+data CalendarCalendarListInsert = CalendarCalendarListInsert
+  { -- | Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.
+    colorRgbFormat :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: CalendarListEntry
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListInsert' with the minimum fields required to make a request.
+newCalendarCalendarListInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  CalendarListEntry ->
+  CalendarCalendarListInsert
+newCalendarCalendarListInsert payload =
+  CalendarCalendarListInsert
+    { colorRgbFormat = Core.Nothing,
+      payload = payload
+    }
+
+instance Core.GoogleRequest CalendarCalendarListInsert where
+  type Rs CalendarCalendarListInsert = CalendarListEntry
+  type
+    Scopes CalendarCalendarListInsert =
+      '[Calendar'FullControl, Calendar'Calendarlist]
+  requestClient CalendarCalendarListInsert {..} =
+    go
+      colorRgbFormat
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/List.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/List.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the calendars on the user\'s calendar list.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.list@.
+module Gogol.AppsCalendar.Calendar.CalendarList.List
+  ( -- * Resource
+    CalendarCalendarListListResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListList (..),
+    newCalendarCalendarListList,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.list@ method which the
+-- 'CalendarCalendarListList' request conforms to.
+type CalendarCalendarListListResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "minAccessRole" CalendarListListMinAccessRole
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "showHidden" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CalendarList
+
+-- | Returns the calendars on the user\'s calendar list.
+--
+-- /See:/ 'newCalendarCalendarListList' smart constructor.
+data CalendarCalendarListList = CalendarCalendarListList
+  { -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | The minimum access role for the user in the returned entries. Optional. The default is no restriction.
+    minAccessRole :: (Core.Maybe CalendarListListMinAccessRole),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Whether to include deleted calendar list entries in the result. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Whether to show hidden entries. Optional. The default is False.
+    showHidden :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won\'t be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False. To ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListList' with the minimum fields required to make a request.
+newCalendarCalendarListList ::
+  CalendarCalendarListList
+newCalendarCalendarListList =
+  CalendarCalendarListList
+    { maxResults = Core.Nothing,
+      minAccessRole = Core.Nothing,
+      pageToken = Core.Nothing,
+      showDeleted = Core.Nothing,
+      showHidden = Core.Nothing,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarCalendarListList where
+  type Rs CalendarCalendarListList = CalendarList
+  type
+    Scopes CalendarCalendarListList =
+      '[ Calendar'FullControl,
+         Calendar'Calendarlist,
+         Calendar'Calendarlist'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarCalendarListList {..} =
+    go
+      maxResults
+      minAccessRole
+      pageToken
+      showDeleted
+      showHidden
+      syncToken
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListListResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Patch.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Patch.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing calendar on the user\'s calendar list. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.patch@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Patch
+  ( -- * Resource
+    CalendarCalendarListPatchResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListPatch (..),
+    newCalendarCalendarListPatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.patch@ method which the
+-- 'CalendarCalendarListPatch' request conforms to.
+type CalendarCalendarListPatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "colorRgbFormat" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] CalendarListEntry
+    Core.:> Core.Patch '[Core.JSON] CalendarListEntry
+
+-- | Updates an existing calendar on the user\'s calendar list. This method supports patch semantics.
+--
+-- /See:/ 'newCalendarCalendarListPatch' smart constructor.
+data CalendarCalendarListPatch = CalendarCalendarListPatch
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.
+    colorRgbFormat :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: CalendarListEntry
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListPatch' with the minimum fields required to make a request.
+newCalendarCalendarListPatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  CalendarListEntry ->
+  CalendarCalendarListPatch
+newCalendarCalendarListPatch calendarId payload =
+  CalendarCalendarListPatch
+    { calendarId = calendarId,
+      colorRgbFormat = Core.Nothing,
+      payload = payload
+    }
+
+instance Core.GoogleRequest CalendarCalendarListPatch where
+  type Rs CalendarCalendarListPatch = CalendarListEntry
+  type
+    Scopes CalendarCalendarListPatch =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendarlist
+       ]
+  requestClient CalendarCalendarListPatch {..} =
+    go
+      calendarId
+      colorRgbFormat
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Update.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Update.hs
@@ -0,0 +1,103 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an existing calendar on the user\'s calendar list.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.update@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Update
+  ( -- * Resource
+    CalendarCalendarListUpdateResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListUpdate (..),
+    newCalendarCalendarListUpdate,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.update@ method which the
+-- 'CalendarCalendarListUpdate' request conforms to.
+type CalendarCalendarListUpdateResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "colorRgbFormat" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] CalendarListEntry
+    Core.:> Core.Put '[Core.JSON] CalendarListEntry
+
+-- | Updates an existing calendar on the user\'s calendar list.
+--
+-- /See:/ 'newCalendarCalendarListUpdate' smart constructor.
+data CalendarCalendarListUpdate = CalendarCalendarListUpdate
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Whether to use the foregroundColor and backgroundColor fields to write the calendar colors (RGB). If this feature is used, the index-based colorId field will be set to the best matching option automatically. Optional. The default is False.
+    colorRgbFormat :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: CalendarListEntry
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListUpdate' with the minimum fields required to make a request.
+newCalendarCalendarListUpdate ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  CalendarListEntry ->
+  CalendarCalendarListUpdate
+newCalendarCalendarListUpdate calendarId payload =
+  CalendarCalendarListUpdate
+    { calendarId = calendarId,
+      colorRgbFormat = Core.Nothing,
+      payload = payload
+    }
+
+instance Core.GoogleRequest CalendarCalendarListUpdate where
+  type Rs CalendarCalendarListUpdate = CalendarListEntry
+  type
+    Scopes CalendarCalendarListUpdate =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendarlist
+       ]
+  requestClient CalendarCalendarListUpdate {..} =
+    go
+      calendarId
+      colorRgbFormat
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/CalendarList/Watch.hs b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Watch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/CalendarList/Watch.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.CalendarList.Watch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Watch for changes to CalendarList resources.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.watch@.
+module Gogol.AppsCalendar.Calendar.CalendarList.Watch
+  ( -- * Resource
+    CalendarCalendarListWatchResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarListWatch (..),
+    newCalendarCalendarListWatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendarList.watch@ method which the
+-- 'CalendarCalendarListWatch' request conforms to.
+type CalendarCalendarListWatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "calendarList"
+    Core.:> "watch"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "minAccessRole" CalendarListWatchMinAccessRole
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "showHidden" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Channel
+    Core.:> Core.Post '[Core.JSON] Channel
+
+-- | Watch for changes to CalendarList resources.
+--
+-- /See:/ 'newCalendarCalendarListWatch' smart constructor.
+data CalendarCalendarListWatch = CalendarCalendarListWatch
+  { -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | The minimum access role for the user in the returned entries. Optional. The default is no restriction.
+    minAccessRole :: (Core.Maybe CalendarListWatchMinAccessRole),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Channel,
+    -- | Whether to include deleted calendar list entries in the result. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Whether to show hidden entries. Optional. The default is False.
+    showHidden :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If only read-only fields such as calendar properties or ACLs have changed, the entry won\'t be returned. All entries deleted and hidden since the previous list request will always be in the result set and it is not allowed to set showDeleted neither showHidden to False. To ensure client state consistency minAccessRole query parameter cannot be specified together with nextSyncToken. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarListWatch' with the minimum fields required to make a request.
+newCalendarCalendarListWatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Channel ->
+  CalendarCalendarListWatch
+newCalendarCalendarListWatch payload =
+  CalendarCalendarListWatch
+    { maxResults = Core.Nothing,
+      minAccessRole = Core.Nothing,
+      pageToken = Core.Nothing,
+      payload = payload,
+      showDeleted = Core.Nothing,
+      showHidden = Core.Nothing,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarCalendarListWatch where
+  type Rs CalendarCalendarListWatch = Channel
+  type
+    Scopes CalendarCalendarListWatch =
+      '[ Calendar'FullControl,
+         Calendar'Calendarlist,
+         Calendar'Calendarlist'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarCalendarListWatch {..} =
+    go
+      maxResults
+      minAccessRole
+      pageToken
+      showDeleted
+      showHidden
+      syncToken
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarListWatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Clear.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Clear.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Clear.hs
@@ -0,0 +1,82 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Clear
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.clear@.
+module Gogol.AppsCalendar.Calendar.Calendars.Clear
+  ( -- * Resource
+    CalendarCalendarsClearResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsClear (..),
+    newCalendarCalendarsClear,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.clear@ method which the
+-- 'CalendarCalendarsClear' request conforms to.
+type CalendarCalendarsClearResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "clear"
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] ()
+
+-- | Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.
+--
+-- /See:/ 'newCalendarCalendarsClear' smart constructor.
+newtype CalendarCalendarsClear = CalendarCalendarsClear
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsClear' with the minimum fields required to make a request.
+newCalendarCalendarsClear ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarCalendarsClear
+newCalendarCalendarsClear calendarId =
+  CalendarCalendarsClear {calendarId = calendarId}
+
+instance Core.GoogleRequest CalendarCalendarsClear where
+  type Rs CalendarCalendarsClear = ()
+  type
+    Scopes CalendarCalendarsClear =
+      '[Calendar'FullControl, Calendar'Calendars]
+  requestClient CalendarCalendarsClear {..} =
+    go calendarId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsClearResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Delete.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Delete.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.delete@.
+module Gogol.AppsCalendar.Calendar.Calendars.Delete
+  ( -- * Resource
+    CalendarCalendarsDeleteResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsDelete (..),
+    newCalendarCalendarsDelete,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.delete@ method which the
+-- 'CalendarCalendarsDelete' request conforms to.
+type CalendarCalendarsDeleteResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.
+--
+-- /See:/ 'newCalendarCalendarsDelete' smart constructor.
+newtype CalendarCalendarsDelete = CalendarCalendarsDelete
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsDelete' with the minimum fields required to make a request.
+newCalendarCalendarsDelete ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarCalendarsDelete
+newCalendarCalendarsDelete calendarId =
+  CalendarCalendarsDelete {calendarId = calendarId}
+
+instance Core.GoogleRequest CalendarCalendarsDelete where
+  type Rs CalendarCalendarsDelete = ()
+  type
+    Scopes CalendarCalendarsDelete =
+      '[Calendar'FullControl, Calendar'App'Created, Calendar'Calendars]
+  requestClient CalendarCalendarsDelete {..} =
+    go calendarId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Get.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Get.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns metadata for a calendar.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.get@.
+module Gogol.AppsCalendar.Calendar.Calendars.Get
+  ( -- * Resource
+    CalendarCalendarsGetResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsGet (..),
+    newCalendarCalendarsGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.get@ method which the
+-- 'CalendarCalendarsGet' request conforms to.
+type CalendarCalendarsGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Calendar
+
+-- | Returns metadata for a calendar.
+--
+-- /See:/ 'newCalendarCalendarsGet' smart constructor.
+newtype CalendarCalendarsGet = CalendarCalendarsGet
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsGet' with the minimum fields required to make a request.
+newCalendarCalendarsGet ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarCalendarsGet
+newCalendarCalendarsGet calendarId =
+  CalendarCalendarsGet {calendarId = calendarId}
+
+instance Core.GoogleRequest CalendarCalendarsGet where
+  type Rs CalendarCalendarsGet = Calendar
+  type
+    Scopes CalendarCalendarsGet =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendars,
+         Calendar'Calendars'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarCalendarsGet {..} =
+    go calendarId (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Insert.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Insert.hs
@@ -0,0 +1,81 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a secondary calendar.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.insert@.
+module Gogol.AppsCalendar.Calendar.Calendars.Insert
+  ( -- * Resource
+    CalendarCalendarsInsertResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsInsert (..),
+    newCalendarCalendarsInsert,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.insert@ method which the
+-- 'CalendarCalendarsInsert' request conforms to.
+type CalendarCalendarsInsertResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Calendar
+    Core.:> Core.Post '[Core.JSON] Calendar
+
+-- | Creates a secondary calendar.
+--
+-- /See:/ 'newCalendarCalendarsInsert' smart constructor.
+newtype CalendarCalendarsInsert = CalendarCalendarsInsert
+  { -- | Multipart request metadata.
+    payload :: Calendar
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsInsert' with the minimum fields required to make a request.
+newCalendarCalendarsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Calendar ->
+  CalendarCalendarsInsert
+newCalendarCalendarsInsert payload =
+  CalendarCalendarsInsert {payload = payload}
+
+instance Core.GoogleRequest CalendarCalendarsInsert where
+  type Rs CalendarCalendarsInsert = Calendar
+  type
+    Scopes CalendarCalendarsInsert =
+      '[Calendar'FullControl, Calendar'App'Created, Calendar'Calendars]
+  requestClient CalendarCalendarsInsert {..} =
+    go (Core.Just Core.AltJSON) payload appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Patch.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Patch.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates metadata for a calendar. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.patch@.
+module Gogol.AppsCalendar.Calendar.Calendars.Patch
+  ( -- * Resource
+    CalendarCalendarsPatchResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsPatch (..),
+    newCalendarCalendarsPatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.patch@ method which the
+-- 'CalendarCalendarsPatch' request conforms to.
+type CalendarCalendarsPatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Calendar
+    Core.:> Core.Patch '[Core.JSON] Calendar
+
+-- | Updates metadata for a calendar. This method supports patch semantics.
+--
+-- /See:/ 'newCalendarCalendarsPatch' smart constructor.
+data CalendarCalendarsPatch = CalendarCalendarsPatch
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Calendar
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsPatch' with the minimum fields required to make a request.
+newCalendarCalendarsPatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Calendar ->
+  CalendarCalendarsPatch
+newCalendarCalendarsPatch calendarId payload =
+  CalendarCalendarsPatch
+    { calendarId = calendarId,
+      payload = payload
+    }
+
+instance Core.GoogleRequest CalendarCalendarsPatch where
+  type Rs CalendarCalendarsPatch = Calendar
+  type
+    Scopes CalendarCalendarsPatch =
+      '[Calendar'FullControl, Calendar'App'Created, Calendar'Calendars]
+  requestClient CalendarCalendarsPatch {..} =
+    go
+      calendarId
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Calendars/Update.hs b/gen/Gogol/AppsCalendar/Calendar/Calendars/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Calendars/Update.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Calendars.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates metadata for a calendar.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.update@.
+module Gogol.AppsCalendar.Calendar.Calendars.Update
+  ( -- * Resource
+    CalendarCalendarsUpdateResource,
+
+    -- ** Constructing a Request
+    CalendarCalendarsUpdate (..),
+    newCalendarCalendarsUpdate,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.calendars.update@ method which the
+-- 'CalendarCalendarsUpdate' request conforms to.
+type CalendarCalendarsUpdateResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Calendar
+    Core.:> Core.Put '[Core.JSON] Calendar
+
+-- | Updates metadata for a calendar.
+--
+-- /See:/ 'newCalendarCalendarsUpdate' smart constructor.
+data CalendarCalendarsUpdate = CalendarCalendarsUpdate
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Calendar
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarCalendarsUpdate' with the minimum fields required to make a request.
+newCalendarCalendarsUpdate ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Calendar ->
+  CalendarCalendarsUpdate
+newCalendarCalendarsUpdate calendarId payload =
+  CalendarCalendarsUpdate
+    { calendarId = calendarId,
+      payload = payload
+    }
+
+instance Core.GoogleRequest CalendarCalendarsUpdate where
+  type Rs CalendarCalendarsUpdate = Calendar
+  type
+    Scopes CalendarCalendarsUpdate =
+      '[Calendar'FullControl, Calendar'App'Created, Calendar'Calendars]
+  requestClient CalendarCalendarsUpdate {..} =
+    go
+      calendarId
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarCalendarsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Channels/Stop.hs b/gen/Gogol/AppsCalendar/Calendar/Channels/Stop.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Channels/Stop.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Channels.Stop
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stop watching resources through this channel
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.channels.stop@.
+module Gogol.AppsCalendar.Calendar.Channels.Stop
+  ( -- * Resource
+    CalendarChannelsStopResource,
+
+    -- ** Constructing a Request
+    CalendarChannelsStop (..),
+    newCalendarChannelsStop,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.channels.stop@ method which the
+-- 'CalendarChannelsStop' request conforms to.
+type CalendarChannelsStopResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "channels"
+    Core.:> "stop"
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Channel
+    Core.:> Core.Post '[Core.JSON] ()
+
+-- | Stop watching resources through this channel
+--
+-- /See:/ 'newCalendarChannelsStop' smart constructor.
+newtype CalendarChannelsStop = CalendarChannelsStop
+  { -- | Multipart request metadata.
+    payload :: Channel
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarChannelsStop' with the minimum fields required to make a request.
+newCalendarChannelsStop ::
+  -- |  Multipart request metadata. See 'payload'.
+  Channel ->
+  CalendarChannelsStop
+newCalendarChannelsStop payload =
+  CalendarChannelsStop {payload = payload}
+
+instance Core.GoogleRequest CalendarChannelsStop where
+  type Rs CalendarChannelsStop = ()
+  type
+    Scopes CalendarChannelsStop =
+      '[ Calendar'FullControl,
+         Calendar'Acls,
+         Calendar'Acls'Readonly,
+         Calendar'App'Created,
+         Calendar'Calendarlist,
+         Calendar'Calendarlist'Readonly,
+         Calendar'Events,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Events'Readonly,
+         Calendar'Readonly,
+         Calendar'Settings'Readonly
+       ]
+  requestClient CalendarChannelsStop {..} =
+    go (Core.Just Core.AltJSON) payload appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarChannelsStopResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Colors/Get.hs b/gen/Gogol/AppsCalendar/Calendar/Colors/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Colors/Get.hs
@@ -0,0 +1,83 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Colors.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the color definitions for calendars and events.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.colors.get@.
+module Gogol.AppsCalendar.Calendar.Colors.Get
+  ( -- * Resource
+    CalendarColorsGetResource,
+
+    -- ** Constructing a Request
+    CalendarColorsGet (..),
+    newCalendarColorsGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.colors.get@ method which the
+-- 'CalendarColorsGet' request conforms to.
+type CalendarColorsGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "colors"
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Colors
+
+-- | Returns the color definitions for calendars and events.
+--
+-- /See:/ 'newCalendarColorsGet' smart constructor.
+data CalendarColorsGet = CalendarColorsGet
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarColorsGet' with the minimum fields required to make a request.
+newCalendarColorsGet ::
+  CalendarColorsGet
+newCalendarColorsGet = CalendarColorsGet
+
+instance Core.GoogleRequest CalendarColorsGet where
+  type Rs CalendarColorsGet = Colors
+  type
+    Scopes CalendarColorsGet =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Calendarlist,
+         Calendar'Calendarlist'Readonly,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarColorsGet {} =
+    go (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarColorsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Delete.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Delete.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an event.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.delete@.
+module Gogol.AppsCalendar.Calendar.Events.Delete
+  ( -- * Resource
+    CalendarEventsDeleteResource,
+
+    -- ** Constructing a Request
+    CalendarEventsDelete (..),
+    newCalendarEventsDelete,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.delete@ method which the
+-- 'CalendarEventsDelete' request conforms to.
+type CalendarEventsDeleteResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsDeleteSendUpdates
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes an event.
+--
+-- /See:/ 'newCalendarEventsDelete' smart constructor.
+data CalendarEventsDelete = CalendarEventsDelete
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Event identifier.
+    eventId :: Core.Text,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the deletion of the event. Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Guests who should receive notifications about the deletion of the event.
+    sendUpdates :: (Core.Maybe EventsDeleteSendUpdates)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsDelete' with the minimum fields required to make a request.
+newCalendarEventsDelete ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Event identifier. See 'eventId'.
+  Core.Text ->
+  CalendarEventsDelete
+newCalendarEventsDelete calendarId eventId =
+  CalendarEventsDelete
+    { calendarId = calendarId,
+      eventId = eventId,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsDelete where
+  type Rs CalendarEventsDelete = ()
+  type
+    Scopes CalendarEventsDelete =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsDelete {..} =
+    go
+      calendarId
+      eventId
+      sendNotifications
+      sendUpdates
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Get.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Get.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.get@.
+module Gogol.AppsCalendar.Calendar.Events.Get
+  ( -- * Resource
+    CalendarEventsGetResource,
+
+    -- ** Constructing a Request
+    CalendarEventsGet (..),
+    newCalendarEventsGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.get@ method which the
+-- 'CalendarEventsGet' request conforms to.
+type CalendarEventsGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "timeZone" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Event
+
+-- | Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.
+--
+-- /See:/ 'newCalendarEventsGet' smart constructor.
+data CalendarEventsGet = CalendarEventsGet
+  { -- | Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Event identifier.
+    eventId :: Core.Text,
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Time zone used in the response. Optional. The default is the time zone of the calendar.
+    timeZone :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsGet' with the minimum fields required to make a request.
+newCalendarEventsGet ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Event identifier. See 'eventId'.
+  Core.Text ->
+  CalendarEventsGet
+newCalendarEventsGet calendarId eventId =
+  CalendarEventsGet
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      eventId = eventId,
+      maxAttendees = Core.Nothing,
+      timeZone = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsGet where
+  type Rs CalendarEventsGet = Event
+  type
+    Scopes CalendarEventsGet =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Events'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarEventsGet {..} =
+    go
+      calendarId
+      eventId
+      alwaysIncludeEmail
+      maxAttendees
+      timeZone
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Import.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Import.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Import.hs
@@ -0,0 +1,109 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Import
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported. Deprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.import@.
+module Gogol.AppsCalendar.Calendar.Events.Import
+  ( -- * Resource
+    CalendarEventsImportResource,
+
+    -- ** Constructing a Request
+    CalendarEventsImport (..),
+    newCalendarEventsImport,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.import@ method which the
+-- 'CalendarEventsImport' request conforms to.
+type CalendarEventsImportResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> "import"
+    Core.:> Core.QueryParam "conferenceDataVersion" Core.Int32
+    Core.:> Core.QueryParam "supportsAttachments" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Event
+    Core.:> Core.Post '[Core.JSON] Event
+
+-- | Imports an event. This operation is used to add a private copy of an existing event to a calendar. Only events with an eventType of default may be imported. Deprecated behavior: If a non-default event is imported, its type will be changed to default and any event-type-specific properties it may have will be dropped.
+--
+-- /See:/ 'newCalendarEventsImport' smart constructor.
+data CalendarEventsImport = CalendarEventsImport
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event\'s body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
+    conferenceDataVersion :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: Event,
+    -- | Whether API client performing operation supports event attachments. Optional. The default is False.
+    supportsAttachments :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsImport' with the minimum fields required to make a request.
+newCalendarEventsImport ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Event ->
+  CalendarEventsImport
+newCalendarEventsImport calendarId payload =
+  CalendarEventsImport
+    { calendarId = calendarId,
+      conferenceDataVersion = Core.Nothing,
+      payload = payload,
+      supportsAttachments = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsImport where
+  type Rs CalendarEventsImport = Event
+  type
+    Scopes CalendarEventsImport =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsImport {..} =
+    go
+      calendarId
+      conferenceDataVersion
+      supportsAttachments
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsImportResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Insert.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an event.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.insert@.
+module Gogol.AppsCalendar.Calendar.Events.Insert
+  ( -- * Resource
+    CalendarEventsInsertResource,
+
+    -- ** Constructing a Request
+    CalendarEventsInsert (..),
+    newCalendarEventsInsert,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.insert@ method which the
+-- 'CalendarEventsInsert' request conforms to.
+type CalendarEventsInsertResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.QueryParam "conferenceDataVersion" Core.Int32
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsInsertSendUpdates
+    Core.:> Core.QueryParam "supportsAttachments" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Event
+    Core.:> Core.Post '[Core.JSON] Event
+
+-- | Creates an event.
+--
+-- /See:/ 'newCalendarEventsInsert' smart constructor.
+data CalendarEventsInsert = CalendarEventsInsert
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event\'s body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
+    conferenceDataVersion :: (Core.Maybe Core.Int32),
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: Event,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the creation of the new event. Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.
+    sendUpdates :: (Core.Maybe EventsInsertSendUpdates),
+    -- | Whether API client performing operation supports event attachments. Optional. The default is False.
+    supportsAttachments :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsInsert' with the minimum fields required to make a request.
+newCalendarEventsInsert ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Event ->
+  CalendarEventsInsert
+newCalendarEventsInsert calendarId payload =
+  CalendarEventsInsert
+    { calendarId = calendarId,
+      conferenceDataVersion = Core.Nothing,
+      maxAttendees = Core.Nothing,
+      payload = payload,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing,
+      supportsAttachments = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsInsert where
+  type Rs CalendarEventsInsert = Event
+  type
+    Scopes CalendarEventsInsert =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsInsert {..} =
+    go
+      calendarId
+      conferenceDataVersion
+      maxAttendees
+      sendNotifications
+      sendUpdates
+      supportsAttachments
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Instances.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Instances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Instances.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Instances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns instances of the specified recurring event.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.instances@.
+module Gogol.AppsCalendar.Calendar.Events.Instances
+  ( -- * Resource
+    CalendarEventsInstancesResource,
+
+    -- ** Constructing a Request
+    CalendarEventsInstances (..),
+    newCalendarEventsInstances,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.instances@ method which the
+-- 'CalendarEventsInstances' request conforms to.
+type CalendarEventsInstancesResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> "instances"
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "originalStart" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "timeMax" Core.DateTime
+    Core.:> Core.QueryParam "timeMin" Core.DateTime
+    Core.:> Core.QueryParam "timeZone" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Events
+
+-- | Returns instances of the specified recurring event.
+--
+-- /See:/ 'newCalendarEventsInstances' smart constructor.
+data CalendarEventsInstances = CalendarEventsInstances
+  { -- | Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Recurring event identifier.
+    eventId :: Core.Text,
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Maximum number of events returned on one result page. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | The original start time of the instance in the result. Optional.
+    originalStart :: (Core.Maybe Core.Text),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events will still be included if singleEvents is False. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Upper bound (exclusive) for an event\'s start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset.
+    timeMax :: (Core.Maybe Core.DateTime),
+    -- | Lower bound (inclusive) for an event\'s end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset.
+    timeMin :: (Core.Maybe Core.DateTime),
+    -- | Time zone used in the response. Optional. The default is the time zone of the calendar.
+    timeZone :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsInstances' with the minimum fields required to make a request.
+newCalendarEventsInstances ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Recurring event identifier. See 'eventId'.
+  Core.Text ->
+  CalendarEventsInstances
+newCalendarEventsInstances calendarId eventId =
+  CalendarEventsInstances
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      eventId = eventId,
+      maxAttendees = Core.Nothing,
+      maxResults = Core.Nothing,
+      originalStart = Core.Nothing,
+      pageToken = Core.Nothing,
+      showDeleted = Core.Nothing,
+      timeMax = Core.Nothing,
+      timeMin = Core.Nothing,
+      timeZone = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsInstances where
+  type Rs CalendarEventsInstances = Events
+  type
+    Scopes CalendarEventsInstances =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Events'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarEventsInstances {..} =
+    go
+      calendarId
+      eventId
+      alwaysIncludeEmail
+      maxAttendees
+      maxResults
+      originalStart
+      pageToken
+      showDeleted
+      timeMax
+      timeMin
+      timeZone
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsInstancesResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/List.hs b/gen/Gogol/AppsCalendar/Calendar/Events/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/List.hs
@@ -0,0 +1,200 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns events on the specified calendar.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.list@.
+module Gogol.AppsCalendar.Calendar.Events.List
+  ( -- * Resource
+    CalendarEventsListResource,
+
+    -- ** Constructing a Request
+    CalendarEventsList (..),
+    newCalendarEventsList,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.list@ method which the
+-- 'CalendarEventsList' request conforms to.
+type CalendarEventsListResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParams "eventTypes" EventsListEventTypes
+    Core.:> Core.QueryParam "iCalUID" Core.Text
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "orderBy" EventsListOrderBy
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParams "privateExtendedProperty" Core.Text
+    Core.:> Core.QueryParam "q" Core.Text
+    Core.:> Core.QueryParams "sharedExtendedProperty" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "showHiddenInvitations" Core.Bool
+    Core.:> Core.QueryParam "singleEvents" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "timeMax" Core.DateTime
+    Core.:> Core.QueryParam "timeMin" Core.DateTime
+    Core.:> Core.QueryParam "timeZone" Core.Text
+    Core.:> Core.QueryParam "updatedMin" Core.DateTime
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Events
+
+-- | Returns events on the specified calendar.
+--
+-- /See:/ 'newCalendarEventsList' smart constructor.
+data CalendarEventsList = CalendarEventsList
+  { -- | Deprecated and ignored.
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.
+    eventTypes :: (Core.Maybe [EventsListEventTypes]),
+    -- | Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.
+    iCalUID :: (Core.Maybe Core.Text),
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
+    maxResults :: Core.Int32,
+    -- | The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+    orderBy :: (Core.Maybe EventsListOrderBy),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.
+    privateExtendedProperty :: (Core.Maybe [Core.Text]),
+    -- | Free text search terms to find events that match these terms in the following fields:
+    --
+    -- -   summary
+    -- -   description
+    -- -   location
+    -- -   attendee\'s displayName
+    -- -   attendee\'s email
+    -- -   organizer\'s displayName
+    -- -   organizer\'s email
+    -- -   workingLocationProperties.officeLocation.buildingId
+    -- -   workingLocationProperties.officeLocation.deskId
+    -- -   workingLocationProperties.officeLocation.label
+    -- -   workingLocationProperties.customLocation.label These search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.
+    q :: (Core.Maybe Core.Text),
+    -- | Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.
+    sharedExtendedProperty :: (Core.Maybe [Core.Text]),
+    -- | Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Whether to include hidden invitations in the result. Optional. The default is False.
+    showHiddenInvitations :: (Core.Maybe Core.Bool),
+    -- | Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.
+    singleEvents :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False. There are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.
+    --
+    -- These are: - iCalUID - orderBy - privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax - updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text),
+    -- | Upper bound (exclusive) for an event\'s start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.
+    timeMax :: (Core.Maybe Core.DateTime),
+    -- | Lower bound (exclusive) for an event\'s end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.
+    timeMin :: (Core.Maybe Core.DateTime),
+    -- | Time zone used in the response. Optional. The default is the time zone of the calendar.
+    timeZone :: (Core.Maybe Core.Text),
+    -- | Lower bound for an event\'s last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.
+    updatedMin :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsList' with the minimum fields required to make a request.
+newCalendarEventsList ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  CalendarEventsList
+newCalendarEventsList calendarId =
+  CalendarEventsList
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      eventTypes = Core.Nothing,
+      iCalUID = Core.Nothing,
+      maxAttendees = Core.Nothing,
+      maxResults = 250,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      privateExtendedProperty = Core.Nothing,
+      q = Core.Nothing,
+      sharedExtendedProperty = Core.Nothing,
+      showDeleted = Core.Nothing,
+      showHiddenInvitations = Core.Nothing,
+      singleEvents = Core.Nothing,
+      syncToken = Core.Nothing,
+      timeMax = Core.Nothing,
+      timeMin = Core.Nothing,
+      timeZone = Core.Nothing,
+      updatedMin = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsList where
+  type Rs CalendarEventsList = Events
+  type
+    Scopes CalendarEventsList =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Events'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarEventsList {..} =
+    go
+      calendarId
+      alwaysIncludeEmail
+      (eventTypes Core.^. Core._Default)
+      iCalUID
+      maxAttendees
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      (privateExtendedProperty Core.^. Core._Default)
+      q
+      (sharedExtendedProperty Core.^. Core._Default)
+      showDeleted
+      showHiddenInvitations
+      singleEvents
+      syncToken
+      timeMax
+      timeMin
+      timeZone
+      updatedMin
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsListResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Move.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Move.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Move.hs
@@ -0,0 +1,114 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Move
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves an event to another calendar, i.e. changes an event\'s organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.move@.
+module Gogol.AppsCalendar.Calendar.Events.Move
+  ( -- * Resource
+    CalendarEventsMoveResource,
+
+    -- ** Constructing a Request
+    CalendarEventsMove (..),
+    newCalendarEventsMove,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.move@ method which the
+-- 'CalendarEventsMove' request conforms to.
+type CalendarEventsMoveResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> "move"
+    Core.:> Core.QueryParam "destination" Core.Text
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsMoveSendUpdates
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Event
+
+-- | Moves an event to another calendar, i.e. changes an event\'s organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.
+--
+-- /See:/ 'newCalendarEventsMove' smart constructor.
+data CalendarEventsMove = CalendarEventsMove
+  { -- | Calendar identifier of the source calendar where the event currently is on.
+    calendarId :: Core.Text,
+    -- | Calendar identifier of the target calendar where the event is to be moved to.
+    destination :: Core.Text,
+    -- | Event identifier.
+    eventId :: Core.Text,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the change of the event\'s organizer. Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Guests who should receive notifications about the change of the event\'s organizer.
+    sendUpdates :: (Core.Maybe EventsMoveSendUpdates)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsMove' with the minimum fields required to make a request.
+newCalendarEventsMove ::
+  -- |  Calendar identifier of the source calendar where the event currently is on. See 'calendarId'.
+  Core.Text ->
+  -- |  Calendar identifier of the target calendar where the event is to be moved to. See 'destination'.
+  Core.Text ->
+  -- |  Event identifier. See 'eventId'.
+  Core.Text ->
+  CalendarEventsMove
+newCalendarEventsMove calendarId destination eventId =
+  CalendarEventsMove
+    { calendarId = calendarId,
+      destination = destination,
+      eventId = eventId,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsMove where
+  type Rs CalendarEventsMove = Event
+  type
+    Scopes CalendarEventsMove =
+      '[Calendar'FullControl, Calendar'Events, Calendar'Events'Owned]
+  requestClient CalendarEventsMove {..} =
+    go
+      calendarId
+      eventId
+      (Core.Just destination)
+      sendNotifications
+      sendUpdates
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsMoveResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Patch.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an event. This method supports patch semantics.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.patch@.
+module Gogol.AppsCalendar.Calendar.Events.Patch
+  ( -- * Resource
+    CalendarEventsPatchResource,
+
+    -- ** Constructing a Request
+    CalendarEventsPatch (..),
+    newCalendarEventsPatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.patch@ method which the
+-- 'CalendarEventsPatch' request conforms to.
+type CalendarEventsPatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParam "conferenceDataVersion" Core.Int32
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsPatchSendUpdates
+    Core.:> Core.QueryParam "supportsAttachments" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Event
+    Core.:> Core.Patch '[Core.JSON] Event
+
+-- | Updates an event. This method supports patch semantics.
+--
+-- /See:/ 'newCalendarEventsPatch' smart constructor.
+data CalendarEventsPatch = CalendarEventsPatch
+  { -- | Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event\'s body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
+    conferenceDataVersion :: (Core.Maybe Core.Int32),
+    -- | Event identifier.
+    eventId :: Core.Text,
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: Event,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Guests who should receive notifications about the event update (for example, title changes, etc.).
+    sendUpdates :: (Core.Maybe EventsPatchSendUpdates),
+    -- | Whether API client performing operation supports event attachments. Optional. The default is False.
+    supportsAttachments :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsPatch' with the minimum fields required to make a request.
+newCalendarEventsPatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Event identifier. See 'eventId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Event ->
+  CalendarEventsPatch
+newCalendarEventsPatch calendarId eventId payload =
+  CalendarEventsPatch
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      conferenceDataVersion = Core.Nothing,
+      eventId = eventId,
+      maxAttendees = Core.Nothing,
+      payload = payload,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing,
+      supportsAttachments = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsPatch where
+  type Rs CalendarEventsPatch = Event
+  type
+    Scopes CalendarEventsPatch =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsPatch {..} =
+    go
+      calendarId
+      eventId
+      alwaysIncludeEmail
+      conferenceDataVersion
+      maxAttendees
+      sendNotifications
+      sendUpdates
+      supportsAttachments
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/QuickAdd.hs b/gen/Gogol/AppsCalendar/Calendar/Events/QuickAdd.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/QuickAdd.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.QuickAdd
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an event based on a simple text string.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.quickAdd@.
+module Gogol.AppsCalendar.Calendar.Events.QuickAdd
+  ( -- * Resource
+    CalendarEventsQuickAddResource,
+
+    -- ** Constructing a Request
+    CalendarEventsQuickAdd (..),
+    newCalendarEventsQuickAdd,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.quickAdd@ method which the
+-- 'CalendarEventsQuickAdd' request conforms to.
+type CalendarEventsQuickAddResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> "quickAdd"
+    Core.:> Core.QueryParam "text" Core.Text
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsQuickAddSendUpdates
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Event
+
+-- | Creates an event based on a simple text string.
+--
+-- /See:/ 'newCalendarEventsQuickAdd' smart constructor.
+data CalendarEventsQuickAdd = CalendarEventsQuickAdd
+  { -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the creation of the event. Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Guests who should receive notifications about the creation of the new event.
+    sendUpdates :: (Core.Maybe EventsQuickAddSendUpdates),
+    -- | The text describing the event to be created.
+    text :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsQuickAdd' with the minimum fields required to make a request.
+newCalendarEventsQuickAdd ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  The text describing the event to be created. See 'text'.
+  Core.Text ->
+  CalendarEventsQuickAdd
+newCalendarEventsQuickAdd calendarId text =
+  CalendarEventsQuickAdd
+    { calendarId = calendarId,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing,
+      text = text
+    }
+
+instance Core.GoogleRequest CalendarEventsQuickAdd where
+  type Rs CalendarEventsQuickAdd = Event
+  type
+    Scopes CalendarEventsQuickAdd =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsQuickAdd {..} =
+    go
+      calendarId
+      (Core.Just text)
+      sendNotifications
+      sendUpdates
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsQuickAddResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Update.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Update.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an event.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.update@.
+module Gogol.AppsCalendar.Calendar.Events.Update
+  ( -- * Resource
+    CalendarEventsUpdateResource,
+
+    -- ** Constructing a Request
+    CalendarEventsUpdate (..),
+    newCalendarEventsUpdate,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.update@ method which the
+-- 'CalendarEventsUpdate' request conforms to.
+type CalendarEventsUpdateResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> Core.Capture "eventId" Core.Text
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParam "conferenceDataVersion" Core.Int32
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "sendNotifications" Core.Bool
+    Core.:> Core.QueryParam "sendUpdates" EventsUpdateSendUpdates
+    Core.:> Core.QueryParam "supportsAttachments" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Event
+    Core.:> Core.Put '[Core.JSON] Event
+
+-- | Updates an event.
+--
+-- /See:/ 'newCalendarEventsUpdate' smart constructor.
+data CalendarEventsUpdate = CalendarEventsUpdate
+  { -- | Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Version number of conference data supported by the API client. Version 0 assumes no conference data support and ignores conference data in the event\'s body. Version 1 enables support for copying of ConferenceData as well as for creating new conferences using the createRequest field of conferenceData. The default is 0.
+    conferenceDataVersion :: (Core.Maybe Core.Int32),
+    -- | Event identifier.
+    eventId :: Core.Text,
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: Event,
+    -- | Deprecated. Please use sendUpdates instead.
+    --
+    -- Whether to send notifications about the event update (for example, description changes, etc.). Note that some emails might still be sent even if you set the value to false. The default is false.
+    sendNotifications :: (Core.Maybe Core.Bool),
+    -- | Guests who should receive notifications about the event update (for example, title changes, etc.).
+    sendUpdates :: (Core.Maybe EventsUpdateSendUpdates),
+    -- | Whether API client performing operation supports event attachments. Optional. The default is False.
+    supportsAttachments :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsUpdate' with the minimum fields required to make a request.
+newCalendarEventsUpdate ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Event identifier. See 'eventId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Event ->
+  CalendarEventsUpdate
+newCalendarEventsUpdate calendarId eventId payload =
+  CalendarEventsUpdate
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      conferenceDataVersion = Core.Nothing,
+      eventId = eventId,
+      maxAttendees = Core.Nothing,
+      payload = payload,
+      sendNotifications = Core.Nothing,
+      sendUpdates = Core.Nothing,
+      supportsAttachments = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsUpdate where
+  type Rs CalendarEventsUpdate = Event
+  type
+    Scopes CalendarEventsUpdate =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Owned
+       ]
+  requestClient CalendarEventsUpdate {..} =
+    go
+      calendarId
+      eventId
+      alwaysIncludeEmail
+      conferenceDataVersion
+      maxAttendees
+      sendNotifications
+      sendUpdates
+      supportsAttachments
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Events/Watch.hs b/gen/Gogol/AppsCalendar/Calendar/Events/Watch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Events/Watch.hs
@@ -0,0 +1,208 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Events.Watch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Watch for changes to Events resources.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.watch@.
+module Gogol.AppsCalendar.Calendar.Events.Watch
+  ( -- * Resource
+    CalendarEventsWatchResource,
+
+    -- ** Constructing a Request
+    CalendarEventsWatch (..),
+    newCalendarEventsWatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.events.watch@ method which the
+-- 'CalendarEventsWatch' request conforms to.
+type CalendarEventsWatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "calendars"
+    Core.:> Core.Capture "calendarId" Core.Text
+    Core.:> "events"
+    Core.:> "watch"
+    Core.:> Core.QueryParam "alwaysIncludeEmail" Core.Bool
+    Core.:> Core.QueryParams "eventTypes" EventsWatchEventTypes
+    Core.:> Core.QueryParam "iCalUID" Core.Text
+    Core.:> Core.QueryParam "maxAttendees" Core.Int32
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "orderBy" EventsWatchOrderBy
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParams "privateExtendedProperty" Core.Text
+    Core.:> Core.QueryParam "q" Core.Text
+    Core.:> Core.QueryParams "sharedExtendedProperty" Core.Text
+    Core.:> Core.QueryParam "showDeleted" Core.Bool
+    Core.:> Core.QueryParam "showHiddenInvitations" Core.Bool
+    Core.:> Core.QueryParam "singleEvents" Core.Bool
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "timeMax" Core.DateTime
+    Core.:> Core.QueryParam "timeMin" Core.DateTime
+    Core.:> Core.QueryParam "timeZone" Core.Text
+    Core.:> Core.QueryParam "updatedMin" Core.DateTime
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Channel
+    Core.:> Core.Post '[Core.JSON] Channel
+
+-- | Watch for changes to Events resources.
+--
+-- /See:/ 'newCalendarEventsWatch' smart constructor.
+data CalendarEventsWatch = CalendarEventsWatch
+  { -- | Deprecated and ignored.
+    alwaysIncludeEmail :: (Core.Maybe Core.Bool),
+    -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword.
+    calendarId :: Core.Text,
+    -- | Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.
+    eventTypes :: (Core.Maybe [EventsWatchEventTypes]),
+    -- | Specifies an event ID in the iCalendar format to be provided in the response. Optional. Use this if you want to search for an event by its iCalendar ID.
+    iCalUID :: (Core.Maybe Core.Text),
+    -- | The maximum number of attendees to include in the response. If there are more than the specified number of attendees, only the participant is returned. Optional.
+    maxAttendees :: (Core.Maybe Core.Int32),
+    -- | Maximum number of events returned on one result page. The number of events in the resulting page may be less than this value, or none at all, even if there are more events matching the query. Incomplete pages can be detected by a non-empty nextPageToken field in the response. By default the value is 250 events. The page size can never be larger than 2500 events. Optional.
+    maxResults :: Core.Int32,
+    -- | The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+    orderBy :: (Core.Maybe EventsWatchOrderBy),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Channel,
+    -- | Extended properties constraint specified as propertyName=value. Matches only private properties. This parameter might be repeated multiple times to return events that match all given constraints.
+    privateExtendedProperty :: (Core.Maybe [Core.Text]),
+    -- | Free text search terms to find events that match these terms in the following fields:
+    --
+    -- -   summary
+    -- -   description
+    -- -   location
+    -- -   attendee\'s displayName
+    -- -   attendee\'s email
+    -- -   organizer\'s displayName
+    -- -   organizer\'s email
+    -- -   workingLocationProperties.officeLocation.buildingId
+    -- -   workingLocationProperties.officeLocation.deskId
+    -- -   workingLocationProperties.officeLocation.label
+    -- -   workingLocationProperties.customLocation.label These search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.
+    q :: (Core.Maybe Core.Text),
+    -- | Extended properties constraint specified as propertyName=value. Matches only shared properties. This parameter might be repeated multiple times to return events that match all given constraints.
+    sharedExtendedProperty :: (Core.Maybe [Core.Text]),
+    -- | Whether to include deleted events (with status equals \"cancelled\") in the result. Cancelled instances of recurring events (but not the underlying recurring event) will still be included if showDeleted and singleEvents are both False. If showDeleted and singleEvents are both True, only single instances of deleted events (but not the underlying recurring events) are returned. Optional. The default is False.
+    showDeleted :: (Core.Maybe Core.Bool),
+    -- | Whether to include hidden invitations in the result. Optional. The default is False.
+    showHiddenInvitations :: (Core.Maybe Core.Bool),
+    -- | Whether to expand recurring events into instances and only return single one-off events and instances of recurring events, but not the underlying recurring events themselves. Optional. The default is False.
+    singleEvents :: (Core.Maybe Core.Bool),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. All events deleted since the previous list request will always be in the result set and it is not allowed to set showDeleted to False. There are several query parameters that cannot be specified together with nextSyncToken to ensure consistency of the client state.
+    --
+    -- These are: - iCalUID - orderBy - privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax - updatedMin All other query parameters should be the same as for the initial synchronization to avoid undefined behavior. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text),
+    -- | Upper bound (exclusive) for an event\'s start time to filter by. Optional. The default is not to filter by start time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMin is set, timeMax must be greater than timeMin.
+    timeMax :: (Core.Maybe Core.DateTime),
+    -- | Lower bound (exclusive) for an event\'s end time to filter by. Optional. The default is not to filter by end time. Must be an RFC3339 timestamp with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If timeMax is set, timeMin must be smaller than timeMax.
+    timeMin :: (Core.Maybe Core.DateTime),
+    -- | Time zone used in the response. Optional. The default is the time zone of the calendar.
+    timeZone :: (Core.Maybe Core.Text),
+    -- | Lower bound for an event\'s last modification time (as a RFC3339 timestamp) to filter by. When specified, entries deleted since this time will always be included regardless of showDeleted. Optional. The default is not to filter by last modification time.
+    updatedMin :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarEventsWatch' with the minimum fields required to make a request.
+newCalendarEventsWatch ::
+  -- |  Calendar identifier. To retrieve calendar IDs call the calendarList.list method. If you want to access the primary calendar of the currently logged in user, use the \"primary\" keyword. See 'calendarId'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Channel ->
+  CalendarEventsWatch
+newCalendarEventsWatch calendarId payload =
+  CalendarEventsWatch
+    { alwaysIncludeEmail = Core.Nothing,
+      calendarId = calendarId,
+      eventTypes = Core.Nothing,
+      iCalUID = Core.Nothing,
+      maxAttendees = Core.Nothing,
+      maxResults = 250,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      payload = payload,
+      privateExtendedProperty = Core.Nothing,
+      q = Core.Nothing,
+      sharedExtendedProperty = Core.Nothing,
+      showDeleted = Core.Nothing,
+      showHiddenInvitations = Core.Nothing,
+      singleEvents = Core.Nothing,
+      syncToken = Core.Nothing,
+      timeMax = Core.Nothing,
+      timeMin = Core.Nothing,
+      timeZone = Core.Nothing,
+      updatedMin = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarEventsWatch where
+  type Rs CalendarEventsWatch = Channel
+  type
+    Scopes CalendarEventsWatch =
+      '[ Calendar'FullControl,
+         Calendar'App'Created,
+         Calendar'Events,
+         Calendar'Events'Freebusy,
+         Calendar'Events'Owned,
+         Calendar'Events'Owned'Readonly,
+         Calendar'Events'Public'Readonly,
+         Calendar'Events'Readonly,
+         Calendar'Readonly
+       ]
+  requestClient CalendarEventsWatch {..} =
+    go
+      calendarId
+      alwaysIncludeEmail
+      (eventTypes Core.^. Core._Default)
+      iCalUID
+      maxAttendees
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      (privateExtendedProperty Core.^. Core._Default)
+      q
+      (sharedExtendedProperty Core.^. Core._Default)
+      showDeleted
+      showHiddenInvitations
+      singleEvents
+      syncToken
+      timeMax
+      timeMin
+      timeZone
+      updatedMin
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarEventsWatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Freebusy/Query.hs b/gen/Gogol/AppsCalendar/Calendar/Freebusy/Query.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Freebusy/Query.hs
@@ -0,0 +1,85 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Freebusy.Query
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns free\/busy information for a set of calendars.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.freebusy.query@.
+module Gogol.AppsCalendar.Calendar.Freebusy.Query
+  ( -- * Resource
+    CalendarFreebusyQueryResource,
+
+    -- ** Constructing a Request
+    CalendarFreebusyQuery (..),
+    newCalendarFreebusyQuery,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.freebusy.query@ method which the
+-- 'CalendarFreebusyQuery' request conforms to.
+type CalendarFreebusyQueryResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "freeBusy"
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FreeBusyRequest
+    Core.:> Core.Post '[Core.JSON] FreeBusyResponse
+
+-- | Returns free\/busy information for a set of calendars.
+--
+-- /See:/ 'newCalendarFreebusyQuery' smart constructor.
+newtype CalendarFreebusyQuery = CalendarFreebusyQuery
+  { -- | Multipart request metadata.
+    payload :: FreeBusyRequest
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarFreebusyQuery' with the minimum fields required to make a request.
+newCalendarFreebusyQuery ::
+  -- |  Multipart request metadata. See 'payload'.
+  FreeBusyRequest ->
+  CalendarFreebusyQuery
+newCalendarFreebusyQuery payload =
+  CalendarFreebusyQuery {payload = payload}
+
+instance Core.GoogleRequest CalendarFreebusyQuery where
+  type Rs CalendarFreebusyQuery = FreeBusyResponse
+  type
+    Scopes CalendarFreebusyQuery =
+      '[ Calendar'FullControl,
+         Calendar'Events'Freebusy,
+         Calendar'Freebusy,
+         Calendar'Readonly
+       ]
+  requestClient CalendarFreebusyQuery {..} =
+    go (Core.Just Core.AltJSON) payload appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarFreebusyQueryResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Settings/Get.hs b/gen/Gogol/AppsCalendar/Calendar/Settings/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Settings/Get.hs
@@ -0,0 +1,86 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Settings.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a single user setting.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.get@.
+module Gogol.AppsCalendar.Calendar.Settings.Get
+  ( -- * Resource
+    CalendarSettingsGetResource,
+
+    -- ** Constructing a Request
+    CalendarSettingsGet (..),
+    newCalendarSettingsGet,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.settings.get@ method which the
+-- 'CalendarSettingsGet' request conforms to.
+type CalendarSettingsGetResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "settings"
+    Core.:> Core.Capture "setting" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Setting
+
+-- | Returns a single user setting.
+--
+-- /See:/ 'newCalendarSettingsGet' smart constructor.
+newtype CalendarSettingsGet = CalendarSettingsGet
+  { -- | The id of the user setting.
+    setting :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarSettingsGet' with the minimum fields required to make a request.
+newCalendarSettingsGet ::
+  -- |  The id of the user setting. See 'setting'.
+  Core.Text ->
+  CalendarSettingsGet
+newCalendarSettingsGet setting =
+  CalendarSettingsGet {setting = setting}
+
+instance Core.GoogleRequest CalendarSettingsGet where
+  type Rs CalendarSettingsGet = Setting
+  type
+    Scopes CalendarSettingsGet =
+      '[ Calendar'FullControl,
+         Calendar'Readonly,
+         Calendar'Settings'Readonly
+       ]
+  requestClient CalendarSettingsGet {..} =
+    go setting (Core.Just Core.AltJSON) appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarSettingsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Settings/List.hs b/gen/Gogol/AppsCalendar/Calendar/Settings/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Settings/List.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Settings.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns all user settings for the authenticated user.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.list@.
+module Gogol.AppsCalendar.Calendar.Settings.List
+  ( -- * Resource
+    CalendarSettingsListResource,
+
+    -- ** Constructing a Request
+    CalendarSettingsList (..),
+    newCalendarSettingsList,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.settings.list@ method which the
+-- 'CalendarSettingsList' request conforms to.
+type CalendarSettingsListResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "settings"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Settings
+
+-- | Returns all user settings for the authenticated user.
+--
+-- /See:/ 'newCalendarSettingsList' smart constructor.
+data CalendarSettingsList = CalendarSettingsList
+  { -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarSettingsList' with the minimum fields required to make a request.
+newCalendarSettingsList ::
+  CalendarSettingsList
+newCalendarSettingsList =
+  CalendarSettingsList
+    { maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarSettingsList where
+  type Rs CalendarSettingsList = Settings
+  type
+    Scopes CalendarSettingsList =
+      '[ Calendar'FullControl,
+         Calendar'Readonly,
+         Calendar'Settings'Readonly
+       ]
+  requestClient CalendarSettingsList {..} =
+    go
+      maxResults
+      pageToken
+      syncToken
+      (Core.Just Core.AltJSON)
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarSettingsListResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Calendar/Settings/Watch.hs b/gen/Gogol/AppsCalendar/Calendar/Settings/Watch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Calendar/Settings/Watch.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Calendar.Settings.Watch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Watch for changes to Settings resources.
+--
+-- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.watch@.
+module Gogol.AppsCalendar.Calendar.Settings.Watch
+  ( -- * Resource
+    CalendarSettingsWatchResource,
+
+    -- ** Constructing a Request
+    CalendarSettingsWatch (..),
+    newCalendarSettingsWatch,
+  )
+where
+
+import Gogol.AppsCalendar.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @calendar.settings.watch@ method which the
+-- 'CalendarSettingsWatch' request conforms to.
+type CalendarSettingsWatchResource =
+  "calendar"
+    Core.:> "v3"
+    Core.:> "users"
+    Core.:> "me"
+    Core.:> "settings"
+    Core.:> "watch"
+    Core.:> Core.QueryParam "maxResults" Core.Int32
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "syncToken" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Channel
+    Core.:> Core.Post '[Core.JSON] Channel
+
+-- | Watch for changes to Settings resources.
+--
+-- /See:/ 'newCalendarSettingsWatch' smart constructor.
+data CalendarSettingsWatch = CalendarSettingsWatch
+  { -- | Maximum number of entries returned on one result page. By default the value is 100 entries. The page size can never be larger than 250 entries. Optional.
+    maxResults :: (Core.Maybe Core.Int32),
+    -- | Token specifying which result page to return. Optional.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Channel,
+    -- | Token obtained from the nextSyncToken field returned on the last page of results from the previous list request. It makes the result of this list request contain only entries that have changed since then. If the syncToken expires, the server will respond with a 410 GONE response code and the client should clear its storage and perform a full synchronization without any syncToken. Learn more about incremental synchronization. Optional. The default is to return all entries.
+    syncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarSettingsWatch' with the minimum fields required to make a request.
+newCalendarSettingsWatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Channel ->
+  CalendarSettingsWatch
+newCalendarSettingsWatch payload =
+  CalendarSettingsWatch
+    { maxResults = Core.Nothing,
+      pageToken = Core.Nothing,
+      payload = payload,
+      syncToken = Core.Nothing
+    }
+
+instance Core.GoogleRequest CalendarSettingsWatch where
+  type Rs CalendarSettingsWatch = Channel
+  type
+    Scopes CalendarSettingsWatch =
+      '[ Calendar'FullControl,
+         Calendar'Readonly,
+         Calendar'Settings'Readonly
+       ]
+  requestClient CalendarSettingsWatch {..} =
+    go
+      maxResults
+      pageToken
+      syncToken
+      (Core.Just Core.AltJSON)
+      payload
+      appsCalendarService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy CalendarSettingsWatchResource)
+          Core.mempty
diff --git a/gen/Gogol/AppsCalendar/Internal/Product.hs b/gen/Gogol/AppsCalendar/Internal/Product.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Internal/Product.hs
@@ -0,0 +1,2968 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Internal.Product
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AppsCalendar.Internal.Product
+  ( -- * Acl
+    Acl (..),
+    newAcl,
+
+    -- * AclRule
+    AclRule (..),
+    newAclRule,
+
+    -- * AclRule_Scope
+    AclRule_Scope (..),
+    newAclRule_Scope,
+
+    -- * Calendar
+    Calendar (..),
+    newCalendar,
+
+    -- * CalendarList
+    CalendarList (..),
+    newCalendarList,
+
+    -- * CalendarListEntry
+    CalendarListEntry (..),
+    newCalendarListEntry,
+
+    -- * CalendarListEntry_NotificationSettings
+    CalendarListEntry_NotificationSettings (..),
+    newCalendarListEntry_NotificationSettings,
+
+    -- * CalendarNotification
+    CalendarNotification (..),
+    newCalendarNotification,
+
+    -- * Channel
+    Channel (..),
+    newChannel,
+
+    -- * Channel_Params
+    Channel_Params (..),
+    newChannel_Params,
+
+    -- * ColorDefinition
+    ColorDefinition (..),
+    newColorDefinition,
+
+    -- * Colors
+    Colors (..),
+    newColors,
+
+    -- * Colors_Calendar
+    Colors_Calendar (..),
+    newColors_Calendar,
+
+    -- * Colors_Event
+    Colors_Event (..),
+    newColors_Event,
+
+    -- * ConferenceData
+    ConferenceData (..),
+    newConferenceData,
+
+    -- * ConferenceParameters
+    ConferenceParameters (..),
+    newConferenceParameters,
+
+    -- * ConferenceParametersAddOnParameters
+    ConferenceParametersAddOnParameters (..),
+    newConferenceParametersAddOnParameters,
+
+    -- * ConferenceParametersAddOnParameters_Parameters
+    ConferenceParametersAddOnParameters_Parameters (..),
+    newConferenceParametersAddOnParameters_Parameters,
+
+    -- * ConferenceProperties
+    ConferenceProperties (..),
+    newConferenceProperties,
+
+    -- * ConferenceRequestStatus
+    ConferenceRequestStatus (..),
+    newConferenceRequestStatus,
+
+    -- * ConferenceSolution
+    ConferenceSolution (..),
+    newConferenceSolution,
+
+    -- * ConferenceSolutionKey
+    ConferenceSolutionKey (..),
+    newConferenceSolutionKey,
+
+    -- * CreateConferenceRequest
+    CreateConferenceRequest (..),
+    newCreateConferenceRequest,
+
+    -- * EntryPoint
+    EntryPoint (..),
+    newEntryPoint,
+
+    -- * Error'
+    Error' (..),
+    newError,
+
+    -- * Event
+    Event (..),
+    newEvent,
+
+    -- * Event_Creator
+    Event_Creator (..),
+    newEvent_Creator,
+
+    -- * Event_ExtendedProperties
+    Event_ExtendedProperties (..),
+    newEvent_ExtendedProperties,
+
+    -- * Event_ExtendedProperties_Private
+    Event_ExtendedProperties_Private (..),
+    newEvent_ExtendedProperties_Private,
+
+    -- * Event_ExtendedProperties_Shared
+    Event_ExtendedProperties_Shared (..),
+    newEvent_ExtendedProperties_Shared,
+
+    -- * Event_Gadget
+    Event_Gadget (..),
+    newEvent_Gadget,
+
+    -- * Event_Gadget_Preferences
+    Event_Gadget_Preferences (..),
+    newEvent_Gadget_Preferences,
+
+    -- * Event_Organizer
+    Event_Organizer (..),
+    newEvent_Organizer,
+
+    -- * Event_Reminders
+    Event_Reminders (..),
+    newEvent_Reminders,
+
+    -- * Event_Source
+    Event_Source (..),
+    newEvent_Source,
+
+    -- * EventAttachment
+    EventAttachment (..),
+    newEventAttachment,
+
+    -- * EventAttendee
+    EventAttendee (..),
+    newEventAttendee,
+
+    -- * EventBirthdayProperties
+    EventBirthdayProperties (..),
+    newEventBirthdayProperties,
+
+    -- * EventDateTime
+    EventDateTime (..),
+    newEventDateTime,
+
+    -- * EventFocusTimeProperties
+    EventFocusTimeProperties (..),
+    newEventFocusTimeProperties,
+
+    -- * EventOutOfOfficeProperties
+    EventOutOfOfficeProperties (..),
+    newEventOutOfOfficeProperties,
+
+    -- * EventReminder
+    EventReminder (..),
+    newEventReminder,
+
+    -- * EventWorkingLocationProperties
+    EventWorkingLocationProperties (..),
+    newEventWorkingLocationProperties,
+
+    -- * EventWorkingLocationProperties_CustomLocation
+    EventWorkingLocationProperties_CustomLocation (..),
+    newEventWorkingLocationProperties_CustomLocation,
+
+    -- * EventWorkingLocationProperties_OfficeLocation
+    EventWorkingLocationProperties_OfficeLocation (..),
+    newEventWorkingLocationProperties_OfficeLocation,
+
+    -- * Events
+    Events (..),
+    newEvents,
+
+    -- * FreeBusyCalendar
+    FreeBusyCalendar (..),
+    newFreeBusyCalendar,
+
+    -- * FreeBusyGroup
+    FreeBusyGroup (..),
+    newFreeBusyGroup,
+
+    -- * FreeBusyRequest
+    FreeBusyRequest (..),
+    newFreeBusyRequest,
+
+    -- * FreeBusyRequestItem
+    FreeBusyRequestItem (..),
+    newFreeBusyRequestItem,
+
+    -- * FreeBusyResponse
+    FreeBusyResponse (..),
+    newFreeBusyResponse,
+
+    -- * FreeBusyResponse_Calendars
+    FreeBusyResponse_Calendars (..),
+    newFreeBusyResponse_Calendars,
+
+    -- * FreeBusyResponse_Groups
+    FreeBusyResponse_Groups (..),
+    newFreeBusyResponse_Groups,
+
+    -- * Setting
+    Setting (..),
+    newSetting,
+
+    -- * Settings
+    Settings (..),
+    newSettings,
+
+    -- * TimePeriod
+    TimePeriod (..),
+    newTimePeriod,
+  )
+where
+
+import Gogol.AppsCalendar.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+--
+-- /See:/ 'newAcl' smart constructor.
+data Acl = Acl
+  { -- | ETag of the collection.
+    etag :: (Core.Maybe Core.Text),
+    -- | List of rules on the access control list.
+    items :: (Core.Maybe [AclRule]),
+    -- | Type of the collection (\"calendar#acl\").
+    kind :: Core.Text,
+    -- | Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    nextSyncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Acl' with the minimum fields required to make a request.
+newAcl ::
+  Acl
+newAcl =
+  Acl
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = "calendar#acl",
+      nextPageToken = Core.Nothing,
+      nextSyncToken = Core.Nothing
+    }
+
+instance Core.FromJSON Acl where
+  parseJSON =
+    Core.withObject
+      "Acl"
+      ( \o ->
+          Acl
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#acl")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "nextSyncToken")
+      )
+
+instance Core.ToJSON Acl where
+  toJSON Acl {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("nextSyncToken" Core..=) Core.<$> nextSyncToken
+          ]
+      )
+
+--
+-- /See:/ 'newAclRule' smart constructor.
+data AclRule = AclRule
+  { -- | ETag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | Identifier of the Access Control List (ACL) rule. See Sharing calendars.
+    id :: (Core.Maybe Core.Text),
+    -- | Type of the resource (\"calendar#aclRule\").
+    kind :: Core.Text,
+    -- | The role assigned to the scope. Possible values are:
+    -- - \"none\" - Provides no access. - \"freeBusyReader\" - Provides read access to free\/busy information. - \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. Provides read access to the calendar\'s ACLs. - \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to manipulate ACLs.
+    role' :: (Core.Maybe Core.Text),
+    -- | The extent to which calendar access is granted by this ACL rule.
+    scope :: (Core.Maybe AclRule_Scope)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'AclRule' with the minimum fields required to make a request.
+newAclRule ::
+  AclRule
+newAclRule =
+  AclRule
+    { etag = Core.Nothing,
+      id = Core.Nothing,
+      kind = "calendar#aclRule",
+      role' = Core.Nothing,
+      scope = Core.Nothing
+    }
+
+instance Core.FromJSON AclRule where
+  parseJSON =
+    Core.withObject
+      "AclRule"
+      ( \o ->
+          AclRule
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#aclRule")
+            Core.<*> (o Core..:? "role")
+            Core.<*> (o Core..:? "scope")
+      )
+
+instance Core.ToJSON AclRule where
+  toJSON AclRule {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("role" Core..=) Core.<$> role',
+            ("scope" Core..=) Core.<$> scope
+          ]
+      )
+
+-- | The extent to which calendar access is granted by this ACL rule.
+--
+-- /See:/ 'newAclRule_Scope' smart constructor.
+data AclRule_Scope = AclRule_Scope
+  { -- | The type of the scope. Possible values are:
+    -- - \"default\" - The public scope. This is the default value. - \"user\" - Limits the scope to a single user. - \"group\" - Limits the scope to a group. - \"domain\" - Limits the scope to a domain. Note: The permissions granted to the \"default\", or public, scope apply to any user, authenticated or not.
+    type' :: (Core.Maybe Core.Text),
+    -- | The email address of a user or group, or the name of a domain, depending on the scope type. Omitted for type \"default\".
+    value :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'AclRule_Scope' with the minimum fields required to make a request.
+newAclRule_Scope ::
+  AclRule_Scope
+newAclRule_Scope =
+  AclRule_Scope {type' = Core.Nothing, value = Core.Nothing}
+
+instance Core.FromJSON AclRule_Scope where
+  parseJSON =
+    Core.withObject
+      "AclRule_Scope"
+      ( \o ->
+          AclRule_Scope
+            Core.<$> (o Core..:? "type")
+            Core.<*> (o Core..:? "value")
+      )
+
+instance Core.ToJSON AclRule_Scope where
+  toJSON AclRule_Scope {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("type" Core..=) Core.<$> type',
+            ("value" Core..=) Core.<$> value
+          ]
+      )
+
+--
+-- /See:/ 'newCalendar' smart constructor.
+data Calendar = Calendar
+  { -- | Conferencing properties for this calendar, for example what types of conferences are allowed.
+    conferenceProperties :: (Core.Maybe ConferenceProperties),
+    -- | Description of the calendar. Optional.
+    description :: (Core.Maybe Core.Text),
+    -- | ETag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | Identifier of the calendar. To retrieve IDs call the calendarList.list() method.
+    id :: (Core.Maybe Core.Text),
+    -- | Type of the resource (\"calendar#calendar\").
+    kind :: Core.Text,
+    -- | Geographic location of the calendar as free-form text. Optional.
+    location :: (Core.Maybe Core.Text),
+    -- | Title of the calendar.
+    summary :: (Core.Maybe Core.Text),
+    -- | The time zone of the calendar. (Formatted as an IANA Time Zone Database name, e.g. \"Europe\/Zurich\".) Optional.
+    timeZone :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Calendar' with the minimum fields required to make a request.
+newCalendar ::
+  Calendar
+newCalendar =
+  Calendar
+    { conferenceProperties = Core.Nothing,
+      description = Core.Nothing,
+      etag = Core.Nothing,
+      id = Core.Nothing,
+      kind = "calendar#calendar",
+      location = Core.Nothing,
+      summary = Core.Nothing,
+      timeZone = Core.Nothing
+    }
+
+instance Core.FromJSON Calendar where
+  parseJSON =
+    Core.withObject
+      "Calendar"
+      ( \o ->
+          Calendar
+            Core.<$> (o Core..:? "conferenceProperties")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#calendar")
+            Core.<*> (o Core..:? "location")
+            Core.<*> (o Core..:? "summary")
+            Core.<*> (o Core..:? "timeZone")
+      )
+
+instance Core.ToJSON Calendar where
+  toJSON Calendar {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("conferenceProperties" Core..=) Core.<$> conferenceProperties,
+            ("description" Core..=) Core.<$> description,
+            ("etag" Core..=) Core.<$> etag,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("location" Core..=) Core.<$> location,
+            ("summary" Core..=) Core.<$> summary,
+            ("timeZone" Core..=) Core.<$> timeZone
+          ]
+      )
+
+--
+-- /See:/ 'newCalendarList' smart constructor.
+data CalendarList = CalendarList
+  { -- | ETag of the collection.
+    etag :: (Core.Maybe Core.Text),
+    -- | Calendars that are present on the user\'s calendar list.
+    items :: (Core.Maybe [CalendarListEntry]),
+    -- | Type of the collection (\"calendar#calendarList\").
+    kind :: Core.Text,
+    -- | Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    nextSyncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarList' with the minimum fields required to make a request.
+newCalendarList ::
+  CalendarList
+newCalendarList =
+  CalendarList
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = "calendar#calendarList",
+      nextPageToken = Core.Nothing,
+      nextSyncToken = Core.Nothing
+    }
+
+instance Core.FromJSON CalendarList where
+  parseJSON =
+    Core.withObject
+      "CalendarList"
+      ( \o ->
+          CalendarList
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#calendarList")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "nextSyncToken")
+      )
+
+instance Core.ToJSON CalendarList where
+  toJSON CalendarList {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("nextSyncToken" Core..=) Core.<$> nextSyncToken
+          ]
+      )
+
+--
+-- /See:/ 'newCalendarListEntry' smart constructor.
+data CalendarListEntry = CalendarListEntry
+  { -- | The effective access role that the authenticated user has on the calendar. Read-only. Possible values are:
+    -- - \"freeBusyReader\" - Provides read access to free\/busy information. - \"reader\" - Provides read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - \"writer\" - Provides read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. - \"owner\" - Provides ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    accessRole :: (Core.Maybe Core.Text),
+    -- | The main color of the calendar in the hexadecimal format \"#0088aa\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.
+    backgroundColor :: (Core.Maybe Core.Text),
+    -- | The color of the calendar. This is an ID referring to an entry in the calendar section of the colors definition (see the colors endpoint). This property is superseded by the backgroundColor and foregroundColor properties and can be ignored when using these properties. Optional.
+    colorId :: (Core.Maybe Core.Text),
+    -- | Conferencing properties for this calendar, for example what types of conferences are allowed.
+    conferenceProperties :: (Core.Maybe ConferenceProperties),
+    -- | The default reminders that the authenticated user has for this calendar.
+    defaultReminders :: (Core.Maybe [EventReminder]),
+    -- | Whether this calendar list entry has been deleted from the calendar list. Read-only. Optional. The default is False.
+    deleted :: Core.Bool,
+    -- | Description of the calendar. Optional. Read-only.
+    description :: (Core.Maybe Core.Text),
+    -- | ETag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | The foreground color of the calendar in the hexadecimal format \"#ffffff\". This property supersedes the index-based colorId property. To set or change this property, you need to specify colorRgbFormat=true in the parameters of the insert, update and patch methods. Optional.
+    foregroundColor :: (Core.Maybe Core.Text),
+    -- | Whether the calendar has been hidden from the list. Optional. The attribute is only returned when the calendar is hidden, in which case the value is true.
+    hidden :: Core.Bool,
+    -- | Identifier of the calendar.
+    id :: (Core.Maybe Core.Text),
+    -- | Type of the resource (\"calendar#calendarListEntry\").
+    kind :: Core.Text,
+    -- | Geographic location of the calendar as free-form text. Optional. Read-only.
+    location :: (Core.Maybe Core.Text),
+    -- | The notifications that the authenticated user is receiving for this calendar.
+    notificationSettings :: (Core.Maybe CalendarListEntry_NotificationSettings),
+    -- | Whether the calendar is the primary calendar of the authenticated user. Read-only. Optional. The default is False.
+    primary :: Core.Bool,
+    -- | Whether the calendar content shows up in the calendar UI. Optional. The default is False.
+    selected :: Core.Bool,
+    -- | Title of the calendar. Read-only.
+    summary :: (Core.Maybe Core.Text),
+    -- | The summary that the authenticated user has set for this calendar. Optional.
+    summaryOverride :: (Core.Maybe Core.Text),
+    -- | The time zone of the calendar. Optional. Read-only.
+    timeZone :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarListEntry' with the minimum fields required to make a request.
+newCalendarListEntry ::
+  CalendarListEntry
+newCalendarListEntry =
+  CalendarListEntry
+    { accessRole = Core.Nothing,
+      backgroundColor = Core.Nothing,
+      colorId = Core.Nothing,
+      conferenceProperties = Core.Nothing,
+      defaultReminders = Core.Nothing,
+      deleted = Core.False,
+      description = Core.Nothing,
+      etag = Core.Nothing,
+      foregroundColor = Core.Nothing,
+      hidden = Core.False,
+      id = Core.Nothing,
+      kind = "calendar#calendarListEntry",
+      location = Core.Nothing,
+      notificationSettings = Core.Nothing,
+      primary = Core.False,
+      selected = Core.False,
+      summary = Core.Nothing,
+      summaryOverride = Core.Nothing,
+      timeZone = Core.Nothing
+    }
+
+instance Core.FromJSON CalendarListEntry where
+  parseJSON =
+    Core.withObject
+      "CalendarListEntry"
+      ( \o ->
+          CalendarListEntry
+            Core.<$> (o Core..:? "accessRole")
+            Core.<*> (o Core..:? "backgroundColor")
+            Core.<*> (o Core..:? "colorId")
+            Core.<*> (o Core..:? "conferenceProperties")
+            Core.<*> (o Core..:? "defaultReminders")
+            Core.<*> (o Core..:? "deleted" Core..!= Core.False)
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "foregroundColor")
+            Core.<*> (o Core..:? "hidden" Core..!= Core.False)
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#calendarListEntry")
+            Core.<*> (o Core..:? "location")
+            Core.<*> (o Core..:? "notificationSettings")
+            Core.<*> (o Core..:? "primary" Core..!= Core.False)
+            Core.<*> (o Core..:? "selected" Core..!= Core.False)
+            Core.<*> (o Core..:? "summary")
+            Core.<*> (o Core..:? "summaryOverride")
+            Core.<*> (o Core..:? "timeZone")
+      )
+
+instance Core.ToJSON CalendarListEntry where
+  toJSON CalendarListEntry {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("accessRole" Core..=) Core.<$> accessRole,
+            ("backgroundColor" Core..=) Core.<$> backgroundColor,
+            ("colorId" Core..=) Core.<$> colorId,
+            ("conferenceProperties" Core..=) Core.<$> conferenceProperties,
+            ("defaultReminders" Core..=) Core.<$> defaultReminders,
+            Core.Just ("deleted" Core..= deleted),
+            ("description" Core..=) Core.<$> description,
+            ("etag" Core..=) Core.<$> etag,
+            ("foregroundColor" Core..=) Core.<$> foregroundColor,
+            Core.Just ("hidden" Core..= hidden),
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("location" Core..=) Core.<$> location,
+            ("notificationSettings" Core..=) Core.<$> notificationSettings,
+            Core.Just ("primary" Core..= primary),
+            Core.Just ("selected" Core..= selected),
+            ("summary" Core..=) Core.<$> summary,
+            ("summaryOverride" Core..=) Core.<$> summaryOverride,
+            ("timeZone" Core..=) Core.<$> timeZone
+          ]
+      )
+
+-- | The notifications that the authenticated user is receiving for this calendar.
+--
+-- /See:/ 'newCalendarListEntry_NotificationSettings' smart constructor.
+newtype CalendarListEntry_NotificationSettings = CalendarListEntry_NotificationSettings
+  { -- | The list of notifications set for this calendar.
+    notifications :: (Core.Maybe [CalendarNotification])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarListEntry_NotificationSettings' with the minimum fields required to make a request.
+newCalendarListEntry_NotificationSettings ::
+  CalendarListEntry_NotificationSettings
+newCalendarListEntry_NotificationSettings =
+  CalendarListEntry_NotificationSettings
+    { notifications =
+        Core.Nothing
+    }
+
+instance Core.FromJSON CalendarListEntry_NotificationSettings where
+  parseJSON =
+    Core.withObject
+      "CalendarListEntry_NotificationSettings"
+      ( \o ->
+          CalendarListEntry_NotificationSettings
+            Core.<$> (o Core..:? "notifications")
+      )
+
+instance Core.ToJSON CalendarListEntry_NotificationSettings where
+  toJSON CalendarListEntry_NotificationSettings {..} =
+    Core.object
+      (Core.catMaybes [("notifications" Core..=) Core.<$> notifications])
+
+--
+-- /See:/ 'newCalendarNotification' smart constructor.
+data CalendarNotification = CalendarNotification
+  { -- | The method used to deliver the notification. The possible value is:
+    -- - \"email\" - Notifications are sent via email.
+    -- Required when adding a notification.
+    method :: (Core.Maybe Core.Text),
+    -- | The type of notification. Possible values are:
+    -- - \"eventCreation\" - Notification sent when a new event is put on the calendar. - \"eventChange\" - Notification sent when an event is changed. - \"eventCancellation\" - Notification sent when an event is cancelled. - \"eventResponse\" - Notification sent when an attendee responds to the event invitation. - \"agenda\" - An agenda with the events of the day (sent out in the morning).
+    -- Required when adding a notification.
+    type' :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CalendarNotification' with the minimum fields required to make a request.
+newCalendarNotification ::
+  CalendarNotification
+newCalendarNotification =
+  CalendarNotification {method = Core.Nothing, type' = Core.Nothing}
+
+instance Core.FromJSON CalendarNotification where
+  parseJSON =
+    Core.withObject
+      "CalendarNotification"
+      ( \o ->
+          CalendarNotification
+            Core.<$> (o Core..:? "method")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON CalendarNotification where
+  toJSON CalendarNotification {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("method" Core..=) Core.<$> method,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+--
+-- /See:/ 'newChannel' smart constructor.
+data Channel = Channel
+  { -- | The address where notifications are delivered for this channel.
+    address :: (Core.Maybe Core.Text),
+    -- | Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds. Optional.
+    expiration :: (Core.Maybe Core.Int64),
+    -- | A UUID or similar unique string that identifies this channel.
+    id :: (Core.Maybe Core.Text),
+    -- | Identifies this as a notification channel used to watch for changes to a resource, which is \"api#channel\".
+    kind :: Core.Text,
+    -- | Additional parameters controlling delivery channel behavior. Optional.
+    params :: (Core.Maybe Channel_Params),
+    -- | A Boolean value to indicate whether payload is wanted. Optional.
+    payload :: (Core.Maybe Core.Bool),
+    -- | An opaque ID that identifies the resource being watched on this channel. Stable across different API versions.
+    resourceId :: (Core.Maybe Core.Text),
+    -- | A version-specific identifier for the watched resource.
+    resourceUri :: (Core.Maybe Core.Text),
+    -- | An arbitrary string delivered to the target address with each notification delivered over this channel. Optional.
+    token :: (Core.Maybe Core.Text),
+    -- | The type of delivery mechanism used for this channel. Valid values are \"web_hook\" (or \"webhook\"). Both values refer to a channel where Http requests are used to deliver messages.
+    type' :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Channel' with the minimum fields required to make a request.
+newChannel ::
+  Channel
+newChannel =
+  Channel
+    { address = Core.Nothing,
+      expiration = Core.Nothing,
+      id = Core.Nothing,
+      kind = "api#channel",
+      params = Core.Nothing,
+      payload = Core.Nothing,
+      resourceId = Core.Nothing,
+      resourceUri = Core.Nothing,
+      token = Core.Nothing,
+      type' = Core.Nothing
+    }
+
+instance Core.FromJSON Channel where
+  parseJSON =
+    Core.withObject
+      "Channel"
+      ( \o ->
+          Channel
+            Core.<$> (o Core..:? "address")
+            Core.<*> (o Core..:? "expiration" Core.<&> Core.fmap Core.fromAsText)
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "api#channel")
+            Core.<*> (o Core..:? "params")
+            Core.<*> (o Core..:? "payload")
+            Core.<*> (o Core..:? "resourceId")
+            Core.<*> (o Core..:? "resourceUri")
+            Core.<*> (o Core..:? "token")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON Channel where
+  toJSON Channel {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("address" Core..=) Core.<$> address,
+            ("expiration" Core..=) Core.. Core.AsText Core.<$> expiration,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("params" Core..=) Core.<$> params,
+            ("payload" Core..=) Core.<$> payload,
+            ("resourceId" Core..=) Core.<$> resourceId,
+            ("resourceUri" Core..=) Core.<$> resourceUri,
+            ("token" Core..=) Core.<$> token,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+-- | Additional parameters controlling delivery channel behavior. Optional.
+--
+-- /See:/ 'newChannel_Params' smart constructor.
+newtype Channel_Params = Channel_Params
+  { -- | Declares a new parameter by name.
+    additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Channel_Params' with the minimum fields required to make a request.
+newChannel_Params ::
+  -- |  Declares a new parameter by name. See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  Channel_Params
+newChannel_Params additional =
+  Channel_Params {additional = additional}
+
+instance Core.FromJSON Channel_Params where
+  parseJSON =
+    Core.withObject
+      "Channel_Params"
+      (\o -> Channel_Params Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON Channel_Params where
+  toJSON Channel_Params {..} = Core.toJSON additional
+
+--
+-- /See:/ 'newColorDefinition' smart constructor.
+data ColorDefinition = ColorDefinition
+  { -- | The background color associated with this color definition.
+    background :: (Core.Maybe Core.Text),
+    -- | The foreground color that can be used to write on top of a background with \'background\' color.
+    foreground :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ColorDefinition' with the minimum fields required to make a request.
+newColorDefinition ::
+  ColorDefinition
+newColorDefinition =
+  ColorDefinition
+    { background = Core.Nothing,
+      foreground = Core.Nothing
+    }
+
+instance Core.FromJSON ColorDefinition where
+  parseJSON =
+    Core.withObject
+      "ColorDefinition"
+      ( \o ->
+          ColorDefinition
+            Core.<$> (o Core..:? "background")
+            Core.<*> (o Core..:? "foreground")
+      )
+
+instance Core.ToJSON ColorDefinition where
+  toJSON ColorDefinition {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("background" Core..=) Core.<$> background,
+            ("foreground" Core..=) Core.<$> foreground
+          ]
+      )
+
+--
+-- /See:/ 'newColors' smart constructor.
+data Colors = Colors
+  { -- | A global palette of calendar colors, mapping from the color ID to its definition. A calendarListEntry resource refers to one of these color IDs in its colorId field. Read-only.
+    calendar :: (Core.Maybe Colors_Calendar),
+    -- | A global palette of event colors, mapping from the color ID to its definition. An event resource may refer to one of these color IDs in its colorId field. Read-only.
+    event :: (Core.Maybe Colors_Event),
+    -- | Type of the resource (\"calendar#colors\").
+    kind :: Core.Text,
+    -- | Last modification time of the color palette (as a RFC3339 timestamp). Read-only.
+    updated :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Colors' with the minimum fields required to make a request.
+newColors ::
+  Colors
+newColors =
+  Colors
+    { calendar = Core.Nothing,
+      event = Core.Nothing,
+      kind = "calendar#colors",
+      updated = Core.Nothing
+    }
+
+instance Core.FromJSON Colors where
+  parseJSON =
+    Core.withObject
+      "Colors"
+      ( \o ->
+          Colors
+            Core.<$> (o Core..:? "calendar")
+            Core.<*> (o Core..:? "event")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#colors")
+            Core.<*> (o Core..:? "updated")
+      )
+
+instance Core.ToJSON Colors where
+  toJSON Colors {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("calendar" Core..=) Core.<$> calendar,
+            ("event" Core..=) Core.<$> event,
+            Core.Just ("kind" Core..= kind),
+            ("updated" Core..=) Core.<$> updated
+          ]
+      )
+
+-- | A global palette of calendar colors, mapping from the color ID to its definition. A calendarListEntry resource refers to one of these color IDs in its colorId field. Read-only.
+--
+-- /See:/ 'newColors_Calendar' smart constructor.
+newtype Colors_Calendar = Colors_Calendar
+  { -- | A calendar color definition.
+    additional :: (Core.HashMap Core.Text ColorDefinition)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Colors_Calendar' with the minimum fields required to make a request.
+newColors_Calendar ::
+  -- |  A calendar color definition. See 'additional'.
+  Core.HashMap Core.Text ColorDefinition ->
+  Colors_Calendar
+newColors_Calendar additional =
+  Colors_Calendar {additional = additional}
+
+instance Core.FromJSON Colors_Calendar where
+  parseJSON =
+    Core.withObject
+      "Colors_Calendar"
+      (\o -> Colors_Calendar Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON Colors_Calendar where
+  toJSON Colors_Calendar {..} = Core.toJSON additional
+
+-- | A global palette of event colors, mapping from the color ID to its definition. An event resource may refer to one of these color IDs in its colorId field. Read-only.
+--
+-- /See:/ 'newColors_Event' smart constructor.
+newtype Colors_Event = Colors_Event
+  { -- | An event color definition.
+    additional :: (Core.HashMap Core.Text ColorDefinition)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Colors_Event' with the minimum fields required to make a request.
+newColors_Event ::
+  -- |  An event color definition. See 'additional'.
+  Core.HashMap Core.Text ColorDefinition ->
+  Colors_Event
+newColors_Event additional = Colors_Event {additional = additional}
+
+instance Core.FromJSON Colors_Event where
+  parseJSON =
+    Core.withObject
+      "Colors_Event"
+      (\o -> Colors_Event Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON Colors_Event where
+  toJSON Colors_Event {..} = Core.toJSON additional
+
+--
+-- /See:/ 'newConferenceData' smart constructor.
+data ConferenceData = ConferenceData
+  { -- | The ID of the conference. Can be used by developers to keep track of conferences, should not be displayed to users. The ID value is formed differently for each conference solution type:
+    -- - eventHangout: ID is not set. (This conference type is deprecated.) - eventNamedHangout: ID is the name of the Hangout. (This conference type is deprecated.) - hangoutsMeet: ID is the 10-letter meeting code, for example aaa-bbbb-ccc. - addOn: ID is defined by the third-party provider. Optional.
+    conferenceId :: (Core.Maybe Core.Text),
+    -- | The conference solution, such as Google Meet. Unset for a conference with a failed create request. Either conferenceSolution and at least one entryPoint, or createRequest is required.
+    conferenceSolution :: (Core.Maybe ConferenceSolution),
+    -- | A request to generate a new conference and attach it to the event. The data is generated asynchronously. To see whether the data is present check the status field. Either conferenceSolution and at least one entryPoint, or createRequest is required.
+    createRequest :: (Core.Maybe CreateConferenceRequest),
+    -- | Information about individual conference entry points, such as URLs or phone numbers. All of them must belong to the same conference. Either conferenceSolution and at least one entryPoint, or createRequest is required.
+    entryPoints :: (Core.Maybe [EntryPoint]),
+    -- | Additional notes (such as instructions from the domain administrator, legal notices) to display to the user. Can contain HTML. The maximum length is 2048 characters. Optional.
+    notes :: (Core.Maybe Core.Text),
+    -- | Additional properties related to a conference. An example would be a solution-specific setting for enabling video streaming.
+    parameters :: (Core.Maybe ConferenceParameters),
+    -- | The signature of the conference data. Generated on server side. Unset for a conference with a failed create request. Optional for a conference with a pending create request.
+    signature :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceData' with the minimum fields required to make a request.
+newConferenceData ::
+  ConferenceData
+newConferenceData =
+  ConferenceData
+    { conferenceId = Core.Nothing,
+      conferenceSolution = Core.Nothing,
+      createRequest = Core.Nothing,
+      entryPoints = Core.Nothing,
+      notes = Core.Nothing,
+      parameters = Core.Nothing,
+      signature = Core.Nothing
+    }
+
+instance Core.FromJSON ConferenceData where
+  parseJSON =
+    Core.withObject
+      "ConferenceData"
+      ( \o ->
+          ConferenceData
+            Core.<$> (o Core..:? "conferenceId")
+            Core.<*> (o Core..:? "conferenceSolution")
+            Core.<*> (o Core..:? "createRequest")
+            Core.<*> (o Core..:? "entryPoints")
+            Core.<*> (o Core..:? "notes")
+            Core.<*> (o Core..:? "parameters")
+            Core.<*> (o Core..:? "signature")
+      )
+
+instance Core.ToJSON ConferenceData where
+  toJSON ConferenceData {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("conferenceId" Core..=) Core.<$> conferenceId,
+            ("conferenceSolution" Core..=) Core.<$> conferenceSolution,
+            ("createRequest" Core..=) Core.<$> createRequest,
+            ("entryPoints" Core..=) Core.<$> entryPoints,
+            ("notes" Core..=) Core.<$> notes,
+            ("parameters" Core..=) Core.<$> parameters,
+            ("signature" Core..=) Core.<$> signature
+          ]
+      )
+
+--
+-- /See:/ 'newConferenceParameters' smart constructor.
+newtype ConferenceParameters = ConferenceParameters
+  { -- | Additional add-on specific data.
+    addOnParameters :: (Core.Maybe ConferenceParametersAddOnParameters)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceParameters' with the minimum fields required to make a request.
+newConferenceParameters ::
+  ConferenceParameters
+newConferenceParameters =
+  ConferenceParameters {addOnParameters = Core.Nothing}
+
+instance Core.FromJSON ConferenceParameters where
+  parseJSON =
+    Core.withObject
+      "ConferenceParameters"
+      ( \o ->
+          ConferenceParameters Core.<$> (o Core..:? "addOnParameters")
+      )
+
+instance Core.ToJSON ConferenceParameters where
+  toJSON ConferenceParameters {..} =
+    Core.object
+      ( Core.catMaybes
+          [("addOnParameters" Core..=) Core.<$> addOnParameters]
+      )
+
+--
+-- /See:/ 'newConferenceParametersAddOnParameters' smart constructor.
+newtype ConferenceParametersAddOnParameters = ConferenceParametersAddOnParameters
+  { parameters :: (Core.Maybe ConferenceParametersAddOnParameters_Parameters)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceParametersAddOnParameters' with the minimum fields required to make a request.
+newConferenceParametersAddOnParameters ::
+  ConferenceParametersAddOnParameters
+newConferenceParametersAddOnParameters =
+  ConferenceParametersAddOnParameters {parameters = Core.Nothing}
+
+instance Core.FromJSON ConferenceParametersAddOnParameters where
+  parseJSON =
+    Core.withObject
+      "ConferenceParametersAddOnParameters"
+      ( \o ->
+          ConferenceParametersAddOnParameters
+            Core.<$> (o Core..:? "parameters")
+      )
+
+instance Core.ToJSON ConferenceParametersAddOnParameters where
+  toJSON ConferenceParametersAddOnParameters {..} =
+    Core.object
+      (Core.catMaybes [("parameters" Core..=) Core.<$> parameters])
+
+--
+-- /See:/ 'newConferenceParametersAddOnParameters_Parameters' smart constructor.
+newtype ConferenceParametersAddOnParameters_Parameters = ConferenceParametersAddOnParameters_Parameters
+  { additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceParametersAddOnParameters_Parameters' with the minimum fields required to make a request.
+newConferenceParametersAddOnParameters_Parameters ::
+  -- |  See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  ConferenceParametersAddOnParameters_Parameters
+newConferenceParametersAddOnParameters_Parameters additional =
+  ConferenceParametersAddOnParameters_Parameters
+    { additional =
+        additional
+    }
+
+instance
+  Core.FromJSON
+    ConferenceParametersAddOnParameters_Parameters
+  where
+  parseJSON =
+    Core.withObject
+      "ConferenceParametersAddOnParameters_Parameters"
+      ( \o ->
+          ConferenceParametersAddOnParameters_Parameters
+            Core.<$> (Core.parseJSONObject o)
+      )
+
+instance Core.ToJSON ConferenceParametersAddOnParameters_Parameters where
+  toJSON ConferenceParametersAddOnParameters_Parameters {..} =
+    Core.toJSON additional
+
+--
+-- /See:/ 'newConferenceProperties' smart constructor.
+newtype ConferenceProperties = ConferenceProperties
+  { -- | The types of conference solutions that are supported for this calendar. The possible values are:
+    -- - \"eventHangout\" - \"eventNamedHangout\" - \"hangoutsMeet\" Optional.
+    allowedConferenceSolutionTypes :: (Core.Maybe [Core.Text])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceProperties' with the minimum fields required to make a request.
+newConferenceProperties ::
+  ConferenceProperties
+newConferenceProperties =
+  ConferenceProperties
+    { allowedConferenceSolutionTypes =
+        Core.Nothing
+    }
+
+instance Core.FromJSON ConferenceProperties where
+  parseJSON =
+    Core.withObject
+      "ConferenceProperties"
+      ( \o ->
+          ConferenceProperties
+            Core.<$> (o Core..:? "allowedConferenceSolutionTypes")
+      )
+
+instance Core.ToJSON ConferenceProperties where
+  toJSON ConferenceProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("allowedConferenceSolutionTypes" Core..=)
+              Core.<$> allowedConferenceSolutionTypes
+          ]
+      )
+
+--
+-- /See:/ 'newConferenceRequestStatus' smart constructor.
+newtype ConferenceRequestStatus = ConferenceRequestStatus
+  { -- | The current status of the conference create request. Read-only. The possible values are:
+    -- - \"pending\": the conference create request is still being processed. - \"success\": the conference create request succeeded, the entry points are populated. - \"failure\": the conference create request failed, there are no entry points.
+    statusCode :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceRequestStatus' with the minimum fields required to make a request.
+newConferenceRequestStatus ::
+  ConferenceRequestStatus
+newConferenceRequestStatus =
+  ConferenceRequestStatus {statusCode = Core.Nothing}
+
+instance Core.FromJSON ConferenceRequestStatus where
+  parseJSON =
+    Core.withObject
+      "ConferenceRequestStatus"
+      (\o -> ConferenceRequestStatus Core.<$> (o Core..:? "statusCode"))
+
+instance Core.ToJSON ConferenceRequestStatus where
+  toJSON ConferenceRequestStatus {..} =
+    Core.object
+      (Core.catMaybes [("statusCode" Core..=) Core.<$> statusCode])
+
+--
+-- /See:/ 'newConferenceSolution' smart constructor.
+data ConferenceSolution = ConferenceSolution
+  { -- | The user-visible icon for this solution.
+    iconUri :: (Core.Maybe Core.Text),
+    -- | The key which can uniquely identify the conference solution for this event.
+    key :: (Core.Maybe ConferenceSolutionKey),
+    -- | The user-visible name of this solution. Not localized.
+    name :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceSolution' with the minimum fields required to make a request.
+newConferenceSolution ::
+  ConferenceSolution
+newConferenceSolution =
+  ConferenceSolution
+    { iconUri = Core.Nothing,
+      key = Core.Nothing,
+      name = Core.Nothing
+    }
+
+instance Core.FromJSON ConferenceSolution where
+  parseJSON =
+    Core.withObject
+      "ConferenceSolution"
+      ( \o ->
+          ConferenceSolution
+            Core.<$> (o Core..:? "iconUri")
+            Core.<*> (o Core..:? "key")
+            Core.<*> (o Core..:? "name")
+      )
+
+instance Core.ToJSON ConferenceSolution where
+  toJSON ConferenceSolution {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("iconUri" Core..=) Core.<$> iconUri,
+            ("key" Core..=) Core.<$> key,
+            ("name" Core..=) Core.<$> name
+          ]
+      )
+
+--
+-- /See:/ 'newConferenceSolutionKey' smart constructor.
+newtype ConferenceSolutionKey = ConferenceSolutionKey
+  { -- | The conference solution type. If a client encounters an unfamiliar or empty type, it should still be able to display the entry points. However, it should disallow modifications. The possible values are:
+    -- - \"eventHangout\" for Hangouts for consumers (deprecated; existing events may show this conference solution type but new conferences cannot be created) - \"eventNamedHangout\" for classic Hangouts for Google Workspace users (deprecated; existing events may show this conference solution type but new conferences cannot be created) - \"hangoutsMeet\" for Google Meet (http:\/\/meet.google.com) - \"addOn\" for 3P conference providers
+    type' :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ConferenceSolutionKey' with the minimum fields required to make a request.
+newConferenceSolutionKey ::
+  ConferenceSolutionKey
+newConferenceSolutionKey =
+  ConferenceSolutionKey {type' = Core.Nothing}
+
+instance Core.FromJSON ConferenceSolutionKey where
+  parseJSON =
+    Core.withObject
+      "ConferenceSolutionKey"
+      (\o -> ConferenceSolutionKey Core.<$> (o Core..:? "type"))
+
+instance Core.ToJSON ConferenceSolutionKey where
+  toJSON ConferenceSolutionKey {..} =
+    Core.object (Core.catMaybes [("type" Core..=) Core.<$> type'])
+
+--
+-- /See:/ 'newCreateConferenceRequest' smart constructor.
+data CreateConferenceRequest = CreateConferenceRequest
+  { -- | The conference solution, such as Hangouts or Google Meet.
+    conferenceSolutionKey :: (Core.Maybe ConferenceSolutionKey),
+    -- | The client-generated unique ID for this request. Clients should regenerate this ID for every new request. If an ID provided is the same as for the previous request, the request is ignored.
+    requestId :: (Core.Maybe Core.Text),
+    -- | The status of the conference create request.
+    status :: (Core.Maybe ConferenceRequestStatus)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'CreateConferenceRequest' with the minimum fields required to make a request.
+newCreateConferenceRequest ::
+  CreateConferenceRequest
+newCreateConferenceRequest =
+  CreateConferenceRequest
+    { conferenceSolutionKey = Core.Nothing,
+      requestId = Core.Nothing,
+      status = Core.Nothing
+    }
+
+instance Core.FromJSON CreateConferenceRequest where
+  parseJSON =
+    Core.withObject
+      "CreateConferenceRequest"
+      ( \o ->
+          CreateConferenceRequest
+            Core.<$> (o Core..:? "conferenceSolutionKey")
+            Core.<*> (o Core..:? "requestId")
+            Core.<*> (o Core..:? "status")
+      )
+
+instance Core.ToJSON CreateConferenceRequest where
+  toJSON CreateConferenceRequest {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("conferenceSolutionKey" Core..=) Core.<$> conferenceSolutionKey,
+            ("requestId" Core..=) Core.<$> requestId,
+            ("status" Core..=) Core.<$> status
+          ]
+      )
+
+--
+-- /See:/ 'newEntryPoint' smart constructor.
+data EntryPoint = EntryPoint
+  { -- | The access code to access the conference. The maximum length is 128 characters. When creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed. Optional.
+    accessCode :: (Core.Maybe Core.Text),
+    -- | Features of the entry point, such as being toll or toll-free. One entry point can have multiple features. However, toll and toll-free cannot be both set on the same entry point.
+    entryPointFeatures :: (Core.Maybe [Core.Text]),
+    -- | The type of the conference entry point. Possible values are:
+    -- - \"video\" - joining a conference over HTTP. A conference can have zero or one video entry point. - \"phone\" - joining a conference by dialing a phone number. A conference can have zero or more phone entry points. - \"sip\" - joining a conference over SIP. A conference can have zero or one sip entry point. - \"more\" - further conference joining instructions, for example additional phone numbers. A conference can have zero or one more entry point. A conference with only a more entry point is not a valid conference.
+    entryPointType :: (Core.Maybe Core.Text),
+    -- | The label for the URI. Visible to end users. Not localized. The maximum length is 512 characters. Examples:
+    -- - for video: meet.google.com\/aaa-bbbb-ccc - for phone: +1 123 268 2601 - for sip: 12345678\@altostrat.com - for more: should not be filled
+    -- Optional.
+    label :: (Core.Maybe Core.Text),
+    -- | The meeting code to access the conference. The maximum length is 128 characters. When creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed. Optional.
+    meetingCode :: (Core.Maybe Core.Text),
+    -- | The passcode to access the conference. The maximum length is 128 characters. When creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed.
+    passcode :: (Core.Maybe Core.Text),
+    -- | The password to access the conference. The maximum length is 128 characters. When creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed. Optional.
+    password :: (Core.Maybe Core.Text),
+    -- | The PIN to access the conference. The maximum length is 128 characters. When creating new conference data, populate only the subset of {meetingCode, accessCode, passcode, password, pin} fields that match the terminology that the conference provider uses. Only the populated fields should be displayed. Optional.
+    pin :: (Core.Maybe Core.Text),
+    -- | The CLDR\/ISO 3166 region code for the country associated with this phone access. Example: \"SE\" for Sweden. Calendar backend will populate this field only for EntryPointType.PHONE.
+    regionCode :: (Core.Maybe Core.Text),
+    -- | The URI of the entry point. The maximum length is 1300 characters. Format:
+    -- - for video, http: or https: schema is required. - for phone, tel: schema is required. The URI should include the entire dial sequence (e.g., tel:+12345678900,,,123456789;1234). - for sip, sip: schema is required, e.g., sip:12345678\@myprovider.com. - for more, http: or https: schema is required.
+    uri :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EntryPoint' with the minimum fields required to make a request.
+newEntryPoint ::
+  EntryPoint
+newEntryPoint =
+  EntryPoint
+    { accessCode = Core.Nothing,
+      entryPointFeatures = Core.Nothing,
+      entryPointType = Core.Nothing,
+      label = Core.Nothing,
+      meetingCode = Core.Nothing,
+      passcode = Core.Nothing,
+      password = Core.Nothing,
+      pin = Core.Nothing,
+      regionCode = Core.Nothing,
+      uri = Core.Nothing
+    }
+
+instance Core.FromJSON EntryPoint where
+  parseJSON =
+    Core.withObject
+      "EntryPoint"
+      ( \o ->
+          EntryPoint
+            Core.<$> (o Core..:? "accessCode")
+            Core.<*> (o Core..:? "entryPointFeatures")
+            Core.<*> (o Core..:? "entryPointType")
+            Core.<*> (o Core..:? "label")
+            Core.<*> (o Core..:? "meetingCode")
+            Core.<*> (o Core..:? "passcode")
+            Core.<*> (o Core..:? "password")
+            Core.<*> (o Core..:? "pin")
+            Core.<*> (o Core..:? "regionCode")
+            Core.<*> (o Core..:? "uri")
+      )
+
+instance Core.ToJSON EntryPoint where
+  toJSON EntryPoint {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("accessCode" Core..=) Core.<$> accessCode,
+            ("entryPointFeatures" Core..=) Core.<$> entryPointFeatures,
+            ("entryPointType" Core..=) Core.<$> entryPointType,
+            ("label" Core..=) Core.<$> label,
+            ("meetingCode" Core..=) Core.<$> meetingCode,
+            ("passcode" Core..=) Core.<$> passcode,
+            ("password" Core..=) Core.<$> password,
+            ("pin" Core..=) Core.<$> pin,
+            ("regionCode" Core..=) Core.<$> regionCode,
+            ("uri" Core..=) Core.<$> uri
+          ]
+      )
+
+--
+-- /See:/ 'newError' smart constructor.
+data Error' = Error'
+  { -- | Domain, or broad category, of the error.
+    domain :: (Core.Maybe Core.Text),
+    -- | Specific reason for the error. Some of the possible values are:
+    -- - \"groupTooBig\" - The group of users requested is too large for a single query. - \"tooManyCalendarsRequested\" - The number of calendars requested is too large for a single query. - \"notFound\" - The requested resource was not found. - \"internalError\" - The API service has encountered an internal error. Additional error types may be added in the future, so clients should gracefully handle additional error statuses not included in this list.
+    reason :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Error' with the minimum fields required to make a request.
+newError ::
+  Error'
+newError = Error' {domain = Core.Nothing, reason = Core.Nothing}
+
+instance Core.FromJSON Error' where
+  parseJSON =
+    Core.withObject
+      "Error'"
+      ( \o ->
+          Error'
+            Core.<$> (o Core..:? "domain")
+            Core.<*> (o Core..:? "reason")
+      )
+
+instance Core.ToJSON Error' where
+  toJSON Error' {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("domain" Core..=) Core.<$> domain,
+            ("reason" Core..=) Core.<$> reason
+          ]
+      )
+
+--
+-- /See:/ 'newEvent' smart constructor.
+data Event = Event
+  { -- | Whether anyone can invite themselves to the event (deprecated). Optional. The default is False.
+    anyoneCanAddSelf :: Core.Bool,
+    -- | File attachments for the event. In order to modify attachments the supportsAttachments request parameter should be set to true. There can be at most 25 attachments per event,
+    attachments :: (Core.Maybe [EventAttachment]),
+    -- | The attendees of the event. See the Events with attendees guide for more information on scheduling events with other calendar users. Service accounts need to use domain-wide delegation of authority to populate the attendee list.
+    attendees :: (Core.Maybe [EventAttendee]),
+    -- | Whether attendees may have been omitted from the event\'s representation. When retrieving an event, this may be due to a restriction specified by the maxAttendee query parameter. When updating an event, this can be used to only update the participant\'s response. Optional. The default is False.
+    attendeesOmitted :: Core.Bool,
+    -- | Birthday or special event data. Used if eventType is \"birthday\". Immutable.
+    birthdayProperties :: (Core.Maybe EventBirthdayProperties),
+    -- | The color of the event. This is an ID referring to an entry in the event section of the colors definition (see the colors endpoint). Optional.
+    colorId :: (Core.Maybe Core.Text),
+    -- | The conference-related information, such as details of a Google Meet conference. To create new conference details use the createRequest field. To persist your changes, remember to set the conferenceDataVersion request parameter to 1 for all event modification requests.
+    conferenceData :: (Core.Maybe ConferenceData),
+    -- | Creation time of the event (as a RFC3339 timestamp). Read-only.
+    created :: (Core.Maybe Core.DateTime),
+    -- | The creator of the event. Read-only.
+    creator :: (Core.Maybe Event_Creator),
+    -- | Description of the event. Can contain HTML. Optional.
+    description :: (Core.Maybe Core.Text),
+    -- | The (exclusive) end time of the event. For a recurring event, this is the end time of the first instance.
+    end :: (Core.Maybe EventDateTime),
+    -- | Whether the end time is actually unspecified. An end time is still provided for compatibility reasons, even if this attribute is set to True. The default is False.
+    endTimeUnspecified :: Core.Bool,
+    -- | ETag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | Specific type of the event. This cannot be modified after the event is created. Possible values are:
+    -- - \"birthday\" - A special all-day event with an annual recurrence. - \"default\" - A regular event or not further specified. - \"focusTime\" - A focus-time event. - \"fromGmail\" - An event from Gmail. This type of event cannot be created. - \"outOfOffice\" - An out-of-office event. - \"workingLocation\" - A working location event.
+    eventType :: Core.Text,
+    -- | Extended properties of the event.
+    extendedProperties :: (Core.Maybe Event_ExtendedProperties),
+    -- | Focus Time event data. Used if eventType is focusTime.
+    focusTimeProperties :: (Core.Maybe EventFocusTimeProperties),
+    -- | A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.
+    gadget :: (Core.Maybe Event_Gadget),
+    -- | Whether attendees other than the organizer can invite others to the event. Optional. The default is True.
+    guestsCanInviteOthers :: Core.Bool,
+    -- | Whether attendees other than the organizer can modify the event. Optional. The default is False.
+    guestsCanModify :: Core.Bool,
+    -- | Whether attendees other than the organizer can see who the event\'s attendees are. Optional. The default is True.
+    guestsCanSeeOtherGuests :: Core.Bool,
+    -- | An absolute link to the Google Hangout associated with this event. Read-only.
+    hangoutLink :: (Core.Maybe Core.Text),
+    -- | An absolute link to this event in the Google Calendar Web UI. Read-only.
+    htmlLink :: (Core.Maybe Core.Text),
+    -- | Event unique identifier as defined in RFC5545. It is used to uniquely identify events accross calendaring systems and must be supplied when importing events via the import method. Note that the iCalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same iCalUIDs. To retrieve an event using its iCalUID, call the events.list method using the iCalUID parameter. To retrieve an event using its id, call the events.get method.
+    iCalUID :: (Core.Maybe Core.Text),
+    -- | Opaque identifier of the event. When creating new single or recurring events, you can specify their IDs. Provided IDs must follow these rules:
+    -- - characters allowed in the ID are those used in base32hex encoding, i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938 - the length of the ID must be between 5 and 1024 characters - the ID must be unique per calendar Due to the globally distributed nature of the system, we cannot guarantee that ID collisions will be detected at event creation time. To minimize the risk of collisions we recommend using an established UUID algorithm such as one described in RFC4122. If you do not specify an ID, it will be automatically generated by the server. Note that the icalUID and the id are not identical and only one of them should be supplied at event creation time. One difference in their semantics is that in recurring events, all occurrences of one event have different ids while they all share the same icalUIDs.
+    id :: (Core.Maybe Core.Text),
+    -- | Type of the resource (\"calendar#event\").
+    kind :: Core.Text,
+    -- | Geographic location of the event as free-form text. Optional.
+    location :: (Core.Maybe Core.Text),
+    -- | Whether this is a locked event copy where no changes can be made to the main event fields \"summary\", \"description\", \"location\", \"start\", \"end\" or \"recurrence\". The default is False. Read-Only.
+    locked :: Core.Bool,
+    -- | The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
+    organizer :: (Core.Maybe Event_Organizer),
+    -- | For an instance of a recurring event, this is the time at which this event would start according to the recurrence data in the recurring event identified by recurringEventId. It uniquely identifies the instance within the recurring event series even if the instance was moved to a different time. Immutable.
+    originalStartTime :: (Core.Maybe EventDateTime),
+    -- | Out of office event data. Used if eventType is outOfOffice.
+    outOfOfficeProperties :: (Core.Maybe EventOutOfOfficeProperties),
+    -- | If set to True, Event propagation is disabled. Note that it is not the same thing as Private event properties. Optional. Immutable. The default is False.
+    privateCopy :: Core.Bool,
+    -- | List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as specified in RFC5545. Note that DTSTART and DTEND lines are not allowed in this field; event start and end times are specified in the start and end fields. This field is omitted for single events or instances of recurring events.
+    recurrence :: (Core.Maybe [Core.Text]),
+    -- | For an instance of a recurring event, this is the id of the recurring event to which this instance belongs. Immutable.
+    recurringEventId :: (Core.Maybe Core.Text),
+    -- | Information about the event\'s reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.
+    reminders :: (Core.Maybe Event_Reminders),
+    -- | Sequence number as per iCalendar.
+    sequence :: (Core.Maybe Core.Int32),
+    -- | Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.
+    source :: (Core.Maybe Event_Source),
+    -- | The (inclusive) start time of the event. For a recurring event, this is the start time of the first instance.
+    start :: (Core.Maybe EventDateTime),
+    -- | Status of the event. Optional. Possible values are:
+    -- - \"confirmed\" - The event is confirmed. This is the default status. - \"tentative\" - The event is tentatively confirmed. - \"cancelled\" - The event is cancelled (deleted). The list method returns cancelled events only on incremental sync (when syncToken or updatedMin are specified) or if the showDeleted flag is set to true. The get method always returns them. A cancelled status represents two different states depending on the event type:
+    -- - Cancelled exceptions of an uncancelled recurring event indicate that this instance should no longer be presented to the user. Clients should store these events for the lifetime of the parent recurring event. Cancelled exceptions are only guaranteed to have values for the id, recurringEventId and originalStartTime fields populated. The other fields might be empty.
+    -- - All other cancelled events represent deleted events. Clients should remove their locally synced copies. Such cancelled events will eventually disappear, so do not rely on them being available indefinitely. Deleted events are only guaranteed to have the id field populated. On the organizer\'s calendar, cancelled events continue to expose event details (summary, location, etc.) so that they can be restored (undeleted). Similarly, the events to which the user was invited and that they manually removed continue to provide details. However, incremental sync requests with showDeleted set to false will not return these details. If an event changes its organizer (for example via the move operation) and the original organizer is not on the attendee list, it will leave behind a cancelled event where only the id field is guaranteed to be populated.
+    status :: (Core.Maybe Core.Text),
+    -- | Title of the event.
+    summary :: (Core.Maybe Core.Text),
+    -- | Whether the event blocks time on the calendar. Optional. Possible values are:
+    -- - \"opaque\" - Default value. The event does block time on the calendar. This is equivalent to setting Show me as to Busy in the Calendar UI. - \"transparent\" - The event does not block time on the calendar. This is equivalent to setting Show me as to Available in the Calendar UI.
+    transparency :: Core.Text,
+    -- | Last modification time of the main event data (as a RFC3339 timestamp). Updating event reminders will not cause this to change. Read-only.
+    updated :: (Core.Maybe Core.DateTime),
+    -- | Visibility of the event. Optional. Possible values are:
+    -- - \"default\" - Uses the default visibility for events on the calendar. This is the default value. - \"public\" - The event is public and event details are visible to all readers of the calendar. - \"private\" - The event is private and only event attendees may view event details. - \"confidential\" - The event is private. This value is provided for compatibility reasons.
+    visibility :: Core.Text,
+    -- | Working location event data.
+    workingLocationProperties :: (Core.Maybe EventWorkingLocationProperties)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event' with the minimum fields required to make a request.
+newEvent ::
+  Event
+newEvent =
+  Event
+    { anyoneCanAddSelf = Core.False,
+      attachments = Core.Nothing,
+      attendees = Core.Nothing,
+      attendeesOmitted = Core.False,
+      birthdayProperties = Core.Nothing,
+      colorId = Core.Nothing,
+      conferenceData = Core.Nothing,
+      created = Core.Nothing,
+      creator = Core.Nothing,
+      description = Core.Nothing,
+      end = Core.Nothing,
+      endTimeUnspecified = Core.False,
+      etag = Core.Nothing,
+      eventType = "default",
+      extendedProperties = Core.Nothing,
+      focusTimeProperties = Core.Nothing,
+      gadget = Core.Nothing,
+      guestsCanInviteOthers = Core.True,
+      guestsCanModify = Core.False,
+      guestsCanSeeOtherGuests = Core.True,
+      hangoutLink = Core.Nothing,
+      htmlLink = Core.Nothing,
+      iCalUID = Core.Nothing,
+      id = Core.Nothing,
+      kind = "calendar#event",
+      location = Core.Nothing,
+      locked = Core.False,
+      organizer = Core.Nothing,
+      originalStartTime = Core.Nothing,
+      outOfOfficeProperties = Core.Nothing,
+      privateCopy = Core.False,
+      recurrence = Core.Nothing,
+      recurringEventId = Core.Nothing,
+      reminders = Core.Nothing,
+      sequence = Core.Nothing,
+      source = Core.Nothing,
+      start = Core.Nothing,
+      status = Core.Nothing,
+      summary = Core.Nothing,
+      transparency = "opaque",
+      updated = Core.Nothing,
+      visibility = "default",
+      workingLocationProperties = Core.Nothing
+    }
+
+instance Core.FromJSON Event where
+  parseJSON =
+    Core.withObject
+      "Event"
+      ( \o ->
+          Event
+            Core.<$> (o Core..:? "anyoneCanAddSelf" Core..!= Core.False)
+            Core.<*> (o Core..:? "attachments")
+            Core.<*> (o Core..:? "attendees")
+            Core.<*> (o Core..:? "attendeesOmitted" Core..!= Core.False)
+            Core.<*> (o Core..:? "birthdayProperties")
+            Core.<*> (o Core..:? "colorId")
+            Core.<*> (o Core..:? "conferenceData")
+            Core.<*> (o Core..:? "created")
+            Core.<*> (o Core..:? "creator")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "end")
+            Core.<*> (o Core..:? "endTimeUnspecified" Core..!= Core.False)
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "eventType" Core..!= "default")
+            Core.<*> (o Core..:? "extendedProperties")
+            Core.<*> (o Core..:? "focusTimeProperties")
+            Core.<*> (o Core..:? "gadget")
+            Core.<*> (o Core..:? "guestsCanInviteOthers" Core..!= Core.True)
+            Core.<*> (o Core..:? "guestsCanModify" Core..!= Core.False)
+            Core.<*> (o Core..:? "guestsCanSeeOtherGuests" Core..!= Core.True)
+            Core.<*> (o Core..:? "hangoutLink")
+            Core.<*> (o Core..:? "htmlLink")
+            Core.<*> (o Core..:? "iCalUID")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#event")
+            Core.<*> (o Core..:? "location")
+            Core.<*> (o Core..:? "locked" Core..!= Core.False)
+            Core.<*> (o Core..:? "organizer")
+            Core.<*> (o Core..:? "originalStartTime")
+            Core.<*> (o Core..:? "outOfOfficeProperties")
+            Core.<*> (o Core..:? "privateCopy" Core..!= Core.False)
+            Core.<*> (o Core..:? "recurrence")
+            Core.<*> (o Core..:? "recurringEventId")
+            Core.<*> (o Core..:? "reminders")
+            Core.<*> (o Core..:? "sequence")
+            Core.<*> (o Core..:? "source")
+            Core.<*> (o Core..:? "start")
+            Core.<*> (o Core..:? "status")
+            Core.<*> (o Core..:? "summary")
+            Core.<*> (o Core..:? "transparency" Core..!= "opaque")
+            Core.<*> (o Core..:? "updated")
+            Core.<*> (o Core..:? "visibility" Core..!= "default")
+            Core.<*> (o Core..:? "workingLocationProperties")
+      )
+
+instance Core.ToJSON Event where
+  toJSON Event {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("anyoneCanAddSelf" Core..= anyoneCanAddSelf),
+            ("attachments" Core..=) Core.<$> attachments,
+            ("attendees" Core..=) Core.<$> attendees,
+            Core.Just ("attendeesOmitted" Core..= attendeesOmitted),
+            ("birthdayProperties" Core..=) Core.<$> birthdayProperties,
+            ("colorId" Core..=) Core.<$> colorId,
+            ("conferenceData" Core..=) Core.<$> conferenceData,
+            ("created" Core..=) Core.<$> created,
+            ("creator" Core..=) Core.<$> creator,
+            ("description" Core..=) Core.<$> description,
+            ("end" Core..=) Core.<$> end,
+            Core.Just ("endTimeUnspecified" Core..= endTimeUnspecified),
+            ("etag" Core..=) Core.<$> etag,
+            Core.Just ("eventType" Core..= eventType),
+            ("extendedProperties" Core..=) Core.<$> extendedProperties,
+            ("focusTimeProperties" Core..=) Core.<$> focusTimeProperties,
+            ("gadget" Core..=) Core.<$> gadget,
+            Core.Just ("guestsCanInviteOthers" Core..= guestsCanInviteOthers),
+            Core.Just ("guestsCanModify" Core..= guestsCanModify),
+            Core.Just
+              ("guestsCanSeeOtherGuests" Core..= guestsCanSeeOtherGuests),
+            ("hangoutLink" Core..=) Core.<$> hangoutLink,
+            ("htmlLink" Core..=) Core.<$> htmlLink,
+            ("iCalUID" Core..=) Core.<$> iCalUID,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("location" Core..=) Core.<$> location,
+            Core.Just ("locked" Core..= locked),
+            ("organizer" Core..=) Core.<$> organizer,
+            ("originalStartTime" Core..=) Core.<$> originalStartTime,
+            ("outOfOfficeProperties" Core..=) Core.<$> outOfOfficeProperties,
+            Core.Just ("privateCopy" Core..= privateCopy),
+            ("recurrence" Core..=) Core.<$> recurrence,
+            ("recurringEventId" Core..=) Core.<$> recurringEventId,
+            ("reminders" Core..=) Core.<$> reminders,
+            ("sequence" Core..=) Core.<$> sequence,
+            ("source" Core..=) Core.<$> source,
+            ("start" Core..=) Core.<$> start,
+            ("status" Core..=) Core.<$> status,
+            ("summary" Core..=) Core.<$> summary,
+            Core.Just ("transparency" Core..= transparency),
+            ("updated" Core..=) Core.<$> updated,
+            Core.Just ("visibility" Core..= visibility),
+            ("workingLocationProperties" Core..=)
+              Core.<$> workingLocationProperties
+          ]
+      )
+
+-- | The creator of the event. Read-only.
+--
+-- /See:/ 'newEvent_Creator' smart constructor.
+data Event_Creator = Event_Creator
+  { -- | The creator\'s name, if available.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The creator\'s email address, if available.
+    email :: (Core.Maybe Core.Text),
+    -- | The creator\'s Profile ID, if available.
+    id :: (Core.Maybe Core.Text),
+    -- | Whether the creator corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+    self :: Core.Bool
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Creator' with the minimum fields required to make a request.
+newEvent_Creator ::
+  Event_Creator
+newEvent_Creator =
+  Event_Creator
+    { displayName = Core.Nothing,
+      email = Core.Nothing,
+      id = Core.Nothing,
+      self = Core.False
+    }
+
+instance Core.FromJSON Event_Creator where
+  parseJSON =
+    Core.withObject
+      "Event_Creator"
+      ( \o ->
+          Event_Creator
+            Core.<$> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "email")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "self" Core..!= Core.False)
+      )
+
+instance Core.ToJSON Event_Creator where
+  toJSON Event_Creator {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("displayName" Core..=) Core.<$> displayName,
+            ("email" Core..=) Core.<$> email,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("self" Core..= self)
+          ]
+      )
+
+-- | Extended properties of the event.
+--
+-- /See:/ 'newEvent_ExtendedProperties' smart constructor.
+data Event_ExtendedProperties = Event_ExtendedProperties
+  { -- | Properties that are private to the copy of the event that appears on this calendar.
+    private :: (Core.Maybe Event_ExtendedProperties_Private),
+    -- | Properties that are shared between copies of the event on other attendees\' calendars.
+    shared :: (Core.Maybe Event_ExtendedProperties_Shared)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_ExtendedProperties' with the minimum fields required to make a request.
+newEvent_ExtendedProperties ::
+  Event_ExtendedProperties
+newEvent_ExtendedProperties =
+  Event_ExtendedProperties
+    { private = Core.Nothing,
+      shared = Core.Nothing
+    }
+
+instance Core.FromJSON Event_ExtendedProperties where
+  parseJSON =
+    Core.withObject
+      "Event_ExtendedProperties"
+      ( \o ->
+          Event_ExtendedProperties
+            Core.<$> (o Core..:? "private")
+            Core.<*> (o Core..:? "shared")
+      )
+
+instance Core.ToJSON Event_ExtendedProperties where
+  toJSON Event_ExtendedProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("private" Core..=) Core.<$> private,
+            ("shared" Core..=) Core.<$> shared
+          ]
+      )
+
+-- | Properties that are private to the copy of the event that appears on this calendar.
+--
+-- /See:/ 'newEvent_ExtendedProperties_Private' smart constructor.
+newtype Event_ExtendedProperties_Private = Event_ExtendedProperties_Private
+  { -- | The name of the private property and the corresponding value.
+    additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_ExtendedProperties_Private' with the minimum fields required to make a request.
+newEvent_ExtendedProperties_Private ::
+  -- |  The name of the private property and the corresponding value. See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  Event_ExtendedProperties_Private
+newEvent_ExtendedProperties_Private additional =
+  Event_ExtendedProperties_Private {additional = additional}
+
+instance Core.FromJSON Event_ExtendedProperties_Private where
+  parseJSON =
+    Core.withObject
+      "Event_ExtendedProperties_Private"
+      ( \o ->
+          Event_ExtendedProperties_Private Core.<$> (Core.parseJSONObject o)
+      )
+
+instance Core.ToJSON Event_ExtendedProperties_Private where
+  toJSON Event_ExtendedProperties_Private {..} =
+    Core.toJSON additional
+
+-- | Properties that are shared between copies of the event on other attendees\' calendars.
+--
+-- /See:/ 'newEvent_ExtendedProperties_Shared' smart constructor.
+newtype Event_ExtendedProperties_Shared = Event_ExtendedProperties_Shared
+  { -- | The name of the shared property and the corresponding value.
+    additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_ExtendedProperties_Shared' with the minimum fields required to make a request.
+newEvent_ExtendedProperties_Shared ::
+  -- |  The name of the shared property and the corresponding value. See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  Event_ExtendedProperties_Shared
+newEvent_ExtendedProperties_Shared additional =
+  Event_ExtendedProperties_Shared {additional = additional}
+
+instance Core.FromJSON Event_ExtendedProperties_Shared where
+  parseJSON =
+    Core.withObject
+      "Event_ExtendedProperties_Shared"
+      ( \o ->
+          Event_ExtendedProperties_Shared Core.<$> (Core.parseJSONObject o)
+      )
+
+instance Core.ToJSON Event_ExtendedProperties_Shared where
+  toJSON Event_ExtendedProperties_Shared {..} = Core.toJSON additional
+
+-- | A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.
+--
+-- /See:/ 'newEvent_Gadget' smart constructor.
+data Event_Gadget = Event_Gadget
+  { -- | The gadget\'s display mode. Deprecated. Possible values are:
+    -- - \"icon\" - The gadget displays next to the event\'s title in the calendar view. - \"chip\" - The gadget displays when the event is clicked.
+    display :: (Core.Maybe Core.Text),
+    -- | The gadget\'s height in pixels. The height must be an integer greater than 0. Optional. Deprecated.
+    height :: (Core.Maybe Core.Int32),
+    -- | The gadget\'s icon URL. The URL scheme must be HTTPS. Deprecated.
+    iconLink :: (Core.Maybe Core.Text),
+    -- | The gadget\'s URL. The URL scheme must be HTTPS. Deprecated.
+    link :: (Core.Maybe Core.Text),
+    -- | Preferences.
+    preferences :: (Core.Maybe Event_Gadget_Preferences),
+    -- | The gadget\'s title. Deprecated.
+    title :: (Core.Maybe Core.Text),
+    -- | The gadget\'s type. Deprecated.
+    type' :: (Core.Maybe Core.Text),
+    -- | The gadget\'s width in pixels. The width must be an integer greater than 0. Optional. Deprecated.
+    width :: (Core.Maybe Core.Int32)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Gadget' with the minimum fields required to make a request.
+newEvent_Gadget ::
+  Event_Gadget
+newEvent_Gadget =
+  Event_Gadget
+    { display = Core.Nothing,
+      height = Core.Nothing,
+      iconLink = Core.Nothing,
+      link = Core.Nothing,
+      preferences = Core.Nothing,
+      title = Core.Nothing,
+      type' = Core.Nothing,
+      width = Core.Nothing
+    }
+
+instance Core.FromJSON Event_Gadget where
+  parseJSON =
+    Core.withObject
+      "Event_Gadget"
+      ( \o ->
+          Event_Gadget
+            Core.<$> (o Core..:? "display")
+            Core.<*> (o Core..:? "height")
+            Core.<*> (o Core..:? "iconLink")
+            Core.<*> (o Core..:? "link")
+            Core.<*> (o Core..:? "preferences")
+            Core.<*> (o Core..:? "title")
+            Core.<*> (o Core..:? "type")
+            Core.<*> (o Core..:? "width")
+      )
+
+instance Core.ToJSON Event_Gadget where
+  toJSON Event_Gadget {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("display" Core..=) Core.<$> display,
+            ("height" Core..=) Core.<$> height,
+            ("iconLink" Core..=) Core.<$> iconLink,
+            ("link" Core..=) Core.<$> link,
+            ("preferences" Core..=) Core.<$> preferences,
+            ("title" Core..=) Core.<$> title,
+            ("type" Core..=) Core.<$> type',
+            ("width" Core..=) Core.<$> width
+          ]
+      )
+
+-- | Preferences.
+--
+-- /See:/ 'newEvent_Gadget_Preferences' smart constructor.
+newtype Event_Gadget_Preferences = Event_Gadget_Preferences
+  { -- | The preference name and corresponding value.
+    additional :: (Core.HashMap Core.Text Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Gadget_Preferences' with the minimum fields required to make a request.
+newEvent_Gadget_Preferences ::
+  -- |  The preference name and corresponding value. See 'additional'.
+  Core.HashMap Core.Text Core.Text ->
+  Event_Gadget_Preferences
+newEvent_Gadget_Preferences additional =
+  Event_Gadget_Preferences {additional = additional}
+
+instance Core.FromJSON Event_Gadget_Preferences where
+  parseJSON =
+    Core.withObject
+      "Event_Gadget_Preferences"
+      (\o -> Event_Gadget_Preferences Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON Event_Gadget_Preferences where
+  toJSON Event_Gadget_Preferences {..} = Core.toJSON additional
+
+-- | The organizer of the event. If the organizer is also an attendee, this is indicated with a separate entry in attendees with the organizer field set to True. To change the organizer, use the move operation. Read-only, except when importing an event.
+--
+-- /See:/ 'newEvent_Organizer' smart constructor.
+data Event_Organizer = Event_Organizer
+  { -- | The organizer\'s name, if available.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The organizer\'s email address, if available. It must be a valid email address as per RFC5322.
+    email :: (Core.Maybe Core.Text),
+    -- | The organizer\'s Profile ID, if available.
+    id :: (Core.Maybe Core.Text),
+    -- | Whether the organizer corresponds to the calendar on which this copy of the event appears. Read-only. The default is False.
+    self :: Core.Bool
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Organizer' with the minimum fields required to make a request.
+newEvent_Organizer ::
+  Event_Organizer
+newEvent_Organizer =
+  Event_Organizer
+    { displayName = Core.Nothing,
+      email = Core.Nothing,
+      id = Core.Nothing,
+      self = Core.False
+    }
+
+instance Core.FromJSON Event_Organizer where
+  parseJSON =
+    Core.withObject
+      "Event_Organizer"
+      ( \o ->
+          Event_Organizer
+            Core.<$> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "email")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "self" Core..!= Core.False)
+      )
+
+instance Core.ToJSON Event_Organizer where
+  toJSON Event_Organizer {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("displayName" Core..=) Core.<$> displayName,
+            ("email" Core..=) Core.<$> email,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("self" Core..= self)
+          ]
+      )
+
+-- | Information about the event\'s reminders for the authenticated user. Note that changing reminders does not also change the updated property of the enclosing event.
+--
+-- /See:/ 'newEvent_Reminders' smart constructor.
+data Event_Reminders = Event_Reminders
+  { -- | If the event doesn\'t use the default reminders, this lists the reminders specific to the event, or, if not set, indicates that no reminders are set for this event. The maximum number of override reminders is 5.
+    overrides :: (Core.Maybe [EventReminder]),
+    -- | Whether the default reminders of the calendar apply to the event.
+    useDefault :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Reminders' with the minimum fields required to make a request.
+newEvent_Reminders ::
+  Event_Reminders
+newEvent_Reminders =
+  Event_Reminders
+    { overrides = Core.Nothing,
+      useDefault = Core.Nothing
+    }
+
+instance Core.FromJSON Event_Reminders where
+  parseJSON =
+    Core.withObject
+      "Event_Reminders"
+      ( \o ->
+          Event_Reminders
+            Core.<$> (o Core..:? "overrides")
+            Core.<*> (o Core..:? "useDefault")
+      )
+
+instance Core.ToJSON Event_Reminders where
+  toJSON Event_Reminders {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("overrides" Core..=) Core.<$> overrides,
+            ("useDefault" Core..=) Core.<$> useDefault
+          ]
+      )
+
+-- | Source from which the event was created. For example, a web page, an email message or any document identifiable by an URL with HTTP or HTTPS scheme. Can only be seen or modified by the creator of the event.
+--
+-- /See:/ 'newEvent_Source' smart constructor.
+data Event_Source = Event_Source
+  { -- | Title of the source; for example a title of a web page or an email subject.
+    title :: (Core.Maybe Core.Text),
+    -- | URL of the source pointing to a resource. The URL scheme must be HTTP or HTTPS.
+    url :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Event_Source' with the minimum fields required to make a request.
+newEvent_Source ::
+  Event_Source
+newEvent_Source =
+  Event_Source {title = Core.Nothing, url = Core.Nothing}
+
+instance Core.FromJSON Event_Source where
+  parseJSON =
+    Core.withObject
+      "Event_Source"
+      ( \o ->
+          Event_Source
+            Core.<$> (o Core..:? "title")
+            Core.<*> (o Core..:? "url")
+      )
+
+instance Core.ToJSON Event_Source where
+  toJSON Event_Source {..} =
+    Core.object
+      ( Core.catMaybes
+          [("title" Core..=) Core.<$> title, ("url" Core..=) Core.<$> url]
+      )
+
+--
+-- /See:/ 'newEventAttachment' smart constructor.
+data EventAttachment = EventAttachment
+  { -- | ID of the attached file. Read-only. For Google Drive files, this is the ID of the corresponding Files resource entry in the Drive API.
+    fileId :: (Core.Maybe Core.Text),
+    -- | URL link to the attachment. For adding Google Drive file attachments use the same format as in alternateLink property of the Files resource in the Drive API. Required when adding an attachment.
+    fileUrl :: (Core.Maybe Core.Text),
+    -- | URL link to the attachment\'s icon. This field can only be modified for custom third-party attachments.
+    iconLink :: (Core.Maybe Core.Text),
+    -- | Internet media type (MIME type) of the attachment.
+    mimeType :: (Core.Maybe Core.Text),
+    -- | Attachment title.
+    title :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventAttachment' with the minimum fields required to make a request.
+newEventAttachment ::
+  EventAttachment
+newEventAttachment =
+  EventAttachment
+    { fileId = Core.Nothing,
+      fileUrl = Core.Nothing,
+      iconLink = Core.Nothing,
+      mimeType = Core.Nothing,
+      title = Core.Nothing
+    }
+
+instance Core.FromJSON EventAttachment where
+  parseJSON =
+    Core.withObject
+      "EventAttachment"
+      ( \o ->
+          EventAttachment
+            Core.<$> (o Core..:? "fileId")
+            Core.<*> (o Core..:? "fileUrl")
+            Core.<*> (o Core..:? "iconLink")
+            Core.<*> (o Core..:? "mimeType")
+            Core.<*> (o Core..:? "title")
+      )
+
+instance Core.ToJSON EventAttachment where
+  toJSON EventAttachment {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("fileId" Core..=) Core.<$> fileId,
+            ("fileUrl" Core..=) Core.<$> fileUrl,
+            ("iconLink" Core..=) Core.<$> iconLink,
+            ("mimeType" Core..=) Core.<$> mimeType,
+            ("title" Core..=) Core.<$> title
+          ]
+      )
+
+--
+-- /See:/ 'newEventAttendee' smart constructor.
+data EventAttendee = EventAttendee
+  { -- | Number of additional guests. Optional. The default is 0.
+    additionalGuests :: Core.Int32,
+    -- | The attendee\'s response comment. Optional.
+    comment :: (Core.Maybe Core.Text),
+    -- | The attendee\'s name, if available. Optional.
+    displayName :: (Core.Maybe Core.Text),
+    -- | The attendee\'s email address, if available. This field must be present when adding an attendee. It must be a valid email address as per RFC5322. Required when adding an attendee.
+    email :: (Core.Maybe Core.Text),
+    -- | The attendee\'s Profile ID, if available.
+    id :: (Core.Maybe Core.Text),
+    -- | Whether this is an optional attendee. Optional. The default is False.
+    optional :: Core.Bool,
+    -- | Whether the attendee is the organizer of the event. Read-only. The default is False.
+    organizer :: (Core.Maybe Core.Bool),
+    -- | Whether the attendee is a resource. Can only be set when the attendee is added to the event for the first time. Subsequent modifications are ignored. Optional. The default is False.
+    resource :: Core.Bool,
+    -- | The attendee\'s response status. Possible values are:
+    -- - \"needsAction\" - The attendee has not responded to the invitation (recommended for new events). - \"declined\" - The attendee has declined the invitation. - \"tentative\" - The attendee has tentatively accepted the invitation. - \"accepted\" - The attendee has accepted the invitation. Warning: If you add an event using the values declined, tentative, or accepted, attendees with the \"Add invitations to my calendar\" setting set to \"When I respond to invitation in email\" or \"Only if the sender is known\" might have their response reset to needsAction and won\'t see an event in their calendar unless they change their response in the event invitation email. Furthermore, if more than 200 guests are invited to the event, response status is not propagated to the guests.
+    responseStatus :: (Core.Maybe Core.Text),
+    -- | Whether this entry represents the calendar on which this copy of the event appears. Read-only. The default is False.
+    self :: Core.Bool
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventAttendee' with the minimum fields required to make a request.
+newEventAttendee ::
+  EventAttendee
+newEventAttendee =
+  EventAttendee
+    { additionalGuests = 0,
+      comment = Core.Nothing,
+      displayName = Core.Nothing,
+      email = Core.Nothing,
+      id = Core.Nothing,
+      optional = Core.False,
+      organizer = Core.Nothing,
+      resource = Core.False,
+      responseStatus = Core.Nothing,
+      self = Core.False
+    }
+
+instance Core.FromJSON EventAttendee where
+  parseJSON =
+    Core.withObject
+      "EventAttendee"
+      ( \o ->
+          EventAttendee
+            Core.<$> (o Core..:? "additionalGuests" Core..!= 0)
+            Core.<*> (o Core..:? "comment")
+            Core.<*> (o Core..:? "displayName")
+            Core.<*> (o Core..:? "email")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "optional" Core..!= Core.False)
+            Core.<*> (o Core..:? "organizer")
+            Core.<*> (o Core..:? "resource" Core..!= Core.False)
+            Core.<*> (o Core..:? "responseStatus")
+            Core.<*> (o Core..:? "self" Core..!= Core.False)
+      )
+
+instance Core.ToJSON EventAttendee where
+  toJSON EventAttendee {..} =
+    Core.object
+      ( Core.catMaybes
+          [ Core.Just ("additionalGuests" Core..= additionalGuests),
+            ("comment" Core..=) Core.<$> comment,
+            ("displayName" Core..=) Core.<$> displayName,
+            ("email" Core..=) Core.<$> email,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("optional" Core..= optional),
+            ("organizer" Core..=) Core.<$> organizer,
+            Core.Just ("resource" Core..= resource),
+            ("responseStatus" Core..=) Core.<$> responseStatus,
+            Core.Just ("self" Core..= self)
+          ]
+      )
+
+--
+-- /See:/ 'newEventBirthdayProperties' smart constructor.
+data EventBirthdayProperties = EventBirthdayProperties
+  { -- | Resource name of the contact this birthday event is linked to. This can be used to fetch contact details from People API. Format: \"people\/c12345\". Read-only.
+    contact :: (Core.Maybe Core.Text),
+    -- | Custom type label specified for this event. This is populated if birthdayProperties.type is set to \"custom\". Read-only.
+    customTypeName :: (Core.Maybe Core.Text),
+    -- | Type of birthday or special event. Possible values are:
+    -- - \"anniversary\" - An anniversary other than birthday. Always has a contact. - \"birthday\" - A birthday event. This is the default value. - \"custom\" - A special date whose label is further specified in the customTypeName field. Always has a contact. - \"other\" - A special date which does not fall into the other categories, and does not have a custom label. Always has a contact. - \"self\" - Calendar owner\'s own birthday. Cannot have a contact. The Calendar API only supports creating events with the type \"birthday\". The type cannot be changed after the event is created.
+    type' :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventBirthdayProperties' with the minimum fields required to make a request.
+newEventBirthdayProperties ::
+  EventBirthdayProperties
+newEventBirthdayProperties =
+  EventBirthdayProperties
+    { contact = Core.Nothing,
+      customTypeName = Core.Nothing,
+      type' = "birthday"
+    }
+
+instance Core.FromJSON EventBirthdayProperties where
+  parseJSON =
+    Core.withObject
+      "EventBirthdayProperties"
+      ( \o ->
+          EventBirthdayProperties
+            Core.<$> (o Core..:? "contact")
+            Core.<*> (o Core..:? "customTypeName")
+            Core.<*> (o Core..:? "type" Core..!= "birthday")
+      )
+
+instance Core.ToJSON EventBirthdayProperties where
+  toJSON EventBirthdayProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("contact" Core..=) Core.<$> contact,
+            ("customTypeName" Core..=) Core.<$> customTypeName,
+            Core.Just ("type" Core..= type')
+          ]
+      )
+
+--
+-- /See:/ 'newEventDateTime' smart constructor.
+data EventDateTime = EventDateTime
+  { -- | The date, in the format \"yyyy-mm-dd\", if this is an all-day event.
+    date :: (Core.Maybe Core.Date),
+    -- | The time, as a combined date-time value (formatted according to RFC3339). A time zone offset is required unless a time zone is explicitly specified in timeZone.
+    dateTime :: (Core.Maybe Core.DateTime),
+    -- | The time zone in which the time is specified. (Formatted as an IANA Time Zone Database name, e.g. \"Europe\/Zurich\".) For recurring events this field is required and specifies the time zone in which the recurrence is expanded. For single events this field is optional and indicates a custom time zone for the event start\/end.
+    timeZone :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventDateTime' with the minimum fields required to make a request.
+newEventDateTime ::
+  EventDateTime
+newEventDateTime =
+  EventDateTime
+    { date = Core.Nothing,
+      dateTime = Core.Nothing,
+      timeZone = Core.Nothing
+    }
+
+instance Core.FromJSON EventDateTime where
+  parseJSON =
+    Core.withObject
+      "EventDateTime"
+      ( \o ->
+          EventDateTime
+            Core.<$> (o Core..:? "date")
+            Core.<*> (o Core..:? "dateTime")
+            Core.<*> (o Core..:? "timeZone")
+      )
+
+instance Core.ToJSON EventDateTime where
+  toJSON EventDateTime {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("date" Core..=) Core.<$> date,
+            ("dateTime" Core..=) Core.<$> dateTime,
+            ("timeZone" Core..=) Core.<$> timeZone
+          ]
+      )
+
+--
+-- /See:/ 'newEventFocusTimeProperties' smart constructor.
+data EventFocusTimeProperties = EventFocusTimeProperties
+  { -- | Whether to decline meeting invitations which overlap Focus Time events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Focus Time event is present are to be declined.
+    autoDeclineMode :: (Core.Maybe Core.Text),
+    -- | The status to mark the user in Chat and related products. This can be available or doNotDisturb.
+    chatStatus :: (Core.Maybe Core.Text),
+    -- | Response message to set if an existing event or new invitation is automatically declined by Calendar.
+    declineMessage :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventFocusTimeProperties' with the minimum fields required to make a request.
+newEventFocusTimeProperties ::
+  EventFocusTimeProperties
+newEventFocusTimeProperties =
+  EventFocusTimeProperties
+    { autoDeclineMode = Core.Nothing,
+      chatStatus = Core.Nothing,
+      declineMessage = Core.Nothing
+    }
+
+instance Core.FromJSON EventFocusTimeProperties where
+  parseJSON =
+    Core.withObject
+      "EventFocusTimeProperties"
+      ( \o ->
+          EventFocusTimeProperties
+            Core.<$> (o Core..:? "autoDeclineMode")
+            Core.<*> (o Core..:? "chatStatus")
+            Core.<*> (o Core..:? "declineMessage")
+      )
+
+instance Core.ToJSON EventFocusTimeProperties where
+  toJSON EventFocusTimeProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("autoDeclineMode" Core..=) Core.<$> autoDeclineMode,
+            ("chatStatus" Core..=) Core.<$> chatStatus,
+            ("declineMessage" Core..=) Core.<$> declineMessage
+          ]
+      )
+
+--
+-- /See:/ 'newEventOutOfOfficeProperties' smart constructor.
+data EventOutOfOfficeProperties = EventOutOfOfficeProperties
+  { -- | Whether to decline meeting invitations which overlap Out of office events. Valid values are declineNone, meaning that no meeting invitations are declined; declineAllConflictingInvitations, meaning that all conflicting meeting invitations that conflict with the event are declined; and declineOnlyNewConflictingInvitations, meaning that only new conflicting meeting invitations which arrive while the Out of office event is present are to be declined.
+    autoDeclineMode :: (Core.Maybe Core.Text),
+    -- | Response message to set if an existing event or new invitation is automatically declined by Calendar.
+    declineMessage :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventOutOfOfficeProperties' with the minimum fields required to make a request.
+newEventOutOfOfficeProperties ::
+  EventOutOfOfficeProperties
+newEventOutOfOfficeProperties =
+  EventOutOfOfficeProperties
+    { autoDeclineMode = Core.Nothing,
+      declineMessage = Core.Nothing
+    }
+
+instance Core.FromJSON EventOutOfOfficeProperties where
+  parseJSON =
+    Core.withObject
+      "EventOutOfOfficeProperties"
+      ( \o ->
+          EventOutOfOfficeProperties
+            Core.<$> (o Core..:? "autoDeclineMode")
+            Core.<*> (o Core..:? "declineMessage")
+      )
+
+instance Core.ToJSON EventOutOfOfficeProperties where
+  toJSON EventOutOfOfficeProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("autoDeclineMode" Core..=) Core.<$> autoDeclineMode,
+            ("declineMessage" Core..=) Core.<$> declineMessage
+          ]
+      )
+
+--
+-- /See:/ 'newEventReminder' smart constructor.
+data EventReminder = EventReminder
+  { -- | The method used by this reminder. Possible values are:
+    -- - \"email\" - Reminders are sent via email. - \"popup\" - Reminders are sent via a UI popup.
+    -- Required when adding a reminder.
+    method :: (Core.Maybe Core.Text),
+    -- | Number of minutes before the start of the event when the reminder should trigger. Valid values are between 0 and 40320 (4 weeks in minutes). Required when adding a reminder.
+    minutes :: (Core.Maybe Core.Int32)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventReminder' with the minimum fields required to make a request.
+newEventReminder ::
+  EventReminder
+newEventReminder =
+  EventReminder {method = Core.Nothing, minutes = Core.Nothing}
+
+instance Core.FromJSON EventReminder where
+  parseJSON =
+    Core.withObject
+      "EventReminder"
+      ( \o ->
+          EventReminder
+            Core.<$> (o Core..:? "method")
+            Core.<*> (o Core..:? "minutes")
+      )
+
+instance Core.ToJSON EventReminder where
+  toJSON EventReminder {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("method" Core..=) Core.<$> method,
+            ("minutes" Core..=) Core.<$> minutes
+          ]
+      )
+
+--
+-- /See:/ 'newEventWorkingLocationProperties' smart constructor.
+data EventWorkingLocationProperties = EventWorkingLocationProperties
+  { -- | If present, specifies that the user is working from a custom location.
+    customLocation :: (Core.Maybe EventWorkingLocationProperties_CustomLocation),
+    -- | If present, specifies that the user is working at home.
+    homeOffice :: (Core.Maybe Core.Value),
+    -- | If present, specifies that the user is working from an office.
+    officeLocation :: (Core.Maybe EventWorkingLocationProperties_OfficeLocation),
+    -- | Type of the working location. Possible values are:
+    -- - \"homeOffice\" - The user is working at home. - \"officeLocation\" - The user is working from an office. - \"customLocation\" - The user is working from a custom location. Any details are specified in a sub-field of the specified name, but this field may be missing if empty. Any other fields are ignored. Required when adding working location properties.
+    type' :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventWorkingLocationProperties' with the minimum fields required to make a request.
+newEventWorkingLocationProperties ::
+  EventWorkingLocationProperties
+newEventWorkingLocationProperties =
+  EventWorkingLocationProperties
+    { customLocation = Core.Nothing,
+      homeOffice = Core.Nothing,
+      officeLocation = Core.Nothing,
+      type' = Core.Nothing
+    }
+
+instance Core.FromJSON EventWorkingLocationProperties where
+  parseJSON =
+    Core.withObject
+      "EventWorkingLocationProperties"
+      ( \o ->
+          EventWorkingLocationProperties
+            Core.<$> (o Core..:? "customLocation")
+            Core.<*> (o Core..:? "homeOffice")
+            Core.<*> (o Core..:? "officeLocation")
+            Core.<*> (o Core..:? "type")
+      )
+
+instance Core.ToJSON EventWorkingLocationProperties where
+  toJSON EventWorkingLocationProperties {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("customLocation" Core..=) Core.<$> customLocation,
+            ("homeOffice" Core..=) Core.<$> homeOffice,
+            ("officeLocation" Core..=) Core.<$> officeLocation,
+            ("type" Core..=) Core.<$> type'
+          ]
+      )
+
+-- | If present, specifies that the user is working from a custom location.
+--
+-- /See:/ 'newEventWorkingLocationProperties_CustomLocation' smart constructor.
+newtype EventWorkingLocationProperties_CustomLocation = EventWorkingLocationProperties_CustomLocation
+  { -- | An optional extra label for additional information.
+    label :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventWorkingLocationProperties_CustomLocation' with the minimum fields required to make a request.
+newEventWorkingLocationProperties_CustomLocation ::
+  EventWorkingLocationProperties_CustomLocation
+newEventWorkingLocationProperties_CustomLocation =
+  EventWorkingLocationProperties_CustomLocation
+    { label =
+        Core.Nothing
+    }
+
+instance
+  Core.FromJSON
+    EventWorkingLocationProperties_CustomLocation
+  where
+  parseJSON =
+    Core.withObject
+      "EventWorkingLocationProperties_CustomLocation"
+      ( \o ->
+          EventWorkingLocationProperties_CustomLocation
+            Core.<$> (o Core..:? "label")
+      )
+
+instance Core.ToJSON EventWorkingLocationProperties_CustomLocation where
+  toJSON EventWorkingLocationProperties_CustomLocation {..} =
+    Core.object (Core.catMaybes [("label" Core..=) Core.<$> label])
+
+-- | If present, specifies that the user is working from an office.
+--
+-- /See:/ 'newEventWorkingLocationProperties_OfficeLocation' smart constructor.
+data EventWorkingLocationProperties_OfficeLocation = EventWorkingLocationProperties_OfficeLocation
+  { -- | An optional building identifier. This should reference a building ID in the organization\'s Resources database.
+    buildingId :: (Core.Maybe Core.Text),
+    -- | An optional desk identifier.
+    deskId :: (Core.Maybe Core.Text),
+    -- | An optional floor identifier.
+    floorId :: (Core.Maybe Core.Text),
+    -- | An optional floor section identifier.
+    floorSectionId :: (Core.Maybe Core.Text),
+    -- | The office name that\'s displayed in Calendar Web and Mobile clients. We recommend you reference a building name in the organization\'s Resources database.
+    label :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'EventWorkingLocationProperties_OfficeLocation' with the minimum fields required to make a request.
+newEventWorkingLocationProperties_OfficeLocation ::
+  EventWorkingLocationProperties_OfficeLocation
+newEventWorkingLocationProperties_OfficeLocation =
+  EventWorkingLocationProperties_OfficeLocation
+    { buildingId =
+        Core.Nothing,
+      deskId = Core.Nothing,
+      floorId = Core.Nothing,
+      floorSectionId = Core.Nothing,
+      label = Core.Nothing
+    }
+
+instance
+  Core.FromJSON
+    EventWorkingLocationProperties_OfficeLocation
+  where
+  parseJSON =
+    Core.withObject
+      "EventWorkingLocationProperties_OfficeLocation"
+      ( \o ->
+          EventWorkingLocationProperties_OfficeLocation
+            Core.<$> (o Core..:? "buildingId")
+            Core.<*> (o Core..:? "deskId")
+            Core.<*> (o Core..:? "floorId")
+            Core.<*> (o Core..:? "floorSectionId")
+            Core.<*> (o Core..:? "label")
+      )
+
+instance Core.ToJSON EventWorkingLocationProperties_OfficeLocation where
+  toJSON EventWorkingLocationProperties_OfficeLocation {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("buildingId" Core..=) Core.<$> buildingId,
+            ("deskId" Core..=) Core.<$> deskId,
+            ("floorId" Core..=) Core.<$> floorId,
+            ("floorSectionId" Core..=) Core.<$> floorSectionId,
+            ("label" Core..=) Core.<$> label
+          ]
+      )
+
+--
+-- /See:/ 'newEvents' smart constructor.
+data Events = Events
+  { -- | The user\'s access role for this calendar. Read-only. Possible values are:
+    -- - \"none\" - The user has no access. - \"freeBusyReader\" - The user has read access to free\/busy information. - \"reader\" - The user has read access to the calendar. Private events will appear to users with reader access, but event details will be hidden. - \"writer\" - The user has read and write access to the calendar. Private events will appear to users with writer access, and event details will be visible. - \"owner\" - The user has ownership of the calendar. This role has all of the permissions of the writer role with the additional ability to see and manipulate ACLs.
+    accessRole :: (Core.Maybe Core.Text),
+    -- | The default reminders on the calendar for the authenticated user. These reminders apply to all events on this calendar that do not explicitly override them (i.e. do not have reminders.useDefault set to True).
+    defaultReminders :: (Core.Maybe [EventReminder]),
+    -- | Description of the calendar. Read-only.
+    description :: (Core.Maybe Core.Text),
+    -- | ETag of the collection.
+    etag :: (Core.Maybe Core.Text),
+    -- | List of events on the calendar.
+    items :: (Core.Maybe [Event]),
+    -- | Type of the collection (\"calendar#events\").
+    kind :: Core.Text,
+    -- | Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    nextSyncToken :: (Core.Maybe Core.Text),
+    -- | Title of the calendar. Read-only.
+    summary :: (Core.Maybe Core.Text),
+    -- | The time zone of the calendar. Read-only.
+    timeZone :: (Core.Maybe Core.Text),
+    -- | Last modification time of the calendar (as a RFC3339 timestamp). Read-only.
+    updated :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Events' with the minimum fields required to make a request.
+newEvents ::
+  Events
+newEvents =
+  Events
+    { accessRole = Core.Nothing,
+      defaultReminders = Core.Nothing,
+      description = Core.Nothing,
+      etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = "calendar#events",
+      nextPageToken = Core.Nothing,
+      nextSyncToken = Core.Nothing,
+      summary = Core.Nothing,
+      timeZone = Core.Nothing,
+      updated = Core.Nothing
+    }
+
+instance Core.FromJSON Events where
+  parseJSON =
+    Core.withObject
+      "Events"
+      ( \o ->
+          Events
+            Core.<$> (o Core..:? "accessRole")
+            Core.<*> (o Core..:? "defaultReminders")
+            Core.<*> (o Core..:? "description")
+            Core.<*> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#events")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "nextSyncToken")
+            Core.<*> (o Core..:? "summary")
+            Core.<*> (o Core..:? "timeZone")
+            Core.<*> (o Core..:? "updated")
+      )
+
+instance Core.ToJSON Events where
+  toJSON Events {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("accessRole" Core..=) Core.<$> accessRole,
+            ("defaultReminders" Core..=) Core.<$> defaultReminders,
+            ("description" Core..=) Core.<$> description,
+            ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("nextSyncToken" Core..=) Core.<$> nextSyncToken,
+            ("summary" Core..=) Core.<$> summary,
+            ("timeZone" Core..=) Core.<$> timeZone,
+            ("updated" Core..=) Core.<$> updated
+          ]
+      )
+
+--
+-- /See:/ 'newFreeBusyCalendar' smart constructor.
+data FreeBusyCalendar = FreeBusyCalendar
+  { -- | List of time ranges during which this calendar should be regarded as busy.
+    busy :: (Core.Maybe [TimePeriod]),
+    -- | Optional error(s) (if computation for the calendar failed).
+    errors :: (Core.Maybe [Error'])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyCalendar' with the minimum fields required to make a request.
+newFreeBusyCalendar ::
+  FreeBusyCalendar
+newFreeBusyCalendar =
+  FreeBusyCalendar {busy = Core.Nothing, errors = Core.Nothing}
+
+instance Core.FromJSON FreeBusyCalendar where
+  parseJSON =
+    Core.withObject
+      "FreeBusyCalendar"
+      ( \o ->
+          FreeBusyCalendar
+            Core.<$> (o Core..:? "busy")
+            Core.<*> (o Core..:? "errors")
+      )
+
+instance Core.ToJSON FreeBusyCalendar where
+  toJSON FreeBusyCalendar {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("busy" Core..=) Core.<$> busy,
+            ("errors" Core..=) Core.<$> errors
+          ]
+      )
+
+--
+-- /See:/ 'newFreeBusyGroup' smart constructor.
+data FreeBusyGroup = FreeBusyGroup
+  { -- | List of calendars\' identifiers within a group.
+    calendars :: (Core.Maybe [Core.Text]),
+    -- | Optional error(s) (if computation for the group failed).
+    errors :: (Core.Maybe [Error'])
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyGroup' with the minimum fields required to make a request.
+newFreeBusyGroup ::
+  FreeBusyGroup
+newFreeBusyGroup =
+  FreeBusyGroup {calendars = Core.Nothing, errors = Core.Nothing}
+
+instance Core.FromJSON FreeBusyGroup where
+  parseJSON =
+    Core.withObject
+      "FreeBusyGroup"
+      ( \o ->
+          FreeBusyGroup
+            Core.<$> (o Core..:? "calendars")
+            Core.<*> (o Core..:? "errors")
+      )
+
+instance Core.ToJSON FreeBusyGroup where
+  toJSON FreeBusyGroup {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("calendars" Core..=) Core.<$> calendars,
+            ("errors" Core..=) Core.<$> errors
+          ]
+      )
+
+--
+-- /See:/ 'newFreeBusyRequest' smart constructor.
+data FreeBusyRequest = FreeBusyRequest
+  { -- | Maximal number of calendars for which FreeBusy information is to be provided. Optional. Maximum value is 50.
+    calendarExpansionMax :: (Core.Maybe Core.Int32),
+    -- | Maximal number of calendar identifiers to be provided for a single group. Optional. An error is returned for a group with more members than this value. Maximum value is 100.
+    groupExpansionMax :: (Core.Maybe Core.Int32),
+    -- | List of calendars and\/or groups to query.
+    items :: (Core.Maybe [FreeBusyRequestItem]),
+    -- | The end of the interval for the query formatted as per RFC3339.
+    timeMax :: (Core.Maybe Core.DateTime),
+    -- | The start of the interval for the query formatted as per RFC3339.
+    timeMin :: (Core.Maybe Core.DateTime),
+    -- | Time zone used in the response. Optional. The default is UTC.
+    timeZone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyRequest' with the minimum fields required to make a request.
+newFreeBusyRequest ::
+  FreeBusyRequest
+newFreeBusyRequest =
+  FreeBusyRequest
+    { calendarExpansionMax = Core.Nothing,
+      groupExpansionMax = Core.Nothing,
+      items = Core.Nothing,
+      timeMax = Core.Nothing,
+      timeMin = Core.Nothing,
+      timeZone = "UTC"
+    }
+
+instance Core.FromJSON FreeBusyRequest where
+  parseJSON =
+    Core.withObject
+      "FreeBusyRequest"
+      ( \o ->
+          FreeBusyRequest
+            Core.<$> (o Core..:? "calendarExpansionMax")
+            Core.<*> (o Core..:? "groupExpansionMax")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "timeMax")
+            Core.<*> (o Core..:? "timeMin")
+            Core.<*> (o Core..:? "timeZone" Core..!= "UTC")
+      )
+
+instance Core.ToJSON FreeBusyRequest where
+  toJSON FreeBusyRequest {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("calendarExpansionMax" Core..=) Core.<$> calendarExpansionMax,
+            ("groupExpansionMax" Core..=) Core.<$> groupExpansionMax,
+            ("items" Core..=) Core.<$> items,
+            ("timeMax" Core..=) Core.<$> timeMax,
+            ("timeMin" Core..=) Core.<$> timeMin,
+            Core.Just ("timeZone" Core..= timeZone)
+          ]
+      )
+
+--
+-- /See:/ 'newFreeBusyRequestItem' smart constructor.
+newtype FreeBusyRequestItem = FreeBusyRequestItem
+  { -- | The identifier of a calendar or a group.
+    id :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyRequestItem' with the minimum fields required to make a request.
+newFreeBusyRequestItem ::
+  FreeBusyRequestItem
+newFreeBusyRequestItem = FreeBusyRequestItem {id = Core.Nothing}
+
+instance Core.FromJSON FreeBusyRequestItem where
+  parseJSON =
+    Core.withObject
+      "FreeBusyRequestItem"
+      (\o -> FreeBusyRequestItem Core.<$> (o Core..:? "id"))
+
+instance Core.ToJSON FreeBusyRequestItem where
+  toJSON FreeBusyRequestItem {..} =
+    Core.object (Core.catMaybes [("id" Core..=) Core.<$> id])
+
+--
+-- /See:/ 'newFreeBusyResponse' smart constructor.
+data FreeBusyResponse = FreeBusyResponse
+  { -- | List of free\/busy information for calendars.
+    calendars :: (Core.Maybe FreeBusyResponse_Calendars),
+    -- | Expansion of groups.
+    groups :: (Core.Maybe FreeBusyResponse_Groups),
+    -- | Type of the resource (\"calendar#freeBusy\").
+    kind :: Core.Text,
+    -- | The end of the interval.
+    timeMax :: (Core.Maybe Core.DateTime),
+    -- | The start of the interval.
+    timeMin :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyResponse' with the minimum fields required to make a request.
+newFreeBusyResponse ::
+  FreeBusyResponse
+newFreeBusyResponse =
+  FreeBusyResponse
+    { calendars = Core.Nothing,
+      groups = Core.Nothing,
+      kind = "calendar#freeBusy",
+      timeMax = Core.Nothing,
+      timeMin = Core.Nothing
+    }
+
+instance Core.FromJSON FreeBusyResponse where
+  parseJSON =
+    Core.withObject
+      "FreeBusyResponse"
+      ( \o ->
+          FreeBusyResponse
+            Core.<$> (o Core..:? "calendars")
+            Core.<*> (o Core..:? "groups")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#freeBusy")
+            Core.<*> (o Core..:? "timeMax")
+            Core.<*> (o Core..:? "timeMin")
+      )
+
+instance Core.ToJSON FreeBusyResponse where
+  toJSON FreeBusyResponse {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("calendars" Core..=) Core.<$> calendars,
+            ("groups" Core..=) Core.<$> groups,
+            Core.Just ("kind" Core..= kind),
+            ("timeMax" Core..=) Core.<$> timeMax,
+            ("timeMin" Core..=) Core.<$> timeMin
+          ]
+      )
+
+-- | List of free\/busy information for calendars.
+--
+-- /See:/ 'newFreeBusyResponse_Calendars' smart constructor.
+newtype FreeBusyResponse_Calendars = FreeBusyResponse_Calendars
+  { -- | Free\/busy expansions for a single calendar.
+    additional :: (Core.HashMap Core.Text FreeBusyCalendar)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyResponse_Calendars' with the minimum fields required to make a request.
+newFreeBusyResponse_Calendars ::
+  -- |  Free\/busy expansions for a single calendar. See 'additional'.
+  Core.HashMap Core.Text FreeBusyCalendar ->
+  FreeBusyResponse_Calendars
+newFreeBusyResponse_Calendars additional =
+  FreeBusyResponse_Calendars {additional = additional}
+
+instance Core.FromJSON FreeBusyResponse_Calendars where
+  parseJSON =
+    Core.withObject
+      "FreeBusyResponse_Calendars"
+      ( \o ->
+          FreeBusyResponse_Calendars Core.<$> (Core.parseJSONObject o)
+      )
+
+instance Core.ToJSON FreeBusyResponse_Calendars where
+  toJSON FreeBusyResponse_Calendars {..} = Core.toJSON additional
+
+-- | Expansion of groups.
+--
+-- /See:/ 'newFreeBusyResponse_Groups' smart constructor.
+newtype FreeBusyResponse_Groups = FreeBusyResponse_Groups
+  { -- | List of calendars that are members of this group.
+    additional :: (Core.HashMap Core.Text FreeBusyGroup)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'FreeBusyResponse_Groups' with the minimum fields required to make a request.
+newFreeBusyResponse_Groups ::
+  -- |  List of calendars that are members of this group. See 'additional'.
+  Core.HashMap Core.Text FreeBusyGroup ->
+  FreeBusyResponse_Groups
+newFreeBusyResponse_Groups additional =
+  FreeBusyResponse_Groups {additional = additional}
+
+instance Core.FromJSON FreeBusyResponse_Groups where
+  parseJSON =
+    Core.withObject
+      "FreeBusyResponse_Groups"
+      (\o -> FreeBusyResponse_Groups Core.<$> (Core.parseJSONObject o))
+
+instance Core.ToJSON FreeBusyResponse_Groups where
+  toJSON FreeBusyResponse_Groups {..} = Core.toJSON additional
+
+--
+-- /See:/ 'newSetting' smart constructor.
+data Setting = Setting
+  { -- | ETag of the resource.
+    etag :: (Core.Maybe Core.Text),
+    -- | The id of the user setting.
+    id :: (Core.Maybe Core.Text),
+    -- | Type of the resource (\"calendar#setting\").
+    kind :: Core.Text,
+    -- | Value of the user setting. The format of the value depends on the ID of the setting. It must always be a UTF-8 string of length up to 1024 characters.
+    value :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Setting' with the minimum fields required to make a request.
+newSetting ::
+  Setting
+newSetting =
+  Setting
+    { etag = Core.Nothing,
+      id = Core.Nothing,
+      kind = "calendar#setting",
+      value = Core.Nothing
+    }
+
+instance Core.FromJSON Setting where
+  parseJSON =
+    Core.withObject
+      "Setting"
+      ( \o ->
+          Setting
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "id")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#setting")
+            Core.<*> (o Core..:? "value")
+      )
+
+instance Core.ToJSON Setting where
+  toJSON Setting {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("id" Core..=) Core.<$> id,
+            Core.Just ("kind" Core..= kind),
+            ("value" Core..=) Core.<$> value
+          ]
+      )
+
+--
+-- /See:/ 'newSettings' smart constructor.
+data Settings = Settings
+  { -- | Etag of the collection.
+    etag :: (Core.Maybe Core.Text),
+    -- | List of user settings.
+    items :: (Core.Maybe [Setting]),
+    -- | Type of the collection (\"calendar#settings\").
+    kind :: Core.Text,
+    -- | Token used to access the next page of this result. Omitted if no further results are available, in which case nextSyncToken is provided.
+    nextPageToken :: (Core.Maybe Core.Text),
+    -- | Token used at a later point in time to retrieve only the entries that have changed since this result was returned. Omitted if further results are available, in which case nextPageToken is provided.
+    nextSyncToken :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'Settings' with the minimum fields required to make a request.
+newSettings ::
+  Settings
+newSettings =
+  Settings
+    { etag = Core.Nothing,
+      items = Core.Nothing,
+      kind = "calendar#settings",
+      nextPageToken = Core.Nothing,
+      nextSyncToken = Core.Nothing
+    }
+
+instance Core.FromJSON Settings where
+  parseJSON =
+    Core.withObject
+      "Settings"
+      ( \o ->
+          Settings
+            Core.<$> (o Core..:? "etag")
+            Core.<*> (o Core..:? "items")
+            Core.<*> (o Core..:? "kind" Core..!= "calendar#settings")
+            Core.<*> (o Core..:? "nextPageToken")
+            Core.<*> (o Core..:? "nextSyncToken")
+      )
+
+instance Core.ToJSON Settings where
+  toJSON Settings {..} =
+    Core.object
+      ( Core.catMaybes
+          [ ("etag" Core..=) Core.<$> etag,
+            ("items" Core..=) Core.<$> items,
+            Core.Just ("kind" Core..= kind),
+            ("nextPageToken" Core..=) Core.<$> nextPageToken,
+            ("nextSyncToken" Core..=) Core.<$> nextSyncToken
+          ]
+      )
+
+--
+-- /See:/ 'newTimePeriod' smart constructor.
+data TimePeriod = TimePeriod
+  { -- | The (exclusive) end of the time period.
+    end :: (Core.Maybe Core.DateTime),
+    -- | The (inclusive) start of the time period.
+    start :: (Core.Maybe Core.DateTime)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'TimePeriod' with the minimum fields required to make a request.
+newTimePeriod ::
+  TimePeriod
+newTimePeriod =
+  TimePeriod {end = Core.Nothing, start = Core.Nothing}
+
+instance Core.FromJSON TimePeriod where
+  parseJSON =
+    Core.withObject
+      "TimePeriod"
+      ( \o ->
+          TimePeriod
+            Core.<$> (o Core..:? "end")
+            Core.<*> (o Core..:? "start")
+      )
+
+instance Core.ToJSON TimePeriod where
+  toJSON TimePeriod {..} =
+    Core.object
+      ( Core.catMaybes
+          [("end" Core..=) Core.<$> end, ("start" Core..=) Core.<$> start]
+      )
diff --git a/gen/Gogol/AppsCalendar/Internal/Sum.hs b/gen/Gogol/AppsCalendar/Internal/Sum.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Internal/Sum.hs
@@ -0,0 +1,545 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Internal.Sum
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AppsCalendar.Internal.Sum
+  ( -- * CalendarListListMinAccessRole
+    CalendarListListMinAccessRole
+      ( CalendarListListMinAccessRole_FreeBusyReader,
+        CalendarListListMinAccessRole_Owner,
+        CalendarListListMinAccessRole_Reader,
+        CalendarListListMinAccessRole_Writer,
+        ..
+      ),
+
+    -- * CalendarListWatchMinAccessRole
+    CalendarListWatchMinAccessRole
+      ( CalendarListWatchMinAccessRole_FreeBusyReader,
+        CalendarListWatchMinAccessRole_Owner,
+        CalendarListWatchMinAccessRole_Reader,
+        CalendarListWatchMinAccessRole_Writer,
+        ..
+      ),
+
+    -- * EventsDeleteSendUpdates
+    EventsDeleteSendUpdates
+      ( EventsDeleteSendUpdates_All,
+        EventsDeleteSendUpdates_ExternalOnly,
+        EventsDeleteSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsInsertSendUpdates
+    EventsInsertSendUpdates
+      ( EventsInsertSendUpdates_All,
+        EventsInsertSendUpdates_ExternalOnly,
+        EventsInsertSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsListEventTypes
+    EventsListEventTypes
+      ( EventsListEventTypes_Birthday,
+        EventsListEventTypes_Default,
+        EventsListEventTypes_FocusTime,
+        EventsListEventTypes_FromGmail,
+        EventsListEventTypes_OutOfOffice,
+        EventsListEventTypes_WorkingLocation,
+        ..
+      ),
+
+    -- * EventsListOrderBy
+    EventsListOrderBy
+      ( EventsListOrderBy_StartTime,
+        EventsListOrderBy_Updated,
+        ..
+      ),
+
+    -- * EventsMoveSendUpdates
+    EventsMoveSendUpdates
+      ( EventsMoveSendUpdates_All,
+        EventsMoveSendUpdates_ExternalOnly,
+        EventsMoveSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsPatchSendUpdates
+    EventsPatchSendUpdates
+      ( EventsPatchSendUpdates_All,
+        EventsPatchSendUpdates_ExternalOnly,
+        EventsPatchSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsQuickAddSendUpdates
+    EventsQuickAddSendUpdates
+      ( EventsQuickAddSendUpdates_All,
+        EventsQuickAddSendUpdates_ExternalOnly,
+        EventsQuickAddSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsUpdateSendUpdates
+    EventsUpdateSendUpdates
+      ( EventsUpdateSendUpdates_All,
+        EventsUpdateSendUpdates_ExternalOnly,
+        EventsUpdateSendUpdates_None,
+        ..
+      ),
+
+    -- * EventsWatchEventTypes
+    EventsWatchEventTypes
+      ( EventsWatchEventTypes_Birthday,
+        EventsWatchEventTypes_Default,
+        EventsWatchEventTypes_FocusTime,
+        EventsWatchEventTypes_FromGmail,
+        EventsWatchEventTypes_OutOfOffice,
+        EventsWatchEventTypes_WorkingLocation,
+        ..
+      ),
+
+    -- * EventsWatchOrderBy
+    EventsWatchOrderBy
+      ( EventsWatchOrderBy_StartTime,
+        EventsWatchOrderBy_Updated,
+        ..
+      ),
+  )
+where
+
+import Gogol.Prelude qualified as Core
+
+-- | The minimum access role for the user in the returned entries. Optional. The default is no restriction.
+newtype CalendarListListMinAccessRole = CalendarListListMinAccessRole {fromCalendarListListMinAccessRole :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | The user can read free\/busy information.
+pattern CalendarListListMinAccessRole_FreeBusyReader :: CalendarListListMinAccessRole
+pattern CalendarListListMinAccessRole_FreeBusyReader = CalendarListListMinAccessRole "freeBusyReader"
+
+-- | The user can read and modify events and access control lists.
+pattern CalendarListListMinAccessRole_Owner :: CalendarListListMinAccessRole
+pattern CalendarListListMinAccessRole_Owner = CalendarListListMinAccessRole "owner"
+
+-- | The user can read events that are not private.
+pattern CalendarListListMinAccessRole_Reader :: CalendarListListMinAccessRole
+pattern CalendarListListMinAccessRole_Reader = CalendarListListMinAccessRole "reader"
+
+-- | The user can read and modify events.
+pattern CalendarListListMinAccessRole_Writer :: CalendarListListMinAccessRole
+pattern CalendarListListMinAccessRole_Writer = CalendarListListMinAccessRole "writer"
+
+{-# COMPLETE
+  CalendarListListMinAccessRole_FreeBusyReader,
+  CalendarListListMinAccessRole_Owner,
+  CalendarListListMinAccessRole_Reader,
+  CalendarListListMinAccessRole_Writer,
+  CalendarListListMinAccessRole
+  #-}
+
+-- | The minimum access role for the user in the returned entries. Optional. The default is no restriction.
+newtype CalendarListWatchMinAccessRole = CalendarListWatchMinAccessRole {fromCalendarListWatchMinAccessRole :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | The user can read free\/busy information.
+pattern CalendarListWatchMinAccessRole_FreeBusyReader :: CalendarListWatchMinAccessRole
+pattern CalendarListWatchMinAccessRole_FreeBusyReader = CalendarListWatchMinAccessRole "freeBusyReader"
+
+-- | The user can read and modify events and access control lists.
+pattern CalendarListWatchMinAccessRole_Owner :: CalendarListWatchMinAccessRole
+pattern CalendarListWatchMinAccessRole_Owner = CalendarListWatchMinAccessRole "owner"
+
+-- | The user can read events that are not private.
+pattern CalendarListWatchMinAccessRole_Reader :: CalendarListWatchMinAccessRole
+pattern CalendarListWatchMinAccessRole_Reader = CalendarListWatchMinAccessRole "reader"
+
+-- | The user can read and modify events.
+pattern CalendarListWatchMinAccessRole_Writer :: CalendarListWatchMinAccessRole
+pattern CalendarListWatchMinAccessRole_Writer = CalendarListWatchMinAccessRole "writer"
+
+{-# COMPLETE
+  CalendarListWatchMinAccessRole_FreeBusyReader,
+  CalendarListWatchMinAccessRole_Owner,
+  CalendarListWatchMinAccessRole_Reader,
+  CalendarListWatchMinAccessRole_Writer,
+  CalendarListWatchMinAccessRole
+  #-}
+
+-- | Guests who should receive notifications about the deletion of the event.
+newtype EventsDeleteSendUpdates = EventsDeleteSendUpdates {fromEventsDeleteSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsDeleteSendUpdates_All :: EventsDeleteSendUpdates
+pattern EventsDeleteSendUpdates_All = EventsDeleteSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsDeleteSendUpdates_ExternalOnly :: EventsDeleteSendUpdates
+pattern EventsDeleteSendUpdates_ExternalOnly = EventsDeleteSendUpdates "externalOnly"
+
+-- | No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
+pattern EventsDeleteSendUpdates_None :: EventsDeleteSendUpdates
+pattern EventsDeleteSendUpdates_None = EventsDeleteSendUpdates "none"
+
+{-# COMPLETE
+  EventsDeleteSendUpdates_All,
+  EventsDeleteSendUpdates_ExternalOnly,
+  EventsDeleteSendUpdates_None,
+  EventsDeleteSendUpdates
+  #-}
+
+-- | Whether to send notifications about the creation of the new event. Note that some emails might still be sent. The default is false.
+newtype EventsInsertSendUpdates = EventsInsertSendUpdates {fromEventsInsertSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsInsertSendUpdates_All :: EventsInsertSendUpdates
+pattern EventsInsertSendUpdates_All = EventsInsertSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsInsertSendUpdates_ExternalOnly :: EventsInsertSendUpdates
+pattern EventsInsertSendUpdates_ExternalOnly = EventsInsertSendUpdates "externalOnly"
+
+-- | No notifications are sent. Warning: Using the value none can have significant adverse effects, including events not syncing to external calendars or events being lost altogether for some users. For calendar migration tasks, consider using the events.import method instead.
+pattern EventsInsertSendUpdates_None :: EventsInsertSendUpdates
+pattern EventsInsertSendUpdates_None = EventsInsertSendUpdates "none"
+
+{-# COMPLETE
+  EventsInsertSendUpdates_All,
+  EventsInsertSendUpdates_ExternalOnly,
+  EventsInsertSendUpdates_None,
+  EventsInsertSendUpdates
+  #-}
+
+-- | Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.
+newtype EventsListEventTypes = EventsListEventTypes {fromEventsListEventTypes :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Special all-day events with an annual recurrence.
+pattern EventsListEventTypes_Birthday :: EventsListEventTypes
+pattern EventsListEventTypes_Birthday = EventsListEventTypes "birthday"
+
+-- | Regular events.
+pattern EventsListEventTypes_Default :: EventsListEventTypes
+pattern EventsListEventTypes_Default = EventsListEventTypes "default"
+
+-- | Focus time events.
+pattern EventsListEventTypes_FocusTime :: EventsListEventTypes
+pattern EventsListEventTypes_FocusTime = EventsListEventTypes "focusTime"
+
+-- | Events from Gmail.
+pattern EventsListEventTypes_FromGmail :: EventsListEventTypes
+pattern EventsListEventTypes_FromGmail = EventsListEventTypes "fromGmail"
+
+-- | Out of office events.
+pattern EventsListEventTypes_OutOfOffice :: EventsListEventTypes
+pattern EventsListEventTypes_OutOfOffice = EventsListEventTypes "outOfOffice"
+
+-- | Working location events.
+pattern EventsListEventTypes_WorkingLocation :: EventsListEventTypes
+pattern EventsListEventTypes_WorkingLocation = EventsListEventTypes "workingLocation"
+
+{-# COMPLETE
+  EventsListEventTypes_Birthday,
+  EventsListEventTypes_Default,
+  EventsListEventTypes_FocusTime,
+  EventsListEventTypes_FromGmail,
+  EventsListEventTypes_OutOfOffice,
+  EventsListEventTypes_WorkingLocation,
+  EventsListEventTypes
+  #-}
+
+-- | The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+newtype EventsListOrderBy = EventsListOrderBy {fromEventsListOrderBy :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Order by the start date\/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)
+pattern EventsListOrderBy_StartTime :: EventsListOrderBy
+pattern EventsListOrderBy_StartTime = EventsListOrderBy "startTime"
+
+-- | Order by last modification time (ascending).
+pattern EventsListOrderBy_Updated :: EventsListOrderBy
+pattern EventsListOrderBy_Updated = EventsListOrderBy "updated"
+
+{-# COMPLETE
+  EventsListOrderBy_StartTime,
+  EventsListOrderBy_Updated,
+  EventsListOrderBy
+  #-}
+
+-- | Guests who should receive notifications about the change of the event\'s organizer.
+newtype EventsMoveSendUpdates = EventsMoveSendUpdates {fromEventsMoveSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsMoveSendUpdates_All :: EventsMoveSendUpdates
+pattern EventsMoveSendUpdates_All = EventsMoveSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsMoveSendUpdates_ExternalOnly :: EventsMoveSendUpdates
+pattern EventsMoveSendUpdates_ExternalOnly = EventsMoveSendUpdates "externalOnly"
+
+-- | No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
+pattern EventsMoveSendUpdates_None :: EventsMoveSendUpdates
+pattern EventsMoveSendUpdates_None = EventsMoveSendUpdates "none"
+
+{-# COMPLETE
+  EventsMoveSendUpdates_All,
+  EventsMoveSendUpdates_ExternalOnly,
+  EventsMoveSendUpdates_None,
+  EventsMoveSendUpdates
+  #-}
+
+-- | Guests who should receive notifications about the event update (for example, title changes, etc.).
+newtype EventsPatchSendUpdates = EventsPatchSendUpdates {fromEventsPatchSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsPatchSendUpdates_All :: EventsPatchSendUpdates
+pattern EventsPatchSendUpdates_All = EventsPatchSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsPatchSendUpdates_ExternalOnly :: EventsPatchSendUpdates
+pattern EventsPatchSendUpdates_ExternalOnly = EventsPatchSendUpdates "externalOnly"
+
+-- | No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
+pattern EventsPatchSendUpdates_None :: EventsPatchSendUpdates
+pattern EventsPatchSendUpdates_None = EventsPatchSendUpdates "none"
+
+{-# COMPLETE
+  EventsPatchSendUpdates_All,
+  EventsPatchSendUpdates_ExternalOnly,
+  EventsPatchSendUpdates_None,
+  EventsPatchSendUpdates
+  #-}
+
+-- | Guests who should receive notifications about the creation of the new event.
+newtype EventsQuickAddSendUpdates = EventsQuickAddSendUpdates {fromEventsQuickAddSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsQuickAddSendUpdates_All :: EventsQuickAddSendUpdates
+pattern EventsQuickAddSendUpdates_All = EventsQuickAddSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsQuickAddSendUpdates_ExternalOnly :: EventsQuickAddSendUpdates
+pattern EventsQuickAddSendUpdates_ExternalOnly = EventsQuickAddSendUpdates "externalOnly"
+
+-- | No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
+pattern EventsQuickAddSendUpdates_None :: EventsQuickAddSendUpdates
+pattern EventsQuickAddSendUpdates_None = EventsQuickAddSendUpdates "none"
+
+{-# COMPLETE
+  EventsQuickAddSendUpdates_All,
+  EventsQuickAddSendUpdates_ExternalOnly,
+  EventsQuickAddSendUpdates_None,
+  EventsQuickAddSendUpdates
+  #-}
+
+-- | Guests who should receive notifications about the event update (for example, title changes, etc.).
+newtype EventsUpdateSendUpdates = EventsUpdateSendUpdates {fromEventsUpdateSendUpdates :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Notifications are sent to all guests.
+pattern EventsUpdateSendUpdates_All :: EventsUpdateSendUpdates
+pattern EventsUpdateSendUpdates_All = EventsUpdateSendUpdates "all"
+
+-- | Notifications are sent to non-Google Calendar guests only.
+pattern EventsUpdateSendUpdates_ExternalOnly :: EventsUpdateSendUpdates
+pattern EventsUpdateSendUpdates_ExternalOnly = EventsUpdateSendUpdates "externalOnly"
+
+-- | No notifications are sent. For calendar migration tasks, consider using the Events.import method instead.
+pattern EventsUpdateSendUpdates_None :: EventsUpdateSendUpdates
+pattern EventsUpdateSendUpdates_None = EventsUpdateSendUpdates "none"
+
+{-# COMPLETE
+  EventsUpdateSendUpdates_All,
+  EventsUpdateSendUpdates_ExternalOnly,
+  EventsUpdateSendUpdates_None,
+  EventsUpdateSendUpdates
+  #-}
+
+-- | Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. If unset, returns all event types.
+newtype EventsWatchEventTypes = EventsWatchEventTypes {fromEventsWatchEventTypes :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Special all-day events with an annual recurrence.
+pattern EventsWatchEventTypes_Birthday :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_Birthday = EventsWatchEventTypes "birthday"
+
+-- | Regular events.
+pattern EventsWatchEventTypes_Default :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_Default = EventsWatchEventTypes "default"
+
+-- | Focus time events.
+pattern EventsWatchEventTypes_FocusTime :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_FocusTime = EventsWatchEventTypes "focusTime"
+
+-- | Events from Gmail.
+pattern EventsWatchEventTypes_FromGmail :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_FromGmail = EventsWatchEventTypes "fromGmail"
+
+-- | Out of office events.
+pattern EventsWatchEventTypes_OutOfOffice :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_OutOfOffice = EventsWatchEventTypes "outOfOffice"
+
+-- | Working location events.
+pattern EventsWatchEventTypes_WorkingLocation :: EventsWatchEventTypes
+pattern EventsWatchEventTypes_WorkingLocation = EventsWatchEventTypes "workingLocation"
+
+{-# COMPLETE
+  EventsWatchEventTypes_Birthday,
+  EventsWatchEventTypes_Default,
+  EventsWatchEventTypes_FocusTime,
+  EventsWatchEventTypes_FromGmail,
+  EventsWatchEventTypes_OutOfOffice,
+  EventsWatchEventTypes_WorkingLocation,
+  EventsWatchEventTypes
+  #-}
+
+-- | The order of the events returned in the result. Optional. The default is an unspecified, stable order.
+newtype EventsWatchOrderBy = EventsWatchOrderBy {fromEventsWatchOrderBy :: Core.Text}
+  deriving stock (Core.Show, Core.Read, Core.Eq, Core.Ord, Core.Generic)
+  deriving newtype
+    ( Core.Hashable,
+      Core.ToHttpApiData,
+      Core.FromHttpApiData,
+      Core.ToJSON,
+      Core.ToJSONKey,
+      Core.FromJSON,
+      Core.FromJSONKey
+    )
+
+-- | Order by the start date\/time (ascending). This is only available when querying single events (i.e. the parameter singleEvents is True)
+pattern EventsWatchOrderBy_StartTime :: EventsWatchOrderBy
+pattern EventsWatchOrderBy_StartTime = EventsWatchOrderBy "startTime"
+
+-- | Order by last modification time (ascending).
+pattern EventsWatchOrderBy_Updated :: EventsWatchOrderBy
+pattern EventsWatchOrderBy_Updated = EventsWatchOrderBy "updated"
+
+{-# COMPLETE
+  EventsWatchOrderBy_StartTime,
+  EventsWatchOrderBy_Updated,
+  EventsWatchOrderBy
+  #-}
diff --git a/gen/Gogol/AppsCalendar/Types.hs b/gen/Gogol/AppsCalendar/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/AppsCalendar/Types.hs
@@ -0,0 +1,390 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.AppsCalendar.Types
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.AppsCalendar.Types
+  ( -- * Configuration
+    appsCalendarService,
+
+    -- * OAuth Scopes
+    Calendar'FullControl,
+    Calendar'Acls,
+    Calendar'Acls'Readonly,
+    Calendar'App'Created,
+    Calendar'Calendarlist,
+    Calendar'Calendarlist'Readonly,
+    Calendar'Calendars,
+    Calendar'Calendars'Readonly,
+    Calendar'Events,
+    Calendar'Events'Freebusy,
+    Calendar'Events'Owned,
+    Calendar'Events'Owned'Readonly,
+    Calendar'Events'Public'Readonly,
+    Calendar'Events'Readonly,
+    Calendar'Freebusy,
+    Calendar'Readonly,
+    Calendar'Settings'Readonly,
+
+    -- * Types
+
+    -- ** Acl
+    Acl (..),
+    newAcl,
+
+    -- ** AclRule
+    AclRule (..),
+    newAclRule,
+
+    -- ** AclRule_Scope
+    AclRule_Scope (..),
+    newAclRule_Scope,
+
+    -- ** Calendar
+    Calendar (..),
+    newCalendar,
+
+    -- ** CalendarList
+    CalendarList (..),
+    newCalendarList,
+
+    -- ** CalendarListEntry
+    CalendarListEntry (..),
+    newCalendarListEntry,
+
+    -- ** CalendarListEntry_NotificationSettings
+    CalendarListEntry_NotificationSettings (..),
+    newCalendarListEntry_NotificationSettings,
+
+    -- ** CalendarNotification
+    CalendarNotification (..),
+    newCalendarNotification,
+
+    -- ** Channel
+    Channel (..),
+    newChannel,
+
+    -- ** Channel_Params
+    Channel_Params (..),
+    newChannel_Params,
+
+    -- ** ColorDefinition
+    ColorDefinition (..),
+    newColorDefinition,
+
+    -- ** Colors
+    Colors (..),
+    newColors,
+
+    -- ** Colors_Calendar
+    Colors_Calendar (..),
+    newColors_Calendar,
+
+    -- ** Colors_Event
+    Colors_Event (..),
+    newColors_Event,
+
+    -- ** ConferenceData
+    ConferenceData (..),
+    newConferenceData,
+
+    -- ** ConferenceParameters
+    ConferenceParameters (..),
+    newConferenceParameters,
+
+    -- ** ConferenceParametersAddOnParameters
+    ConferenceParametersAddOnParameters (..),
+    newConferenceParametersAddOnParameters,
+
+    -- ** ConferenceParametersAddOnParameters_Parameters
+    ConferenceParametersAddOnParameters_Parameters (..),
+    newConferenceParametersAddOnParameters_Parameters,
+
+    -- ** ConferenceProperties
+    ConferenceProperties (..),
+    newConferenceProperties,
+
+    -- ** ConferenceRequestStatus
+    ConferenceRequestStatus (..),
+    newConferenceRequestStatus,
+
+    -- ** ConferenceSolution
+    ConferenceSolution (..),
+    newConferenceSolution,
+
+    -- ** ConferenceSolutionKey
+    ConferenceSolutionKey (..),
+    newConferenceSolutionKey,
+
+    -- ** CreateConferenceRequest
+    CreateConferenceRequest (..),
+    newCreateConferenceRequest,
+
+    -- ** EntryPoint
+    EntryPoint (..),
+    newEntryPoint,
+
+    -- ** Error'
+    Error' (..),
+    newError,
+
+    -- ** Event
+    Event (..),
+    newEvent,
+
+    -- ** Event_Creator
+    Event_Creator (..),
+    newEvent_Creator,
+
+    -- ** Event_ExtendedProperties
+    Event_ExtendedProperties (..),
+    newEvent_ExtendedProperties,
+
+    -- ** Event_ExtendedProperties_Private
+    Event_ExtendedProperties_Private (..),
+    newEvent_ExtendedProperties_Private,
+
+    -- ** Event_ExtendedProperties_Shared
+    Event_ExtendedProperties_Shared (..),
+    newEvent_ExtendedProperties_Shared,
+
+    -- ** Event_Gadget
+    Event_Gadget (..),
+    newEvent_Gadget,
+
+    -- ** Event_Gadget_Preferences
+    Event_Gadget_Preferences (..),
+    newEvent_Gadget_Preferences,
+
+    -- ** Event_Organizer
+    Event_Organizer (..),
+    newEvent_Organizer,
+
+    -- ** Event_Reminders
+    Event_Reminders (..),
+    newEvent_Reminders,
+
+    -- ** Event_Source
+    Event_Source (..),
+    newEvent_Source,
+
+    -- ** EventAttachment
+    EventAttachment (..),
+    newEventAttachment,
+
+    -- ** EventAttendee
+    EventAttendee (..),
+    newEventAttendee,
+
+    -- ** EventBirthdayProperties
+    EventBirthdayProperties (..),
+    newEventBirthdayProperties,
+
+    -- ** EventDateTime
+    EventDateTime (..),
+    newEventDateTime,
+
+    -- ** EventFocusTimeProperties
+    EventFocusTimeProperties (..),
+    newEventFocusTimeProperties,
+
+    -- ** EventOutOfOfficeProperties
+    EventOutOfOfficeProperties (..),
+    newEventOutOfOfficeProperties,
+
+    -- ** EventReminder
+    EventReminder (..),
+    newEventReminder,
+
+    -- ** EventWorkingLocationProperties
+    EventWorkingLocationProperties (..),
+    newEventWorkingLocationProperties,
+
+    -- ** EventWorkingLocationProperties_CustomLocation
+    EventWorkingLocationProperties_CustomLocation (..),
+    newEventWorkingLocationProperties_CustomLocation,
+
+    -- ** EventWorkingLocationProperties_OfficeLocation
+    EventWorkingLocationProperties_OfficeLocation (..),
+    newEventWorkingLocationProperties_OfficeLocation,
+
+    -- ** Events
+    Events (..),
+    newEvents,
+
+    -- ** FreeBusyCalendar
+    FreeBusyCalendar (..),
+    newFreeBusyCalendar,
+
+    -- ** FreeBusyGroup
+    FreeBusyGroup (..),
+    newFreeBusyGroup,
+
+    -- ** FreeBusyRequest
+    FreeBusyRequest (..),
+    newFreeBusyRequest,
+
+    -- ** FreeBusyRequestItem
+    FreeBusyRequestItem (..),
+    newFreeBusyRequestItem,
+
+    -- ** FreeBusyResponse
+    FreeBusyResponse (..),
+    newFreeBusyResponse,
+
+    -- ** FreeBusyResponse_Calendars
+    FreeBusyResponse_Calendars (..),
+    newFreeBusyResponse_Calendars,
+
+    -- ** FreeBusyResponse_Groups
+    FreeBusyResponse_Groups (..),
+    newFreeBusyResponse_Groups,
+
+    -- ** Setting
+    Setting (..),
+    newSetting,
+
+    -- ** Settings
+    Settings (..),
+    newSettings,
+
+    -- ** TimePeriod
+    TimePeriod (..),
+    newTimePeriod,
+
+    -- ** CalendarListListMinAccessRole
+    CalendarListListMinAccessRole (..),
+
+    -- ** CalendarListWatchMinAccessRole
+    CalendarListWatchMinAccessRole (..),
+
+    -- ** EventsDeleteSendUpdates
+    EventsDeleteSendUpdates (..),
+
+    -- ** EventsInsertSendUpdates
+    EventsInsertSendUpdates (..),
+
+    -- ** EventsListEventTypes
+    EventsListEventTypes (..),
+
+    -- ** EventsListOrderBy
+    EventsListOrderBy (..),
+
+    -- ** EventsMoveSendUpdates
+    EventsMoveSendUpdates (..),
+
+    -- ** EventsPatchSendUpdates
+    EventsPatchSendUpdates (..),
+
+    -- ** EventsQuickAddSendUpdates
+    EventsQuickAddSendUpdates (..),
+
+    -- ** EventsUpdateSendUpdates
+    EventsUpdateSendUpdates (..),
+
+    -- ** EventsWatchEventTypes
+    EventsWatchEventTypes (..),
+
+    -- ** EventsWatchOrderBy
+    EventsWatchOrderBy (..),
+  )
+where
+
+import Gogol.AppsCalendar.Internal.Product
+import Gogol.AppsCalendar.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Default request referring to version @v3@ of the Calendar API. This contains the host and root path used as a starting point for constructing service requests.
+appsCalendarService :: Core.ServiceConfig
+appsCalendarService =
+  Core.defaultService
+    (Core.ServiceId "calendar:v3")
+    "www.googleapis.com"
+
+-- | See, edit, share, and permanently delete all the calendars you can access using Google Calendar
+type Calendar'FullControl =
+  "https://www.googleapis.com/auth/calendar"
+
+-- | See and change the sharing permissions of Google calendars you own
+type Calendar'Acls =
+  "https://www.googleapis.com/auth/calendar.acls"
+
+-- | See the sharing permissions of Google calendars you own
+type Calendar'Acls'Readonly =
+  "https://www.googleapis.com/auth/calendar.acls.readonly"
+
+-- | Make secondary Google calendars, and see, create, change, and delete events on them
+type Calendar'App'Created =
+  "https://www.googleapis.com/auth/calendar.app.created"
+
+-- | See, add, and remove Google calendars you’re subscribed to
+type Calendar'Calendarlist =
+  "https://www.googleapis.com/auth/calendar.calendarlist"
+
+-- | See the list of Google calendars you’re subscribed to
+type Calendar'Calendarlist'Readonly =
+  "https://www.googleapis.com/auth/calendar.calendarlist.readonly"
+
+-- | See and change the properties of Google calendars you have access to, and create secondary calendars
+type Calendar'Calendars =
+  "https://www.googleapis.com/auth/calendar.calendars"
+
+-- | See the title, description, default time zone, and other properties of Google calendars you have access to
+type Calendar'Calendars'Readonly =
+  "https://www.googleapis.com/auth/calendar.calendars.readonly"
+
+-- | View and edit events on all your calendars
+type Calendar'Events =
+  "https://www.googleapis.com/auth/calendar.events"
+
+-- | See the availability on Google calendars you have access to
+type Calendar'Events'Freebusy =
+  "https://www.googleapis.com/auth/calendar.events.freebusy"
+
+-- | See, create, change, and delete events on Google calendars you own
+type Calendar'Events'Owned =
+  "https://www.googleapis.com/auth/calendar.events.owned"
+
+-- | See the events on Google calendars you own
+type Calendar'Events'Owned'Readonly =
+  "https://www.googleapis.com/auth/calendar.events.owned.readonly"
+
+-- | See the events on public calendars
+type Calendar'Events'Public'Readonly =
+  "https://www.googleapis.com/auth/calendar.events.public.readonly"
+
+-- | View events on all your calendars
+type Calendar'Events'Readonly =
+  "https://www.googleapis.com/auth/calendar.events.readonly"
+
+-- | View your availability in your calendars
+type Calendar'Freebusy =
+  "https://www.googleapis.com/auth/calendar.freebusy"
+
+-- | See and download any calendar you can access using your Google Calendar
+type Calendar'Readonly =
+  "https://www.googleapis.com/auth/calendar.readonly"
+
+-- | View your Calendar settings
+type Calendar'Settings'Readonly =
+  "https://www.googleapis.com/auth/calendar.settings.readonly"
diff --git a/gen/Network/Google/AppsCalendar.hs b/gen/Network/Google/AppsCalendar.hs
deleted file mode 100644
--- a/gen/Network/Google/AppsCalendar.hs
+++ /dev/null
@@ -1,681 +0,0 @@
-{-# LANGUAGE DataKinds         #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE TypeOperators     #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- |
--- Module      : Network.Google.AppsCalendar
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Manipulates events and other calendar data.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference>
-module Network.Google.AppsCalendar
-    (
-    -- * Service Configuration
-      appsCalendarService
-
-    -- * OAuth Scopes
-    , calendarScope
-    , calendarReadOnlyScope
-    , calendarEventsScope
-    , calendarSettingsReadOnlyScope
-    , calendarEventsReadOnlyScope
-
-    -- * API Declaration
-    , AppsCalendarAPI
-
-    -- * Resources
-
-    -- ** calendar.acl.delete
-    , module Network.Google.Resource.Calendar.ACL.Delete
-
-    -- ** calendar.acl.get
-    , module Network.Google.Resource.Calendar.ACL.Get
-
-    -- ** calendar.acl.insert
-    , module Network.Google.Resource.Calendar.ACL.Insert
-
-    -- ** calendar.acl.list
-    , module Network.Google.Resource.Calendar.ACL.List
-
-    -- ** calendar.acl.patch
-    , module Network.Google.Resource.Calendar.ACL.Patch
-
-    -- ** calendar.acl.update
-    , module Network.Google.Resource.Calendar.ACL.Update
-
-    -- ** calendar.acl.watch
-    , module Network.Google.Resource.Calendar.ACL.Watch
-
-    -- ** calendar.calendarList.delete
-    , module Network.Google.Resource.Calendar.CalendarList.Delete
-
-    -- ** calendar.calendarList.get
-    , module Network.Google.Resource.Calendar.CalendarList.Get
-
-    -- ** calendar.calendarList.insert
-    , module Network.Google.Resource.Calendar.CalendarList.Insert
-
-    -- ** calendar.calendarList.list
-    , module Network.Google.Resource.Calendar.CalendarList.List
-
-    -- ** calendar.calendarList.patch
-    , module Network.Google.Resource.Calendar.CalendarList.Patch
-
-    -- ** calendar.calendarList.update
-    , module Network.Google.Resource.Calendar.CalendarList.Update
-
-    -- ** calendar.calendarList.watch
-    , module Network.Google.Resource.Calendar.CalendarList.Watch
-
-    -- ** calendar.calendars.clear
-    , module Network.Google.Resource.Calendar.Calendars.Clear
-
-    -- ** calendar.calendars.delete
-    , module Network.Google.Resource.Calendar.Calendars.Delete
-
-    -- ** calendar.calendars.get
-    , module Network.Google.Resource.Calendar.Calendars.Get
-
-    -- ** calendar.calendars.insert
-    , module Network.Google.Resource.Calendar.Calendars.Insert
-
-    -- ** calendar.calendars.patch
-    , module Network.Google.Resource.Calendar.Calendars.Patch
-
-    -- ** calendar.calendars.update
-    , module Network.Google.Resource.Calendar.Calendars.Update
-
-    -- ** calendar.channels.stop
-    , module Network.Google.Resource.Calendar.Channels.Stop
-
-    -- ** calendar.colors.get
-    , module Network.Google.Resource.Calendar.Colors.Get
-
-    -- ** calendar.events.delete
-    , module Network.Google.Resource.Calendar.Events.Delete
-
-    -- ** calendar.events.get
-    , module Network.Google.Resource.Calendar.Events.Get
-
-    -- ** calendar.events.import
-    , module Network.Google.Resource.Calendar.Events.Import
-
-    -- ** calendar.events.insert
-    , module Network.Google.Resource.Calendar.Events.Insert
-
-    -- ** calendar.events.instances
-    , module Network.Google.Resource.Calendar.Events.Instances
-
-    -- ** calendar.events.list
-    , module Network.Google.Resource.Calendar.Events.List
-
-    -- ** calendar.events.move
-    , module Network.Google.Resource.Calendar.Events.Move
-
-    -- ** calendar.events.patch
-    , module Network.Google.Resource.Calendar.Events.Patch
-
-    -- ** calendar.events.quickAdd
-    , module Network.Google.Resource.Calendar.Events.QuickAdd
-
-    -- ** calendar.events.update
-    , module Network.Google.Resource.Calendar.Events.Update
-
-    -- ** calendar.events.watch
-    , module Network.Google.Resource.Calendar.Events.Watch
-
-    -- ** calendar.freebusy.query
-    , module Network.Google.Resource.Calendar.FreeBusy.Query
-
-    -- ** calendar.settings.get
-    , module Network.Google.Resource.Calendar.Settings.Get
-
-    -- ** calendar.settings.list
-    , module Network.Google.Resource.Calendar.Settings.List
-
-    -- ** calendar.settings.watch
-    , module Network.Google.Resource.Calendar.Settings.Watch
-
-    -- * Types
-
-    -- ** CalendarListEntry
-    , CalendarListEntry
-    , calendarListEntry
-    , cleSummary
-    , cleConferenceProperties
-    , cleEtag
-    , cleLocation
-    , cleKind
-    , cleNotificationSettings
-    , cleBackgRoundColor
-    , cleForegRoundColor
-    , cleDefaultReminders
-    , cleSelected
-    , clePrimary
-    , cleHidden
-    , cleId
-    , cleDeleted
-    , cleAccessRole
-    , cleSummaryOverride
-    , cleColorId
-    , cleTimeZone
-    , cleDescription
-
-    -- ** ConferenceParameters
-    , ConferenceParameters
-    , conferenceParameters
-    , cpAddOnParameters
-
-    -- ** Event
-    , Event
-    , event
-    , eSummary
-    , eOriginalStartTime
-    , eCreator
-    , eStatus
-    , eGuestsCanModify
-    , eEtag
-    , eAttachments
-    , eLocked
-    , eLocation
-    , eAttendees
-    , eReminders
-    , eKind
-    , eCreated
-    , eTransparency
-    , eRecurringEventId
-    , eStart
-    , ePrivateCopy
-    , eEndTimeUnspecified
-    , eConferenceData
-    , eExtendedProperties
-    , eVisibility
-    , eGuestsCanInviteOthers
-    , eRecurrence
-    , eGadget
-    , eSequence
-    , eICalUId
-    , eEnd
-    , eAttendeesOmitted
-    , eSource
-    , eId
-    , eHTMLLink
-    , eUpdated
-    , eColorId
-    , eAnyoneCanAddSelf
-    , eGuestsCanSeeOtherGuests
-    , eHangoutLink
-    , eDescription
-    , eOrganizer
-
-    -- ** CalendarListEntryNotificationSettings
-    , CalendarListEntryNotificationSettings
-    , calendarListEntryNotificationSettings
-    , clensNotifications
-
-    -- ** ConferenceProperties
-    , ConferenceProperties
-    , conferenceProperties
-    , cpAllowedConferenceSolutionTypes
-
-    -- ** ConferenceSolution
-    , ConferenceSolution
-    , conferenceSolution
-    , csIconURI
-    , csKey
-    , csName
-
-    -- ** EventsPatchSendUpdates
-    , EventsPatchSendUpdates (..)
-
-    -- ** ACLRuleScope
-    , ACLRuleScope
-    , aclRuleScope
-    , arsValue
-    , arsType
-
-    -- ** ColorsEvent
-    , ColorsEvent
-    , colorsEvent
-    , ceAddtional
-
-    -- ** EventsQuickAddSendUpdates
-    , EventsQuickAddSendUpdates (..)
-
-    -- ** Settings
-    , Settings
-    , settings
-    , sEtag
-    , sNextPageToken
-    , sKind
-    , sItems
-    , sNextSyncToken
-
-    -- ** FreeBusyRequestItem
-    , FreeBusyRequestItem
-    , freeBusyRequestItem
-    , fbriId
-
-    -- ** EventAttachment
-    , EventAttachment
-    , eventAttachment
-    , eaFileURL
-    , eaIconLink
-    , eaMimeType
-    , eaTitle
-    , eaFileId
-
-    -- ** EntryPoint
-    , EntryPoint
-    , entryPoint
-    , epPasscode
-    , epRegionCode
-    , epURI
-    , epMeetingCode
-    , epPassword
-    , epPin
-    , epEntryPointFeatures
-    , epEntryPointType
-    , epLabel
-    , epAccessCode
-
-    -- ** TimePeriod
-    , TimePeriod
-    , timePeriod
-    , tpStart
-    , tpEnd
-
-    -- ** EventsUpdateSendUpdates
-    , EventsUpdateSendUpdates (..)
-
-    -- ** ConferenceSolutionKey
-    , ConferenceSolutionKey
-    , conferenceSolutionKey
-    , cskType
-
-    -- ** EventsMoveSendUpdates
-    , EventsMoveSendUpdates (..)
-
-    -- ** EventCreator
-    , EventCreator
-    , eventCreator
-    , ecEmail
-    , ecSelf
-    , ecDisplayName
-    , ecId
-
-    -- ** Error'
-    , Error'
-    , error'
-    , eDomain
-    , eReason
-
-    -- ** ColorDefinition
-    , ColorDefinition
-    , colorDefinition
-    , cdForegRound
-    , cdBackgRound
-
-    -- ** EventsListOrderBy
-    , EventsListOrderBy (..)
-
-    -- ** EventsDeleteSendUpdates
-    , EventsDeleteSendUpdates (..)
-
-    -- ** Channel
-    , Channel
-    , channel
-    , cResourceURI
-    , cResourceId
-    , cKind
-    , cExpiration
-    , cToken
-    , cAddress
-    , cPayload
-    , cParams
-    , cId
-    , cType
-
-    -- ** ConferenceRequestStatus
-    , ConferenceRequestStatus
-    , conferenceRequestStatus
-    , crsStatusCode
-
-    -- ** FreeBusyCalendar
-    , FreeBusyCalendar
-    , freeBusyCalendar
-    , fbcBusy
-    , fbcErrors
-
-    -- ** ConferenceData
-    , ConferenceData
-    , conferenceData
-    , cdSignature
-    , cdConferenceSolution
-    , cdCreateRequest
-    , cdConferenceId
-    , cdParameters
-    , cdNotes
-    , cdEntryPoints
-
-    -- ** Setting
-    , Setting
-    , setting
-    , setEtag
-    , setKind
-    , setValue
-    , setId
-
-    -- ** FreeBusyResponseGroups
-    , FreeBusyResponseGroups
-    , freeBusyResponseGroups
-    , fbrgAddtional
-
-    -- ** EventsInsertSendUpdates
-    , EventsInsertSendUpdates (..)
-
-    -- ** EventReminders
-    , EventReminders
-    , eventReminders
-    , erOverrides
-    , erUseDefault
-
-    -- ** ColorsCalendar
-    , ColorsCalendar
-    , colorsCalendar
-    , ccAddtional
-
-    -- ** ConferenceParametersAddOnParametersParameters
-    , ConferenceParametersAddOnParametersParameters
-    , conferenceParametersAddOnParametersParameters
-    , cpaoppAddtional
-
-    -- ** CalendarNotification
-    , CalendarNotification
-    , calendarNotification
-    , cnMethod
-    , cnType
-
-    -- ** EventExtendedPropertiesPrivate
-    , EventExtendedPropertiesPrivate
-    , eventExtendedPropertiesPrivate
-    , eeppAddtional
-
-    -- ** ChannelParams
-    , ChannelParams
-    , channelParams
-    , cpAddtional
-
-    -- ** Events
-    , Events
-    , events
-    , eveSummary
-    , eveEtag
-    , eveNextPageToken
-    , eveKind
-    , eveItems
-    , eveDefaultReminders
-    , eveUpdated
-    , eveAccessRole
-    , eveTimeZone
-    , eveNextSyncToken
-    , eveDescription
-
-    -- ** EventAttendee
-    , EventAttendee
-    , eventAttendee
-    , eaEmail
-    , eaResponseStatus
-    , eaSelf
-    , eaResource
-    , eaAdditionalGuests
-    , eaDisplayName
-    , eaId
-    , eaComment
-    , eaOptional
-    , eaOrganizer
-
-    -- ** Calendar
-    , Calendar
-    , calendar
-    , calSummary
-    , calConferenceProperties
-    , calEtag
-    , calLocation
-    , calKind
-    , calId
-    , calTimeZone
-    , calDescription
-
-    -- ** FreeBusyResponse
-    , FreeBusyResponse
-    , freeBusyResponse
-    , fbrGroups
-    , fbrTimeMin
-    , fbrKind
-    , fbrCalendars
-    , fbrTimeMax
-
-    -- ** EventReminder
-    , EventReminder
-    , eventReminder
-    , erMethod
-    , erMinutes
-
-    -- ** EventExtendedProperties
-    , EventExtendedProperties
-    , eventExtendedProperties
-    , eepPrivate
-    , eepShared
-
-    -- ** EventDateTime
-    , EventDateTime
-    , eventDateTime
-    , edtDate
-    , edtTimeZone
-    , edtDateTime
-
-    -- ** EventOrganizer
-    , EventOrganizer
-    , eventOrganizer
-    , eoEmail
-    , eoSelf
-    , eoDisplayName
-    , eoId
-
-    -- ** CalendarList
-    , CalendarList
-    , calendarList
-    , clEtag
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clNextSyncToken
-
-    -- ** CalendarListListMinAccessRole
-    , CalendarListListMinAccessRole (..)
-
-    -- ** EventGadget
-    , EventGadget
-    , eventGadget
-    , egHeight
-    , egDisplay
-    , egPreferences
-    , egLink
-    , egIconLink
-    , egWidth
-    , egTitle
-    , egType
-
-    -- ** EventGadgetPreferences
-    , EventGadgetPreferences
-    , eventGadgetPreferences
-    , egpAddtional
-
-    -- ** FreeBusyRequest
-    , FreeBusyRequest
-    , freeBusyRequest
-    , fCalendarExpansionMax
-    , fTimeMin
-    , fItems
-    , fGroupExpansionMax
-    , fTimeZone
-    , fTimeMax
-
-    -- ** ACLRule
-    , ACLRule
-    , aclRule
-    , arEtag
-    , arKind
-    , arRole
-    , arScope
-    , arId
-
-    -- ** EventsWatchOrderBy
-    , EventsWatchOrderBy (..)
-
-    -- ** CreateConferenceRequest
-    , CreateConferenceRequest
-    , createConferenceRequest
-    , ccrStatus
-    , ccrRequestId
-    , ccrConferenceSolutionKey
-
-    -- ** EventExtendedPropertiesShared
-    , EventExtendedPropertiesShared
-    , eventExtendedPropertiesShared
-    , eepsAddtional
-
-    -- ** CalendarListWatchMinAccessRole
-    , CalendarListWatchMinAccessRole (..)
-
-    -- ** FreeBusyResponseCalendars
-    , FreeBusyResponseCalendars
-    , freeBusyResponseCalendars
-    , fbrcAddtional
-
-    -- ** ACL
-    , ACL
-    , acl
-    , aEtag
-    , aNextPageToken
-    , aKind
-    , aItems
-    , aNextSyncToken
-
-    -- ** Colors
-    , Colors
-    , colors
-    , colEvent
-    , colKind
-    , colCalendar
-    , colUpdated
-
-    -- ** FreeBusyGroup
-    , FreeBusyGroup
-    , freeBusyGroup
-    , fbgCalendars
-    , fbgErrors
-
-    -- ** ConferenceParametersAddOnParameters
-    , ConferenceParametersAddOnParameters
-    , conferenceParametersAddOnParameters
-    , cpaopParameters
-
-    -- ** EventSource
-    , EventSource
-    , eventSource
-    , esURL
-    , esTitle
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-import           Network.Google.Resource.Calendar.ACL.Delete
-import           Network.Google.Resource.Calendar.ACL.Get
-import           Network.Google.Resource.Calendar.ACL.Insert
-import           Network.Google.Resource.Calendar.ACL.List
-import           Network.Google.Resource.Calendar.ACL.Patch
-import           Network.Google.Resource.Calendar.ACL.Update
-import           Network.Google.Resource.Calendar.ACL.Watch
-import           Network.Google.Resource.Calendar.CalendarList.Delete
-import           Network.Google.Resource.Calendar.CalendarList.Get
-import           Network.Google.Resource.Calendar.CalendarList.Insert
-import           Network.Google.Resource.Calendar.CalendarList.List
-import           Network.Google.Resource.Calendar.CalendarList.Patch
-import           Network.Google.Resource.Calendar.CalendarList.Update
-import           Network.Google.Resource.Calendar.CalendarList.Watch
-import           Network.Google.Resource.Calendar.Calendars.Clear
-import           Network.Google.Resource.Calendar.Calendars.Delete
-import           Network.Google.Resource.Calendar.Calendars.Get
-import           Network.Google.Resource.Calendar.Calendars.Insert
-import           Network.Google.Resource.Calendar.Calendars.Patch
-import           Network.Google.Resource.Calendar.Calendars.Update
-import           Network.Google.Resource.Calendar.Channels.Stop
-import           Network.Google.Resource.Calendar.Colors.Get
-import           Network.Google.Resource.Calendar.Events.Delete
-import           Network.Google.Resource.Calendar.Events.Get
-import           Network.Google.Resource.Calendar.Events.Import
-import           Network.Google.Resource.Calendar.Events.Insert
-import           Network.Google.Resource.Calendar.Events.Instances
-import           Network.Google.Resource.Calendar.Events.List
-import           Network.Google.Resource.Calendar.Events.Move
-import           Network.Google.Resource.Calendar.Events.Patch
-import           Network.Google.Resource.Calendar.Events.QuickAdd
-import           Network.Google.Resource.Calendar.Events.Update
-import           Network.Google.Resource.Calendar.Events.Watch
-import           Network.Google.Resource.Calendar.FreeBusy.Query
-import           Network.Google.Resource.Calendar.Settings.Get
-import           Network.Google.Resource.Calendar.Settings.List
-import           Network.Google.Resource.Calendar.Settings.Watch
-
-{- $resources
-TODO
--}
-
--- | Represents the entirety of the methods and resources available for the Calendar API service.
-type AppsCalendarAPI =
-     SettingsListResource :<|> SettingsGetResource :<|>
-       SettingsWatchResource
-       :<|> ChannelsStopResource
-       :<|> CalendarsInsertResource
-       :<|> CalendarsPatchResource
-       :<|> CalendarsGetResource
-       :<|> CalendarsClearResource
-       :<|> CalendarsDeleteResource
-       :<|> CalendarsUpdateResource
-       :<|> EventsQuickAddResource
-       :<|> EventsInsertResource
-       :<|> EventsListResource
-       :<|> EventsPatchResource
-       :<|> EventsGetResource
-       :<|> EventsInstancesResource
-       :<|> EventsImportResource
-       :<|> EventsDeleteResource
-       :<|> EventsUpdateResource
-       :<|> EventsMoveResource
-       :<|> EventsWatchResource
-       :<|> CalendarListInsertResource
-       :<|> CalendarListListResource
-       :<|> CalendarListPatchResource
-       :<|> CalendarListGetResource
-       :<|> CalendarListDeleteResource
-       :<|> CalendarListUpdateResource
-       :<|> CalendarListWatchResource
-       :<|> ACLInsertResource
-       :<|> ACLListResource
-       :<|> ACLPatchResource
-       :<|> ACLGetResource
-       :<|> ACLDeleteResource
-       :<|> ACLUpdateResource
-       :<|> ACLWatchResource
-       :<|> ColorsGetResource
-       :<|> FreeBusyQueryResource
diff --git a/gen/Network/Google/AppsCalendar/Types.hs b/gen/Network/Google/AppsCalendar/Types.hs
deleted file mode 100644
--- a/gen/Network/Google/AppsCalendar/Types.hs
+++ /dev/null
@@ -1,509 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.AppsCalendar.Types
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.AppsCalendar.Types
-    (
-    -- * Service Configuration
-      appsCalendarService
-
-    -- * OAuth Scopes
-    , calendarScope
-    , calendarReadOnlyScope
-    , calendarEventsScope
-    , calendarSettingsReadOnlyScope
-    , calendarEventsReadOnlyScope
-
-    -- * CalendarListEntry
-    , CalendarListEntry
-    , calendarListEntry
-    , cleSummary
-    , cleConferenceProperties
-    , cleEtag
-    , cleLocation
-    , cleKind
-    , cleNotificationSettings
-    , cleBackgRoundColor
-    , cleForegRoundColor
-    , cleDefaultReminders
-    , cleSelected
-    , clePrimary
-    , cleHidden
-    , cleId
-    , cleDeleted
-    , cleAccessRole
-    , cleSummaryOverride
-    , cleColorId
-    , cleTimeZone
-    , cleDescription
-
-    -- * ConferenceParameters
-    , ConferenceParameters
-    , conferenceParameters
-    , cpAddOnParameters
-
-    -- * Event
-    , Event
-    , event
-    , eSummary
-    , eOriginalStartTime
-    , eCreator
-    , eStatus
-    , eGuestsCanModify
-    , eEtag
-    , eAttachments
-    , eLocked
-    , eLocation
-    , eAttendees
-    , eReminders
-    , eKind
-    , eCreated
-    , eTransparency
-    , eRecurringEventId
-    , eStart
-    , ePrivateCopy
-    , eEndTimeUnspecified
-    , eConferenceData
-    , eExtendedProperties
-    , eVisibility
-    , eGuestsCanInviteOthers
-    , eRecurrence
-    , eGadget
-    , eSequence
-    , eICalUId
-    , eEnd
-    , eAttendeesOmitted
-    , eSource
-    , eId
-    , eHTMLLink
-    , eUpdated
-    , eColorId
-    , eAnyoneCanAddSelf
-    , eGuestsCanSeeOtherGuests
-    , eHangoutLink
-    , eDescription
-    , eOrganizer
-
-    -- * CalendarListEntryNotificationSettings
-    , CalendarListEntryNotificationSettings
-    , calendarListEntryNotificationSettings
-    , clensNotifications
-
-    -- * ConferenceProperties
-    , ConferenceProperties
-    , conferenceProperties
-    , cpAllowedConferenceSolutionTypes
-
-    -- * ConferenceSolution
-    , ConferenceSolution
-    , conferenceSolution
-    , csIconURI
-    , csKey
-    , csName
-
-    -- * EventsPatchSendUpdates
-    , EventsPatchSendUpdates (..)
-
-    -- * ACLRuleScope
-    , ACLRuleScope
-    , aclRuleScope
-    , arsValue
-    , arsType
-
-    -- * ColorsEvent
-    , ColorsEvent
-    , colorsEvent
-    , ceAddtional
-
-    -- * EventsQuickAddSendUpdates
-    , EventsQuickAddSendUpdates (..)
-
-    -- * Settings
-    , Settings
-    , settings
-    , sEtag
-    , sNextPageToken
-    , sKind
-    , sItems
-    , sNextSyncToken
-
-    -- * FreeBusyRequestItem
-    , FreeBusyRequestItem
-    , freeBusyRequestItem
-    , fbriId
-
-    -- * EventAttachment
-    , EventAttachment
-    , eventAttachment
-    , eaFileURL
-    , eaIconLink
-    , eaMimeType
-    , eaTitle
-    , eaFileId
-
-    -- * EntryPoint
-    , EntryPoint
-    , entryPoint
-    , epPasscode
-    , epRegionCode
-    , epURI
-    , epMeetingCode
-    , epPassword
-    , epPin
-    , epEntryPointFeatures
-    , epEntryPointType
-    , epLabel
-    , epAccessCode
-
-    -- * TimePeriod
-    , TimePeriod
-    , timePeriod
-    , tpStart
-    , tpEnd
-
-    -- * EventsUpdateSendUpdates
-    , EventsUpdateSendUpdates (..)
-
-    -- * ConferenceSolutionKey
-    , ConferenceSolutionKey
-    , conferenceSolutionKey
-    , cskType
-
-    -- * EventsMoveSendUpdates
-    , EventsMoveSendUpdates (..)
-
-    -- * EventCreator
-    , EventCreator
-    , eventCreator
-    , ecEmail
-    , ecSelf
-    , ecDisplayName
-    , ecId
-
-    -- * Error'
-    , Error'
-    , error'
-    , eDomain
-    , eReason
-
-    -- * ColorDefinition
-    , ColorDefinition
-    , colorDefinition
-    , cdForegRound
-    , cdBackgRound
-
-    -- * EventsListOrderBy
-    , EventsListOrderBy (..)
-
-    -- * EventsDeleteSendUpdates
-    , EventsDeleteSendUpdates (..)
-
-    -- * Channel
-    , Channel
-    , channel
-    , cResourceURI
-    , cResourceId
-    , cKind
-    , cExpiration
-    , cToken
-    , cAddress
-    , cPayload
-    , cParams
-    , cId
-    , cType
-
-    -- * ConferenceRequestStatus
-    , ConferenceRequestStatus
-    , conferenceRequestStatus
-    , crsStatusCode
-
-    -- * FreeBusyCalendar
-    , FreeBusyCalendar
-    , freeBusyCalendar
-    , fbcBusy
-    , fbcErrors
-
-    -- * ConferenceData
-    , ConferenceData
-    , conferenceData
-    , cdSignature
-    , cdConferenceSolution
-    , cdCreateRequest
-    , cdConferenceId
-    , cdParameters
-    , cdNotes
-    , cdEntryPoints
-
-    -- * Setting
-    , Setting
-    , setting
-    , setEtag
-    , setKind
-    , setValue
-    , setId
-
-    -- * FreeBusyResponseGroups
-    , FreeBusyResponseGroups
-    , freeBusyResponseGroups
-    , fbrgAddtional
-
-    -- * EventsInsertSendUpdates
-    , EventsInsertSendUpdates (..)
-
-    -- * EventReminders
-    , EventReminders
-    , eventReminders
-    , erOverrides
-    , erUseDefault
-
-    -- * ColorsCalendar
-    , ColorsCalendar
-    , colorsCalendar
-    , ccAddtional
-
-    -- * ConferenceParametersAddOnParametersParameters
-    , ConferenceParametersAddOnParametersParameters
-    , conferenceParametersAddOnParametersParameters
-    , cpaoppAddtional
-
-    -- * CalendarNotification
-    , CalendarNotification
-    , calendarNotification
-    , cnMethod
-    , cnType
-
-    -- * EventExtendedPropertiesPrivate
-    , EventExtendedPropertiesPrivate
-    , eventExtendedPropertiesPrivate
-    , eeppAddtional
-
-    -- * ChannelParams
-    , ChannelParams
-    , channelParams
-    , cpAddtional
-
-    -- * Events
-    , Events
-    , events
-    , eveSummary
-    , eveEtag
-    , eveNextPageToken
-    , eveKind
-    , eveItems
-    , eveDefaultReminders
-    , eveUpdated
-    , eveAccessRole
-    , eveTimeZone
-    , eveNextSyncToken
-    , eveDescription
-
-    -- * EventAttendee
-    , EventAttendee
-    , eventAttendee
-    , eaEmail
-    , eaResponseStatus
-    , eaSelf
-    , eaResource
-    , eaAdditionalGuests
-    , eaDisplayName
-    , eaId
-    , eaComment
-    , eaOptional
-    , eaOrganizer
-
-    -- * Calendar
-    , Calendar
-    , calendar
-    , calSummary
-    , calConferenceProperties
-    , calEtag
-    , calLocation
-    , calKind
-    , calId
-    , calTimeZone
-    , calDescription
-
-    -- * FreeBusyResponse
-    , FreeBusyResponse
-    , freeBusyResponse
-    , fbrGroups
-    , fbrTimeMin
-    , fbrKind
-    , fbrCalendars
-    , fbrTimeMax
-
-    -- * EventReminder
-    , EventReminder
-    , eventReminder
-    , erMethod
-    , erMinutes
-
-    -- * EventExtendedProperties
-    , EventExtendedProperties
-    , eventExtendedProperties
-    , eepPrivate
-    , eepShared
-
-    -- * EventDateTime
-    , EventDateTime
-    , eventDateTime
-    , edtDate
-    , edtTimeZone
-    , edtDateTime
-
-    -- * EventOrganizer
-    , EventOrganizer
-    , eventOrganizer
-    , eoEmail
-    , eoSelf
-    , eoDisplayName
-    , eoId
-
-    -- * CalendarList
-    , CalendarList
-    , calendarList
-    , clEtag
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clNextSyncToken
-
-    -- * CalendarListListMinAccessRole
-    , CalendarListListMinAccessRole (..)
-
-    -- * EventGadget
-    , EventGadget
-    , eventGadget
-    , egHeight
-    , egDisplay
-    , egPreferences
-    , egLink
-    , egIconLink
-    , egWidth
-    , egTitle
-    , egType
-
-    -- * EventGadgetPreferences
-    , EventGadgetPreferences
-    , eventGadgetPreferences
-    , egpAddtional
-
-    -- * FreeBusyRequest
-    , FreeBusyRequest
-    , freeBusyRequest
-    , fCalendarExpansionMax
-    , fTimeMin
-    , fItems
-    , fGroupExpansionMax
-    , fTimeZone
-    , fTimeMax
-
-    -- * ACLRule
-    , ACLRule
-    , aclRule
-    , arEtag
-    , arKind
-    , arRole
-    , arScope
-    , arId
-
-    -- * EventsWatchOrderBy
-    , EventsWatchOrderBy (..)
-
-    -- * CreateConferenceRequest
-    , CreateConferenceRequest
-    , createConferenceRequest
-    , ccrStatus
-    , ccrRequestId
-    , ccrConferenceSolutionKey
-
-    -- * EventExtendedPropertiesShared
-    , EventExtendedPropertiesShared
-    , eventExtendedPropertiesShared
-    , eepsAddtional
-
-    -- * CalendarListWatchMinAccessRole
-    , CalendarListWatchMinAccessRole (..)
-
-    -- * FreeBusyResponseCalendars
-    , FreeBusyResponseCalendars
-    , freeBusyResponseCalendars
-    , fbrcAddtional
-
-    -- * ACL
-    , ACL
-    , acl
-    , aEtag
-    , aNextPageToken
-    , aKind
-    , aItems
-    , aNextSyncToken
-
-    -- * Colors
-    , Colors
-    , colors
-    , colEvent
-    , colKind
-    , colCalendar
-    , colUpdated
-
-    -- * FreeBusyGroup
-    , FreeBusyGroup
-    , freeBusyGroup
-    , fbgCalendars
-    , fbgErrors
-
-    -- * ConferenceParametersAddOnParameters
-    , ConferenceParametersAddOnParameters
-    , conferenceParametersAddOnParameters
-    , cpaopParameters
-
-    -- * EventSource
-    , EventSource
-    , eventSource
-    , esURL
-    , esTitle
-    ) where
-
-import           Network.Google.AppsCalendar.Types.Product
-import           Network.Google.AppsCalendar.Types.Sum
-import           Network.Google.Prelude
-
--- | Default request referring to version 'v3' of the Calendar API. This contains the host and root path used as a starting point for constructing service requests.
-appsCalendarService :: ServiceConfig
-appsCalendarService
-  = defaultService (ServiceId "calendar:v3")
-      "www.googleapis.com"
-
--- | See, edit, share, and permanently delete all the calendars you can
--- access using Google Calendar
-calendarScope :: Proxy '["https://www.googleapis.com/auth/calendar"]
-calendarScope = Proxy
-
--- | View your calendars
-calendarReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/calendar.readonly"]
-calendarReadOnlyScope = Proxy
-
--- | View and edit events on all your calendars
-calendarEventsScope :: Proxy '["https://www.googleapis.com/auth/calendar.events"]
-calendarEventsScope = Proxy
-
--- | View your Calendar settings
-calendarSettingsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/calendar.settings.readonly"]
-calendarSettingsReadOnlyScope = Proxy
-
--- | View events on all your calendars
-calendarEventsReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/calendar.events.readonly"]
-calendarEventsReadOnlyScope = Proxy
diff --git a/gen/Network/Google/AppsCalendar/Types/Product.hs b/gen/Network/Google/AppsCalendar/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/Google/AppsCalendar/Types/Product.hs
+++ /dev/null
@@ -1,4124 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.AppsCalendar.Types.Product
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.AppsCalendar.Types.Product where
-
-import           Network.Google.AppsCalendar.Types.Sum
-import           Network.Google.Prelude
-
---
--- /See:/ 'calendarListEntry' smart constructor.
-data CalendarListEntry =
-  CalendarListEntry'
-    { _cleSummary              :: !(Maybe Text)
-    , _cleConferenceProperties :: !(Maybe ConferenceProperties)
-    , _cleEtag                 :: !(Maybe Text)
-    , _cleLocation             :: !(Maybe Text)
-    , _cleKind                 :: !Text
-    , _cleNotificationSettings :: !(Maybe CalendarListEntryNotificationSettings)
-    , _cleBackgRoundColor      :: !(Maybe Text)
-    , _cleForegRoundColor      :: !(Maybe Text)
-    , _cleDefaultReminders     :: !(Maybe [EventReminder])
-    , _cleSelected             :: !Bool
-    , _clePrimary              :: !Bool
-    , _cleHidden               :: !Bool
-    , _cleId                   :: !(Maybe Text)
-    , _cleDeleted              :: !Bool
-    , _cleAccessRole           :: !(Maybe Text)
-    , _cleSummaryOverride      :: !(Maybe Text)
-    , _cleColorId              :: !(Maybe Text)
-    , _cleTimeZone             :: !(Maybe Text)
-    , _cleDescription          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListEntry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cleSummary'
---
--- * 'cleConferenceProperties'
---
--- * 'cleEtag'
---
--- * 'cleLocation'
---
--- * 'cleKind'
---
--- * 'cleNotificationSettings'
---
--- * 'cleBackgRoundColor'
---
--- * 'cleForegRoundColor'
---
--- * 'cleDefaultReminders'
---
--- * 'cleSelected'
---
--- * 'clePrimary'
---
--- * 'cleHidden'
---
--- * 'cleId'
---
--- * 'cleDeleted'
---
--- * 'cleAccessRole'
---
--- * 'cleSummaryOverride'
---
--- * 'cleColorId'
---
--- * 'cleTimeZone'
---
--- * 'cleDescription'
-calendarListEntry
-    :: CalendarListEntry
-calendarListEntry =
-  CalendarListEntry'
-    { _cleSummary = Nothing
-    , _cleConferenceProperties = Nothing
-    , _cleEtag = Nothing
-    , _cleLocation = Nothing
-    , _cleKind = "calendar#calendarListEntry"
-    , _cleNotificationSettings = Nothing
-    , _cleBackgRoundColor = Nothing
-    , _cleForegRoundColor = Nothing
-    , _cleDefaultReminders = Nothing
-    , _cleSelected = False
-    , _clePrimary = False
-    , _cleHidden = False
-    , _cleId = Nothing
-    , _cleDeleted = False
-    , _cleAccessRole = Nothing
-    , _cleSummaryOverride = Nothing
-    , _cleColorId = Nothing
-    , _cleTimeZone = Nothing
-    , _cleDescription = Nothing
-    }
-
-
--- | Title of the calendar. Read-only.
-cleSummary :: Lens' CalendarListEntry (Maybe Text)
-cleSummary
-  = lens _cleSummary (\ s a -> s{_cleSummary = a})
-
--- | Conferencing properties for this calendar, for example what types of
--- conferences are allowed.
-cleConferenceProperties :: Lens' CalendarListEntry (Maybe ConferenceProperties)
-cleConferenceProperties
-  = lens _cleConferenceProperties
-      (\ s a -> s{_cleConferenceProperties = a})
-
--- | ETag of the resource.
-cleEtag :: Lens' CalendarListEntry (Maybe Text)
-cleEtag = lens _cleEtag (\ s a -> s{_cleEtag = a})
-
--- | Geographic location of the calendar as free-form text. Optional.
--- Read-only.
-cleLocation :: Lens' CalendarListEntry (Maybe Text)
-cleLocation
-  = lens _cleLocation (\ s a -> s{_cleLocation = a})
-
--- | Type of the resource (\"calendar#calendarListEntry\").
-cleKind :: Lens' CalendarListEntry Text
-cleKind = lens _cleKind (\ s a -> s{_cleKind = a})
-
--- | The notifications that the authenticated user is receiving for this
--- calendar.
-cleNotificationSettings :: Lens' CalendarListEntry (Maybe CalendarListEntryNotificationSettings)
-cleNotificationSettings
-  = lens _cleNotificationSettings
-      (\ s a -> s{_cleNotificationSettings = a})
-
--- | The main color of the calendar in the hexadecimal format \"#0088aa\".
--- This property supersedes the index-based colorId property. To set or
--- change this property, you need to specify colorRgbFormat=true in the
--- parameters of the insert, update and patch methods. Optional.
-cleBackgRoundColor :: Lens' CalendarListEntry (Maybe Text)
-cleBackgRoundColor
-  = lens _cleBackgRoundColor
-      (\ s a -> s{_cleBackgRoundColor = a})
-
--- | The foreground color of the calendar in the hexadecimal format
--- \"#ffffff\". This property supersedes the index-based colorId property.
--- To set or change this property, you need to specify colorRgbFormat=true
--- in the parameters of the insert, update and patch methods. Optional.
-cleForegRoundColor :: Lens' CalendarListEntry (Maybe Text)
-cleForegRoundColor
-  = lens _cleForegRoundColor
-      (\ s a -> s{_cleForegRoundColor = a})
-
--- | The default reminders that the authenticated user has for this calendar.
-cleDefaultReminders :: Lens' CalendarListEntry [EventReminder]
-cleDefaultReminders
-  = lens _cleDefaultReminders
-      (\ s a -> s{_cleDefaultReminders = a})
-      . _Default
-      . _Coerce
-
--- | Whether the calendar content shows up in the calendar UI. Optional. The
--- default is False.
-cleSelected :: Lens' CalendarListEntry Bool
-cleSelected
-  = lens _cleSelected (\ s a -> s{_cleSelected = a})
-
--- | Whether the calendar is the primary calendar of the authenticated user.
--- Read-only. Optional. The default is False.
-clePrimary :: Lens' CalendarListEntry Bool
-clePrimary
-  = lens _clePrimary (\ s a -> s{_clePrimary = a})
-
--- | Whether the calendar has been hidden from the list. Optional. The
--- default is False.
-cleHidden :: Lens' CalendarListEntry Bool
-cleHidden
-  = lens _cleHidden (\ s a -> s{_cleHidden = a})
-
--- | Identifier of the calendar.
-cleId :: Lens' CalendarListEntry (Maybe Text)
-cleId = lens _cleId (\ s a -> s{_cleId = a})
-
--- | Whether this calendar list entry has been deleted from the calendar
--- list. Read-only. Optional. The default is False.
-cleDeleted :: Lens' CalendarListEntry Bool
-cleDeleted
-  = lens _cleDeleted (\ s a -> s{_cleDeleted = a})
-
--- | The effective access role that the authenticated user has on the
--- calendar. Read-only. Possible values are: - \"freeBusyReader\" -
--- Provides read access to free\/busy information. - \"reader\" - Provides
--- read access to the calendar. Private events will appear to users with
--- reader access, but event details will be hidden. - \"writer\" - Provides
--- read and write access to the calendar. Private events will appear to
--- users with writer access, and event details will be visible. - \"owner\"
--- - Provides ownership of the calendar. This role has all of the
--- permissions of the writer role with the additional ability to see and
--- manipulate ACLs.
-cleAccessRole :: Lens' CalendarListEntry (Maybe Text)
-cleAccessRole
-  = lens _cleAccessRole
-      (\ s a -> s{_cleAccessRole = a})
-
--- | The summary that the authenticated user has set for this calendar.
--- Optional.
-cleSummaryOverride :: Lens' CalendarListEntry (Maybe Text)
-cleSummaryOverride
-  = lens _cleSummaryOverride
-      (\ s a -> s{_cleSummaryOverride = a})
-
--- | The color of the calendar. This is an ID referring to an entry in the
--- calendar section of the colors definition (see the colors endpoint).
--- This property is superseded by the backgroundColor and foregroundColor
--- properties and can be ignored when using these properties. Optional.
-cleColorId :: Lens' CalendarListEntry (Maybe Text)
-cleColorId
-  = lens _cleColorId (\ s a -> s{_cleColorId = a})
-
--- | The time zone of the calendar. Optional. Read-only.
-cleTimeZone :: Lens' CalendarListEntry (Maybe Text)
-cleTimeZone
-  = lens _cleTimeZone (\ s a -> s{_cleTimeZone = a})
-
--- | Description of the calendar. Optional. Read-only.
-cleDescription :: Lens' CalendarListEntry (Maybe Text)
-cleDescription
-  = lens _cleDescription
-      (\ s a -> s{_cleDescription = a})
-
-instance FromJSON CalendarListEntry where
-        parseJSON
-          = withObject "CalendarListEntry"
-              (\ o ->
-                 CalendarListEntry' <$>
-                   (o .:? "summary") <*> (o .:? "conferenceProperties")
-                     <*> (o .:? "etag")
-                     <*> (o .:? "location")
-                     <*> (o .:? "kind" .!= "calendar#calendarListEntry")
-                     <*> (o .:? "notificationSettings")
-                     <*> (o .:? "backgroundColor")
-                     <*> (o .:? "foregroundColor")
-                     <*> (o .:? "defaultReminders" .!= mempty)
-                     <*> (o .:? "selected" .!= False)
-                     <*> (o .:? "primary" .!= False)
-                     <*> (o .:? "hidden" .!= False)
-                     <*> (o .:? "id")
-                     <*> (o .:? "deleted" .!= False)
-                     <*> (o .:? "accessRole")
-                     <*> (o .:? "summaryOverride")
-                     <*> (o .:? "colorId")
-                     <*> (o .:? "timeZone")
-                     <*> (o .:? "description"))
-
-instance ToJSON CalendarListEntry where
-        toJSON CalendarListEntry'{..}
-          = object
-              (catMaybes
-                 [("summary" .=) <$> _cleSummary,
-                  ("conferenceProperties" .=) <$>
-                    _cleConferenceProperties,
-                  ("etag" .=) <$> _cleEtag,
-                  ("location" .=) <$> _cleLocation,
-                  Just ("kind" .= _cleKind),
-                  ("notificationSettings" .=) <$>
-                    _cleNotificationSettings,
-                  ("backgroundColor" .=) <$> _cleBackgRoundColor,
-                  ("foregroundColor" .=) <$> _cleForegRoundColor,
-                  ("defaultReminders" .=) <$> _cleDefaultReminders,
-                  Just ("selected" .= _cleSelected),
-                  Just ("primary" .= _clePrimary),
-                  Just ("hidden" .= _cleHidden), ("id" .=) <$> _cleId,
-                  Just ("deleted" .= _cleDeleted),
-                  ("accessRole" .=) <$> _cleAccessRole,
-                  ("summaryOverride" .=) <$> _cleSummaryOverride,
-                  ("colorId" .=) <$> _cleColorId,
-                  ("timeZone" .=) <$> _cleTimeZone,
-                  ("description" .=) <$> _cleDescription])
-
---
--- /See:/ 'conferenceParameters' smart constructor.
-newtype ConferenceParameters =
-  ConferenceParameters'
-    { _cpAddOnParameters :: Maybe ConferenceParametersAddOnParameters
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceParameters' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpAddOnParameters'
-conferenceParameters
-    :: ConferenceParameters
-conferenceParameters = ConferenceParameters' {_cpAddOnParameters = Nothing}
-
-
--- | Additional add-on specific data.
-cpAddOnParameters :: Lens' ConferenceParameters (Maybe ConferenceParametersAddOnParameters)
-cpAddOnParameters
-  = lens _cpAddOnParameters
-      (\ s a -> s{_cpAddOnParameters = a})
-
-instance FromJSON ConferenceParameters where
-        parseJSON
-          = withObject "ConferenceParameters"
-              (\ o ->
-                 ConferenceParameters' <$> (o .:? "addOnParameters"))
-
-instance ToJSON ConferenceParameters where
-        toJSON ConferenceParameters'{..}
-          = object
-              (catMaybes
-                 [("addOnParameters" .=) <$> _cpAddOnParameters])
-
---
--- /See:/ 'event' smart constructor.
-data Event =
-  Event'
-    { _eSummary                 :: !(Maybe Text)
-    , _eOriginalStartTime       :: !(Maybe EventDateTime)
-    , _eCreator                 :: !(Maybe EventCreator)
-    , _eStatus                  :: !(Maybe Text)
-    , _eGuestsCanModify         :: !Bool
-    , _eEtag                    :: !(Maybe Text)
-    , _eAttachments             :: !(Maybe [EventAttachment])
-    , _eLocked                  :: !Bool
-    , _eLocation                :: !(Maybe Text)
-    , _eAttendees               :: !(Maybe [EventAttendee])
-    , _eReminders               :: !(Maybe EventReminders)
-    , _eKind                    :: !Text
-    , _eCreated                 :: !(Maybe DateTime')
-    , _eTransparency            :: !Text
-    , _eRecurringEventId        :: !(Maybe Text)
-    , _eStart                   :: !(Maybe EventDateTime)
-    , _ePrivateCopy             :: !Bool
-    , _eEndTimeUnspecified      :: !Bool
-    , _eConferenceData          :: !(Maybe ConferenceData)
-    , _eExtendedProperties      :: !(Maybe EventExtendedProperties)
-    , _eVisibility              :: !Text
-    , _eGuestsCanInviteOthers   :: !Bool
-    , _eRecurrence              :: !(Maybe [Text])
-    , _eGadget                  :: !(Maybe EventGadget)
-    , _eSequence                :: !(Maybe (Textual Int32))
-    , _eICalUId                 :: !(Maybe Text)
-    , _eEnd                     :: !(Maybe EventDateTime)
-    , _eAttendeesOmitted        :: !Bool
-    , _eSource                  :: !(Maybe EventSource)
-    , _eId                      :: !(Maybe Text)
-    , _eHTMLLink                :: !(Maybe Text)
-    , _eUpdated                 :: !(Maybe DateTime')
-    , _eColorId                 :: !(Maybe Text)
-    , _eAnyoneCanAddSelf        :: !Bool
-    , _eGuestsCanSeeOtherGuests :: !Bool
-    , _eHangoutLink             :: !(Maybe Text)
-    , _eDescription             :: !(Maybe Text)
-    , _eOrganizer               :: !(Maybe EventOrganizer)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Event' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eSummary'
---
--- * 'eOriginalStartTime'
---
--- * 'eCreator'
---
--- * 'eStatus'
---
--- * 'eGuestsCanModify'
---
--- * 'eEtag'
---
--- * 'eAttachments'
---
--- * 'eLocked'
---
--- * 'eLocation'
---
--- * 'eAttendees'
---
--- * 'eReminders'
---
--- * 'eKind'
---
--- * 'eCreated'
---
--- * 'eTransparency'
---
--- * 'eRecurringEventId'
---
--- * 'eStart'
---
--- * 'ePrivateCopy'
---
--- * 'eEndTimeUnspecified'
---
--- * 'eConferenceData'
---
--- * 'eExtendedProperties'
---
--- * 'eVisibility'
---
--- * 'eGuestsCanInviteOthers'
---
--- * 'eRecurrence'
---
--- * 'eGadget'
---
--- * 'eSequence'
---
--- * 'eICalUId'
---
--- * 'eEnd'
---
--- * 'eAttendeesOmitted'
---
--- * 'eSource'
---
--- * 'eId'
---
--- * 'eHTMLLink'
---
--- * 'eUpdated'
---
--- * 'eColorId'
---
--- * 'eAnyoneCanAddSelf'
---
--- * 'eGuestsCanSeeOtherGuests'
---
--- * 'eHangoutLink'
---
--- * 'eDescription'
---
--- * 'eOrganizer'
-event
-    :: Event
-event =
-  Event'
-    { _eSummary = Nothing
-    , _eOriginalStartTime = Nothing
-    , _eCreator = Nothing
-    , _eStatus = Nothing
-    , _eGuestsCanModify = False
-    , _eEtag = Nothing
-    , _eAttachments = Nothing
-    , _eLocked = False
-    , _eLocation = Nothing
-    , _eAttendees = Nothing
-    , _eReminders = Nothing
-    , _eKind = "calendar#event"
-    , _eCreated = Nothing
-    , _eTransparency = "opaque"
-    , _eRecurringEventId = Nothing
-    , _eStart = Nothing
-    , _ePrivateCopy = False
-    , _eEndTimeUnspecified = False
-    , _eConferenceData = Nothing
-    , _eExtendedProperties = Nothing
-    , _eVisibility = "default"
-    , _eGuestsCanInviteOthers = True
-    , _eRecurrence = Nothing
-    , _eGadget = Nothing
-    , _eSequence = Nothing
-    , _eICalUId = Nothing
-    , _eEnd = Nothing
-    , _eAttendeesOmitted = False
-    , _eSource = Nothing
-    , _eId = Nothing
-    , _eHTMLLink = Nothing
-    , _eUpdated = Nothing
-    , _eColorId = Nothing
-    , _eAnyoneCanAddSelf = False
-    , _eGuestsCanSeeOtherGuests = True
-    , _eHangoutLink = Nothing
-    , _eDescription = Nothing
-    , _eOrganizer = Nothing
-    }
-
-
--- | Title of the event.
-eSummary :: Lens' Event (Maybe Text)
-eSummary = lens _eSummary (\ s a -> s{_eSummary = a})
-
--- | For an instance of a recurring event, this is the time at which this
--- event would start according to the recurrence data in the recurring
--- event identified by recurringEventId. It uniquely identifies the
--- instance within the recurring event series even if the instance was
--- moved to a different time. Immutable.
-eOriginalStartTime :: Lens' Event (Maybe EventDateTime)
-eOriginalStartTime
-  = lens _eOriginalStartTime
-      (\ s a -> s{_eOriginalStartTime = a})
-
--- | The creator of the event. Read-only.
-eCreator :: Lens' Event (Maybe EventCreator)
-eCreator = lens _eCreator (\ s a -> s{_eCreator = a})
-
--- | Status of the event. Optional. Possible values are: - \"confirmed\" -
--- The event is confirmed. This is the default status. - \"tentative\" -
--- The event is tentatively confirmed. - \"cancelled\" - The event is
--- cancelled (deleted). The list method returns cancelled events only on
--- incremental sync (when syncToken or updatedMin are specified) or if the
--- showDeleted flag is set to true. The get method always returns them. A
--- cancelled status represents two different states depending on the event
--- type: - Cancelled exceptions of an uncancelled recurring event indicate
--- that this instance should no longer be presented to the user. Clients
--- should store these events for the lifetime of the parent recurring
--- event. Cancelled exceptions are only guaranteed to have values for the
--- id, recurringEventId and originalStartTime fields populated. The other
--- fields might be empty. - All other cancelled events represent deleted
--- events. Clients should remove their locally synced copies. Such
--- cancelled events will eventually disappear, so do not rely on them being
--- available indefinitely. Deleted events are only guaranteed to have the
--- id field populated. On the organizer\'s calendar, cancelled events
--- continue to expose event details (summary, location, etc.) so that they
--- can be restored (undeleted). Similarly, the events to which the user was
--- invited and that they manually removed continue to provide details.
--- However, incremental sync requests with showDeleted set to false will
--- not return these details. If an event changes its organizer (for example
--- via the move operation) and the original organizer is not on the
--- attendee list, it will leave behind a cancelled event where only the id
--- field is guaranteed to be populated.
-eStatus :: Lens' Event (Maybe Text)
-eStatus = lens _eStatus (\ s a -> s{_eStatus = a})
-
--- | Whether attendees other than the organizer can modify the event.
--- Optional. The default is False.
-eGuestsCanModify :: Lens' Event Bool
-eGuestsCanModify
-  = lens _eGuestsCanModify
-      (\ s a -> s{_eGuestsCanModify = a})
-
--- | ETag of the resource.
-eEtag :: Lens' Event (Maybe Text)
-eEtag = lens _eEtag (\ s a -> s{_eEtag = a})
-
--- | File attachments for the event. Currently only Google Drive attachments
--- are supported. In order to modify attachments the supportsAttachments
--- request parameter should be set to true. There can be at most 25
--- attachments per event,
-eAttachments :: Lens' Event [EventAttachment]
-eAttachments
-  = lens _eAttachments (\ s a -> s{_eAttachments = a})
-      . _Default
-      . _Coerce
-
--- | Whether this is a locked event copy where no changes can be made to the
--- main event fields \"summary\", \"description\", \"location\", \"start\",
--- \"end\" or \"recurrence\". The default is False. Read-Only.
-eLocked :: Lens' Event Bool
-eLocked = lens _eLocked (\ s a -> s{_eLocked = a})
-
--- | Geographic location of the event as free-form text. Optional.
-eLocation :: Lens' Event (Maybe Text)
-eLocation
-  = lens _eLocation (\ s a -> s{_eLocation = a})
-
--- | The attendees of the event. See the Events with attendees guide for more
--- information on scheduling events with other calendar users.
-eAttendees :: Lens' Event [EventAttendee]
-eAttendees
-  = lens _eAttendees (\ s a -> s{_eAttendees = a}) .
-      _Default
-      . _Coerce
-
--- | Information about the event\'s reminders for the authenticated user.
-eReminders :: Lens' Event (Maybe EventReminders)
-eReminders
-  = lens _eReminders (\ s a -> s{_eReminders = a})
-
--- | Type of the resource (\"calendar#event\").
-eKind :: Lens' Event Text
-eKind = lens _eKind (\ s a -> s{_eKind = a})
-
--- | Creation time of the event (as a RFC3339 timestamp). Read-only.
-eCreated :: Lens' Event (Maybe UTCTime)
-eCreated
-  = lens _eCreated (\ s a -> s{_eCreated = a}) .
-      mapping _DateTime
-
--- | Whether the event blocks time on the calendar. Optional. Possible values
--- are: - \"opaque\" - Default value. The event does block time on the
--- calendar. This is equivalent to setting Show me as to Busy in the
--- Calendar UI. - \"transparent\" - The event does not block time on the
--- calendar. This is equivalent to setting Show me as to Available in the
--- Calendar UI.
-eTransparency :: Lens' Event Text
-eTransparency
-  = lens _eTransparency
-      (\ s a -> s{_eTransparency = a})
-
--- | For an instance of a recurring event, this is the id of the recurring
--- event to which this instance belongs. Immutable.
-eRecurringEventId :: Lens' Event (Maybe Text)
-eRecurringEventId
-  = lens _eRecurringEventId
-      (\ s a -> s{_eRecurringEventId = a})
-
--- | The (inclusive) start time of the event. For a recurring event, this is
--- the start time of the first instance.
-eStart :: Lens' Event (Maybe EventDateTime)
-eStart = lens _eStart (\ s a -> s{_eStart = a})
-
--- | Whether this is a private event copy where changes are not shared with
--- other copies on other calendars. Optional. Immutable. The default is
--- False.
-ePrivateCopy :: Lens' Event Bool
-ePrivateCopy
-  = lens _ePrivateCopy (\ s a -> s{_ePrivateCopy = a})
-
--- | Whether the end time is actually unspecified. An end time is still
--- provided for compatibility reasons, even if this attribute is set to
--- True. The default is False.
-eEndTimeUnspecified :: Lens' Event Bool
-eEndTimeUnspecified
-  = lens _eEndTimeUnspecified
-      (\ s a -> s{_eEndTimeUnspecified = a})
-
--- | The conference-related information, such as details of a Hangouts Meet
--- conference. To create new conference details use the createRequest
--- field. To persist your changes, remember to set the
--- conferenceDataVersion request parameter to 1 for all event modification
--- requests.
-eConferenceData :: Lens' Event (Maybe ConferenceData)
-eConferenceData
-  = lens _eConferenceData
-      (\ s a -> s{_eConferenceData = a})
-
--- | Extended properties of the event.
-eExtendedProperties :: Lens' Event (Maybe EventExtendedProperties)
-eExtendedProperties
-  = lens _eExtendedProperties
-      (\ s a -> s{_eExtendedProperties = a})
-
--- | Visibility of the event. Optional. Possible values are: - \"default\" -
--- Uses the default visibility for events on the calendar. This is the
--- default value. - \"public\" - The event is public and event details are
--- visible to all readers of the calendar. - \"private\" - The event is
--- private and only event attendees may view event details. -
--- \"confidential\" - The event is private. This value is provided for
--- compatibility reasons.
-eVisibility :: Lens' Event Text
-eVisibility
-  = lens _eVisibility (\ s a -> s{_eVisibility = a})
-
--- | Whether attendees other than the organizer can invite others to the
--- event. Optional. The default is True.
-eGuestsCanInviteOthers :: Lens' Event Bool
-eGuestsCanInviteOthers
-  = lens _eGuestsCanInviteOthers
-      (\ s a -> s{_eGuestsCanInviteOthers = a})
-
--- | List of RRULE, EXRULE, RDATE and EXDATE lines for a recurring event, as
--- specified in RFC5545. Note that DTSTART and DTEND lines are not allowed
--- in this field; event start and end times are specified in the start and
--- end fields. This field is omitted for single events or instances of
--- recurring events.
-eRecurrence :: Lens' Event [Text]
-eRecurrence
-  = lens _eRecurrence (\ s a -> s{_eRecurrence = a}) .
-      _Default
-      . _Coerce
-
--- | A gadget that extends this event.
-eGadget :: Lens' Event (Maybe EventGadget)
-eGadget = lens _eGadget (\ s a -> s{_eGadget = a})
-
--- | Sequence number as per iCalendar.
-eSequence :: Lens' Event (Maybe Int32)
-eSequence
-  = lens _eSequence (\ s a -> s{_eSequence = a}) .
-      mapping _Coerce
-
--- | Event unique identifier as defined in RFC5545. It is used to uniquely
--- identify events accross calendaring systems and must be supplied when
--- importing events via the import method. Note that the icalUID and the id
--- are not identical and only one of them should be supplied at event
--- creation time. One difference in their semantics is that in recurring
--- events, all occurrences of one event have different ids while they all
--- share the same icalUIDs.
-eICalUId :: Lens' Event (Maybe Text)
-eICalUId = lens _eICalUId (\ s a -> s{_eICalUId = a})
-
--- | The (exclusive) end time of the event. For a recurring event, this is
--- the end time of the first instance.
-eEnd :: Lens' Event (Maybe EventDateTime)
-eEnd = lens _eEnd (\ s a -> s{_eEnd = a})
-
--- | Whether attendees may have been omitted from the event\'s
--- representation. When retrieving an event, this may be due to a
--- restriction specified by the maxAttendee query parameter. When updating
--- an event, this can be used to only update the participant\'s response.
--- Optional. The default is False.
-eAttendeesOmitted :: Lens' Event Bool
-eAttendeesOmitted
-  = lens _eAttendeesOmitted
-      (\ s a -> s{_eAttendeesOmitted = a})
-
--- | Source from which the event was created. For example, a web page, an
--- email message or any document identifiable by an URL with HTTP or HTTPS
--- scheme. Can only be seen or modified by the creator of the event.
-eSource :: Lens' Event (Maybe EventSource)
-eSource = lens _eSource (\ s a -> s{_eSource = a})
-
--- | Opaque identifier of the event. When creating new single or recurring
--- events, you can specify their IDs. Provided IDs must follow these rules:
--- - characters allowed in the ID are those used in base32hex encoding,
--- i.e. lowercase letters a-v and digits 0-9, see section 3.1.2 in RFC2938
--- - the length of the ID must be between 5 and 1024 characters - the ID
--- must be unique per calendar Due to the globally distributed nature of
--- the system, we cannot guarantee that ID collisions will be detected at
--- event creation time. To minimize the risk of collisions we recommend
--- using an established UUID algorithm such as one described in RFC4122. If
--- you do not specify an ID, it will be automatically generated by the
--- server. Note that the icalUID and the id are not identical and only one
--- of them should be supplied at event creation time. One difference in
--- their semantics is that in recurring events, all occurrences of one
--- event have different ids while they all share the same icalUIDs.
-eId :: Lens' Event (Maybe Text)
-eId = lens _eId (\ s a -> s{_eId = a})
-
--- | An absolute link to this event in the Google Calendar Web UI. Read-only.
-eHTMLLink :: Lens' Event (Maybe Text)
-eHTMLLink
-  = lens _eHTMLLink (\ s a -> s{_eHTMLLink = a})
-
--- | Last modification time of the event (as a RFC3339 timestamp). Read-only.
-eUpdated :: Lens' Event (Maybe UTCTime)
-eUpdated
-  = lens _eUpdated (\ s a -> s{_eUpdated = a}) .
-      mapping _DateTime
-
--- | The color of the event. This is an ID referring to an entry in the event
--- section of the colors definition (see the colors endpoint). Optional.
-eColorId :: Lens' Event (Maybe Text)
-eColorId = lens _eColorId (\ s a -> s{_eColorId = a})
-
--- | Whether anyone can invite themselves to the event (currently works for
--- Google+ events only). Optional. The default is False.
-eAnyoneCanAddSelf :: Lens' Event Bool
-eAnyoneCanAddSelf
-  = lens _eAnyoneCanAddSelf
-      (\ s a -> s{_eAnyoneCanAddSelf = a})
-
--- | Whether attendees other than the organizer can see who the event\'s
--- attendees are. Optional. The default is True.
-eGuestsCanSeeOtherGuests :: Lens' Event Bool
-eGuestsCanSeeOtherGuests
-  = lens _eGuestsCanSeeOtherGuests
-      (\ s a -> s{_eGuestsCanSeeOtherGuests = a})
-
--- | An absolute link to the Google+ hangout associated with this event.
--- Read-only.
-eHangoutLink :: Lens' Event (Maybe Text)
-eHangoutLink
-  = lens _eHangoutLink (\ s a -> s{_eHangoutLink = a})
-
--- | Description of the event. Optional.
-eDescription :: Lens' Event (Maybe Text)
-eDescription
-  = lens _eDescription (\ s a -> s{_eDescription = a})
-
--- | The organizer of the event. If the organizer is also an attendee, this
--- is indicated with a separate entry in attendees with the organizer field
--- set to True. To change the organizer, use the move operation. Read-only,
--- except when importing an event.
-eOrganizer :: Lens' Event (Maybe EventOrganizer)
-eOrganizer
-  = lens _eOrganizer (\ s a -> s{_eOrganizer = a})
-
-instance FromJSON Event where
-        parseJSON
-          = withObject "Event"
-              (\ o ->
-                 Event' <$>
-                   (o .:? "summary") <*> (o .:? "originalStartTime") <*>
-                     (o .:? "creator")
-                     <*> (o .:? "status")
-                     <*> (o .:? "guestsCanModify" .!= False)
-                     <*> (o .:? "etag")
-                     <*> (o .:? "attachments" .!= mempty)
-                     <*> (o .:? "locked" .!= False)
-                     <*> (o .:? "location")
-                     <*> (o .:? "attendees" .!= mempty)
-                     <*> (o .:? "reminders")
-                     <*> (o .:? "kind" .!= "calendar#event")
-                     <*> (o .:? "created")
-                     <*> (o .:? "transparency" .!= "opaque")
-                     <*> (o .:? "recurringEventId")
-                     <*> (o .:? "start")
-                     <*> (o .:? "privateCopy" .!= False)
-                     <*> (o .:? "endTimeUnspecified" .!= False)
-                     <*> (o .:? "conferenceData")
-                     <*> (o .:? "extendedProperties")
-                     <*> (o .:? "visibility" .!= "default")
-                     <*> (o .:? "guestsCanInviteOthers" .!= True)
-                     <*> (o .:? "recurrence" .!= mempty)
-                     <*> (o .:? "gadget")
-                     <*> (o .:? "sequence")
-                     <*> (o .:? "iCalUID")
-                     <*> (o .:? "end")
-                     <*> (o .:? "attendeesOmitted" .!= False)
-                     <*> (o .:? "source")
-                     <*> (o .:? "id")
-                     <*> (o .:? "htmlLink")
-                     <*> (o .:? "updated")
-                     <*> (o .:? "colorId")
-                     <*> (o .:? "anyoneCanAddSelf" .!= False)
-                     <*> (o .:? "guestsCanSeeOtherGuests" .!= True)
-                     <*> (o .:? "hangoutLink")
-                     <*> (o .:? "description")
-                     <*> (o .:? "organizer"))
-
-instance ToJSON Event where
-        toJSON Event'{..}
-          = object
-              (catMaybes
-                 [("summary" .=) <$> _eSummary,
-                  ("originalStartTime" .=) <$> _eOriginalStartTime,
-                  ("creator" .=) <$> _eCreator,
-                  ("status" .=) <$> _eStatus,
-                  Just ("guestsCanModify" .= _eGuestsCanModify),
-                  ("etag" .=) <$> _eEtag,
-                  ("attachments" .=) <$> _eAttachments,
-                  Just ("locked" .= _eLocked),
-                  ("location" .=) <$> _eLocation,
-                  ("attendees" .=) <$> _eAttendees,
-                  ("reminders" .=) <$> _eReminders,
-                  Just ("kind" .= _eKind),
-                  ("created" .=) <$> _eCreated,
-                  Just ("transparency" .= _eTransparency),
-                  ("recurringEventId" .=) <$> _eRecurringEventId,
-                  ("start" .=) <$> _eStart,
-                  Just ("privateCopy" .= _ePrivateCopy),
-                  Just ("endTimeUnspecified" .= _eEndTimeUnspecified),
-                  ("conferenceData" .=) <$> _eConferenceData,
-                  ("extendedProperties" .=) <$> _eExtendedProperties,
-                  Just ("visibility" .= _eVisibility),
-                  Just
-                    ("guestsCanInviteOthers" .= _eGuestsCanInviteOthers),
-                  ("recurrence" .=) <$> _eRecurrence,
-                  ("gadget" .=) <$> _eGadget,
-                  ("sequence" .=) <$> _eSequence,
-                  ("iCalUID" .=) <$> _eICalUId, ("end" .=) <$> _eEnd,
-                  Just ("attendeesOmitted" .= _eAttendeesOmitted),
-                  ("source" .=) <$> _eSource, ("id" .=) <$> _eId,
-                  ("htmlLink" .=) <$> _eHTMLLink,
-                  ("updated" .=) <$> _eUpdated,
-                  ("colorId" .=) <$> _eColorId,
-                  Just ("anyoneCanAddSelf" .= _eAnyoneCanAddSelf),
-                  Just
-                    ("guestsCanSeeOtherGuests" .=
-                       _eGuestsCanSeeOtherGuests),
-                  ("hangoutLink" .=) <$> _eHangoutLink,
-                  ("description" .=) <$> _eDescription,
-                  ("organizer" .=) <$> _eOrganizer])
-
--- | The notifications that the authenticated user is receiving for this
--- calendar.
---
--- /See:/ 'calendarListEntryNotificationSettings' smart constructor.
-newtype CalendarListEntryNotificationSettings =
-  CalendarListEntryNotificationSettings'
-    { _clensNotifications :: Maybe [CalendarNotification]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListEntryNotificationSettings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clensNotifications'
-calendarListEntryNotificationSettings
-    :: CalendarListEntryNotificationSettings
-calendarListEntryNotificationSettings =
-  CalendarListEntryNotificationSettings' {_clensNotifications = Nothing}
-
-
--- | The list of notifications set for this calendar.
-clensNotifications :: Lens' CalendarListEntryNotificationSettings [CalendarNotification]
-clensNotifications
-  = lens _clensNotifications
-      (\ s a -> s{_clensNotifications = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           CalendarListEntryNotificationSettings
-         where
-        parseJSON
-          = withObject "CalendarListEntryNotificationSettings"
-              (\ o ->
-                 CalendarListEntryNotificationSettings' <$>
-                   (o .:? "notifications" .!= mempty))
-
-instance ToJSON CalendarListEntryNotificationSettings
-         where
-        toJSON CalendarListEntryNotificationSettings'{..}
-          = object
-              (catMaybes
-                 [("notifications" .=) <$> _clensNotifications])
-
---
--- /See:/ 'conferenceProperties' smart constructor.
-newtype ConferenceProperties =
-  ConferenceProperties'
-    { _cpAllowedConferenceSolutionTypes :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpAllowedConferenceSolutionTypes'
-conferenceProperties
-    :: ConferenceProperties
-conferenceProperties =
-  ConferenceProperties' {_cpAllowedConferenceSolutionTypes = Nothing}
-
-
--- | The types of conference solutions that are supported for this calendar.
--- The possible values are: - \"eventHangout\" - \"eventNamedHangout\" -
--- \"hangoutsMeet\" Optional.
-cpAllowedConferenceSolutionTypes :: Lens' ConferenceProperties [Text]
-cpAllowedConferenceSolutionTypes
-  = lens _cpAllowedConferenceSolutionTypes
-      (\ s a -> s{_cpAllowedConferenceSolutionTypes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ConferenceProperties where
-        parseJSON
-          = withObject "ConferenceProperties"
-              (\ o ->
-                 ConferenceProperties' <$>
-                   (o .:? "allowedConferenceSolutionTypes" .!= mempty))
-
-instance ToJSON ConferenceProperties where
-        toJSON ConferenceProperties'{..}
-          = object
-              (catMaybes
-                 [("allowedConferenceSolutionTypes" .=) <$>
-                    _cpAllowedConferenceSolutionTypes])
-
---
--- /See:/ 'conferenceSolution' smart constructor.
-data ConferenceSolution =
-  ConferenceSolution'
-    { _csIconURI :: !(Maybe Text)
-    , _csKey     :: !(Maybe ConferenceSolutionKey)
-    , _csName    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceSolution' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'csIconURI'
---
--- * 'csKey'
---
--- * 'csName'
-conferenceSolution
-    :: ConferenceSolution
-conferenceSolution =
-  ConferenceSolution'
-    {_csIconURI = Nothing, _csKey = Nothing, _csName = Nothing}
-
-
--- | The user-visible icon for this solution.
-csIconURI :: Lens' ConferenceSolution (Maybe Text)
-csIconURI
-  = lens _csIconURI (\ s a -> s{_csIconURI = a})
-
--- | The key which can uniquely identify the conference solution for this
--- event.
-csKey :: Lens' ConferenceSolution (Maybe ConferenceSolutionKey)
-csKey = lens _csKey (\ s a -> s{_csKey = a})
-
--- | The user-visible name of this solution. Not localized.
-csName :: Lens' ConferenceSolution (Maybe Text)
-csName = lens _csName (\ s a -> s{_csName = a})
-
-instance FromJSON ConferenceSolution where
-        parseJSON
-          = withObject "ConferenceSolution"
-              (\ o ->
-                 ConferenceSolution' <$>
-                   (o .:? "iconUri") <*> (o .:? "key") <*>
-                     (o .:? "name"))
-
-instance ToJSON ConferenceSolution where
-        toJSON ConferenceSolution'{..}
-          = object
-              (catMaybes
-                 [("iconUri" .=) <$> _csIconURI,
-                  ("key" .=) <$> _csKey, ("name" .=) <$> _csName])
-
--- | The scope of the rule.
---
--- /See:/ 'aclRuleScope' smart constructor.
-data ACLRuleScope =
-  ACLRuleScope'
-    { _arsValue :: !(Maybe Text)
-    , _arsType  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLRuleScope' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'arsValue'
---
--- * 'arsType'
-aclRuleScope
-    :: ACLRuleScope
-aclRuleScope = ACLRuleScope' {_arsValue = Nothing, _arsType = Nothing}
-
-
--- | The email address of a user or group, or the name of a domain, depending
--- on the scope type. Omitted for type \"default\".
-arsValue :: Lens' ACLRuleScope (Maybe Text)
-arsValue = lens _arsValue (\ s a -> s{_arsValue = a})
-
--- | The type of the scope. Possible values are: - \"default\" - The public
--- scope. This is the default value. - \"user\" - Limits the scope to a
--- single user. - \"group\" - Limits the scope to a group. - \"domain\" -
--- Limits the scope to a domain. Note: The permissions granted to the
--- \"default\", or public, scope apply to any user, authenticated or not.
-arsType :: Lens' ACLRuleScope (Maybe Text)
-arsType = lens _arsType (\ s a -> s{_arsType = a})
-
-instance FromJSON ACLRuleScope where
-        parseJSON
-          = withObject "ACLRuleScope"
-              (\ o ->
-                 ACLRuleScope' <$> (o .:? "value") <*> (o .:? "type"))
-
-instance ToJSON ACLRuleScope where
-        toJSON ACLRuleScope'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _arsValue,
-                  ("type" .=) <$> _arsType])
-
--- | A global palette of event colors, mapping from the color ID to its
--- definition. An event resource may refer to one of these color IDs in its
--- color field. Read-only.
---
--- /See:/ 'colorsEvent' smart constructor.
-newtype ColorsEvent =
-  ColorsEvent'
-    { _ceAddtional :: HashMap Text ColorDefinition
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ColorsEvent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ceAddtional'
-colorsEvent
-    :: HashMap Text ColorDefinition -- ^ 'ceAddtional'
-    -> ColorsEvent
-colorsEvent pCeAddtional_ =
-  ColorsEvent' {_ceAddtional = _Coerce # pCeAddtional_}
-
-
--- | An event color definition.
-ceAddtional :: Lens' ColorsEvent (HashMap Text ColorDefinition)
-ceAddtional
-  = lens _ceAddtional (\ s a -> s{_ceAddtional = a}) .
-      _Coerce
-
-instance FromJSON ColorsEvent where
-        parseJSON
-          = withObject "ColorsEvent"
-              (\ o -> ColorsEvent' <$> (parseJSONObject o))
-
-instance ToJSON ColorsEvent where
-        toJSON = toJSON . _ceAddtional
-
---
--- /See:/ 'settings' smart constructor.
-data Settings =
-  Settings'
-    { _sEtag          :: !(Maybe Text)
-    , _sNextPageToken :: !(Maybe Text)
-    , _sKind          :: !Text
-    , _sItems         :: !(Maybe [Setting])
-    , _sNextSyncToken :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Settings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sEtag'
---
--- * 'sNextPageToken'
---
--- * 'sKind'
---
--- * 'sItems'
---
--- * 'sNextSyncToken'
-settings
-    :: Settings
-settings =
-  Settings'
-    { _sEtag = Nothing
-    , _sNextPageToken = Nothing
-    , _sKind = "calendar#settings"
-    , _sItems = Nothing
-    , _sNextSyncToken = Nothing
-    }
-
-
--- | Etag of the collection.
-sEtag :: Lens' Settings (Maybe Text)
-sEtag = lens _sEtag (\ s a -> s{_sEtag = a})
-
--- | Token used to access the next page of this result. Omitted if no further
--- results are available, in which case nextSyncToken is provided.
-sNextPageToken :: Lens' Settings (Maybe Text)
-sNextPageToken
-  = lens _sNextPageToken
-      (\ s a -> s{_sNextPageToken = a})
-
--- | Type of the collection (\"calendar#settings\").
-sKind :: Lens' Settings Text
-sKind = lens _sKind (\ s a -> s{_sKind = a})
-
--- | List of user settings.
-sItems :: Lens' Settings [Setting]
-sItems
-  = lens _sItems (\ s a -> s{_sItems = a}) . _Default .
-      _Coerce
-
--- | Token used at a later point in time to retrieve only the entries that
--- have changed since this result was returned. Omitted if further results
--- are available, in which case nextPageToken is provided.
-sNextSyncToken :: Lens' Settings (Maybe Text)
-sNextSyncToken
-  = lens _sNextSyncToken
-      (\ s a -> s{_sNextSyncToken = a})
-
-instance FromJSON Settings where
-        parseJSON
-          = withObject "Settings"
-              (\ o ->
-                 Settings' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "calendar#settings")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "nextSyncToken"))
-
-instance ToJSON Settings where
-        toJSON Settings'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _sEtag,
-                  ("nextPageToken" .=) <$> _sNextPageToken,
-                  Just ("kind" .= _sKind), ("items" .=) <$> _sItems,
-                  ("nextSyncToken" .=) <$> _sNextSyncToken])
-
---
--- /See:/ 'freeBusyRequestItem' smart constructor.
-newtype FreeBusyRequestItem =
-  FreeBusyRequestItem'
-    { _fbriId :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyRequestItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbriId'
-freeBusyRequestItem
-    :: FreeBusyRequestItem
-freeBusyRequestItem = FreeBusyRequestItem' {_fbriId = Nothing}
-
-
--- | The identifier of a calendar or a group.
-fbriId :: Lens' FreeBusyRequestItem (Maybe Text)
-fbriId = lens _fbriId (\ s a -> s{_fbriId = a})
-
-instance FromJSON FreeBusyRequestItem where
-        parseJSON
-          = withObject "FreeBusyRequestItem"
-              (\ o -> FreeBusyRequestItem' <$> (o .:? "id"))
-
-instance ToJSON FreeBusyRequestItem where
-        toJSON FreeBusyRequestItem'{..}
-          = object (catMaybes [("id" .=) <$> _fbriId])
-
---
--- /See:/ 'eventAttachment' smart constructor.
-data EventAttachment =
-  EventAttachment'
-    { _eaFileURL  :: !(Maybe Text)
-    , _eaIconLink :: !(Maybe Text)
-    , _eaMimeType :: !(Maybe Text)
-    , _eaTitle    :: !(Maybe Text)
-    , _eaFileId   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventAttachment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eaFileURL'
---
--- * 'eaIconLink'
---
--- * 'eaMimeType'
---
--- * 'eaTitle'
---
--- * 'eaFileId'
-eventAttachment
-    :: EventAttachment
-eventAttachment =
-  EventAttachment'
-    { _eaFileURL = Nothing
-    , _eaIconLink = Nothing
-    , _eaMimeType = Nothing
-    , _eaTitle = Nothing
-    , _eaFileId = Nothing
-    }
-
-
--- | URL link to the attachment. For adding Google Drive file attachments use
--- the same format as in alternateLink property of the Files resource in
--- the Drive API. Required when adding an attachment.
-eaFileURL :: Lens' EventAttachment (Maybe Text)
-eaFileURL
-  = lens _eaFileURL (\ s a -> s{_eaFileURL = a})
-
--- | URL link to the attachment\'s icon. Read-only.
-eaIconLink :: Lens' EventAttachment (Maybe Text)
-eaIconLink
-  = lens _eaIconLink (\ s a -> s{_eaIconLink = a})
-
--- | Internet media type (MIME type) of the attachment.
-eaMimeType :: Lens' EventAttachment (Maybe Text)
-eaMimeType
-  = lens _eaMimeType (\ s a -> s{_eaMimeType = a})
-
--- | Attachment title.
-eaTitle :: Lens' EventAttachment (Maybe Text)
-eaTitle = lens _eaTitle (\ s a -> s{_eaTitle = a})
-
--- | ID of the attached file. Read-only. For Google Drive files, this is the
--- ID of the corresponding Files resource entry in the Drive API.
-eaFileId :: Lens' EventAttachment (Maybe Text)
-eaFileId = lens _eaFileId (\ s a -> s{_eaFileId = a})
-
-instance FromJSON EventAttachment where
-        parseJSON
-          = withObject "EventAttachment"
-              (\ o ->
-                 EventAttachment' <$>
-                   (o .:? "fileUrl") <*> (o .:? "iconLink") <*>
-                     (o .:? "mimeType")
-                     <*> (o .:? "title")
-                     <*> (o .:? "fileId"))
-
-instance ToJSON EventAttachment where
-        toJSON EventAttachment'{..}
-          = object
-              (catMaybes
-                 [("fileUrl" .=) <$> _eaFileURL,
-                  ("iconLink" .=) <$> _eaIconLink,
-                  ("mimeType" .=) <$> _eaMimeType,
-                  ("title" .=) <$> _eaTitle,
-                  ("fileId" .=) <$> _eaFileId])
-
---
--- /See:/ 'entryPoint' smart constructor.
-data EntryPoint =
-  EntryPoint'
-    { _epPasscode           :: !(Maybe Text)
-    , _epRegionCode         :: !(Maybe Text)
-    , _epURI                :: !(Maybe Text)
-    , _epMeetingCode        :: !(Maybe Text)
-    , _epPassword           :: !(Maybe Text)
-    , _epPin                :: !(Maybe Text)
-    , _epEntryPointFeatures :: !(Maybe [Text])
-    , _epEntryPointType     :: !(Maybe Text)
-    , _epLabel              :: !(Maybe Text)
-    , _epAccessCode         :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EntryPoint' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'epPasscode'
---
--- * 'epRegionCode'
---
--- * 'epURI'
---
--- * 'epMeetingCode'
---
--- * 'epPassword'
---
--- * 'epPin'
---
--- * 'epEntryPointFeatures'
---
--- * 'epEntryPointType'
---
--- * 'epLabel'
---
--- * 'epAccessCode'
-entryPoint
-    :: EntryPoint
-entryPoint =
-  EntryPoint'
-    { _epPasscode = Nothing
-    , _epRegionCode = Nothing
-    , _epURI = Nothing
-    , _epMeetingCode = Nothing
-    , _epPassword = Nothing
-    , _epPin = Nothing
-    , _epEntryPointFeatures = Nothing
-    , _epEntryPointType = Nothing
-    , _epLabel = Nothing
-    , _epAccessCode = Nothing
-    }
-
-
--- | The passcode to access the conference. The maximum length is 128
--- characters. When creating new conference data, populate only the subset
--- of {meetingCode, accessCode, passcode, password, pin} fields that match
--- the terminology that the conference provider uses. Only the populated
--- fields should be displayed.
-epPasscode :: Lens' EntryPoint (Maybe Text)
-epPasscode
-  = lens _epPasscode (\ s a -> s{_epPasscode = a})
-
--- | The CLDR\/ISO 3166 region code for the country associated with this
--- phone access. Example: \"SE\" for Sweden. Calendar backend will populate
--- this field only for EntryPointType.PHONE.
-epRegionCode :: Lens' EntryPoint (Maybe Text)
-epRegionCode
-  = lens _epRegionCode (\ s a -> s{_epRegionCode = a})
-
--- | The URI of the entry point. The maximum length is 1300 characters.
--- Format: - for video, http: or https: schema is required. - for phone,
--- tel: schema is required. The URI should include the entire dial sequence
--- (e.g., tel:+12345678900,,,123456789;1234). - for sip, sip: schema is
--- required, e.g., sip:12345678\'myprovider.com. - for more, http: or
--- https: schema is required.
-epURI :: Lens' EntryPoint (Maybe Text)
-epURI = lens _epURI (\ s a -> s{_epURI = a})
-
--- | The meeting code to access the conference. The maximum length is 128
--- characters. When creating new conference data, populate only the subset
--- of {meetingCode, accessCode, passcode, password, pin} fields that match
--- the terminology that the conference provider uses. Only the populated
--- fields should be displayed. Optional.
-epMeetingCode :: Lens' EntryPoint (Maybe Text)
-epMeetingCode
-  = lens _epMeetingCode
-      (\ s a -> s{_epMeetingCode = a})
-
--- | The password to access the conference. The maximum length is 128
--- characters. When creating new conference data, populate only the subset
--- of {meetingCode, accessCode, passcode, password, pin} fields that match
--- the terminology that the conference provider uses. Only the populated
--- fields should be displayed. Optional.
-epPassword :: Lens' EntryPoint (Maybe Text)
-epPassword
-  = lens _epPassword (\ s a -> s{_epPassword = a})
-
--- | The PIN to access the conference. The maximum length is 128 characters.
--- When creating new conference data, populate only the subset of
--- {meetingCode, accessCode, passcode, password, pin} fields that match the
--- terminology that the conference provider uses. Only the populated fields
--- should be displayed. Optional.
-epPin :: Lens' EntryPoint (Maybe Text)
-epPin = lens _epPin (\ s a -> s{_epPin = a})
-
--- | Features of the entry point, such as being toll or toll-free. One entry
--- point can have multiple features. However, toll and toll-free cannot be
--- both set on the same entry point.
-epEntryPointFeatures :: Lens' EntryPoint [Text]
-epEntryPointFeatures
-  = lens _epEntryPointFeatures
-      (\ s a -> s{_epEntryPointFeatures = a})
-      . _Default
-      . _Coerce
-
--- | The type of the conference entry point. Possible values are: - \"video\"
--- - joining a conference over HTTP. A conference can have zero or one
--- video entry point. - \"phone\" - joining a conference by dialing a phone
--- number. A conference can have zero or more phone entry points. - \"sip\"
--- - joining a conference over SIP. A conference can have zero or one sip
--- entry point. - \"more\" - further conference joining instructions, for
--- example additional phone numbers. A conference can have zero or one more
--- entry point. A conference with only a more entry point is not a valid
--- conference.
-epEntryPointType :: Lens' EntryPoint (Maybe Text)
-epEntryPointType
-  = lens _epEntryPointType
-      (\ s a -> s{_epEntryPointType = a})
-
--- | The label for the URI. Visible to end users. Not localized. The maximum
--- length is 512 characters. Examples: - for video:
--- meet.google.com\/aaa-bbbb-ccc - for phone: +1 123 268 2601 - for sip:
--- 12345678\'altostrat.com - for more: should not be filled Optional.
-epLabel :: Lens' EntryPoint (Maybe Text)
-epLabel = lens _epLabel (\ s a -> s{_epLabel = a})
-
--- | The access code to access the conference. The maximum length is 128
--- characters. When creating new conference data, populate only the subset
--- of {meetingCode, accessCode, passcode, password, pin} fields that match
--- the terminology that the conference provider uses. Only the populated
--- fields should be displayed. Optional.
-epAccessCode :: Lens' EntryPoint (Maybe Text)
-epAccessCode
-  = lens _epAccessCode (\ s a -> s{_epAccessCode = a})
-
-instance FromJSON EntryPoint where
-        parseJSON
-          = withObject "EntryPoint"
-              (\ o ->
-                 EntryPoint' <$>
-                   (o .:? "passcode") <*> (o .:? "regionCode") <*>
-                     (o .:? "uri")
-                     <*> (o .:? "meetingCode")
-                     <*> (o .:? "password")
-                     <*> (o .:? "pin")
-                     <*> (o .:? "entryPointFeatures" .!= mempty)
-                     <*> (o .:? "entryPointType")
-                     <*> (o .:? "label")
-                     <*> (o .:? "accessCode"))
-
-instance ToJSON EntryPoint where
-        toJSON EntryPoint'{..}
-          = object
-              (catMaybes
-                 [("passcode" .=) <$> _epPasscode,
-                  ("regionCode" .=) <$> _epRegionCode,
-                  ("uri" .=) <$> _epURI,
-                  ("meetingCode" .=) <$> _epMeetingCode,
-                  ("password" .=) <$> _epPassword,
-                  ("pin" .=) <$> _epPin,
-                  ("entryPointFeatures" .=) <$> _epEntryPointFeatures,
-                  ("entryPointType" .=) <$> _epEntryPointType,
-                  ("label" .=) <$> _epLabel,
-                  ("accessCode" .=) <$> _epAccessCode])
-
---
--- /See:/ 'timePeriod' smart constructor.
-data TimePeriod =
-  TimePeriod'
-    { _tpStart :: !(Maybe DateTime')
-    , _tpEnd   :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TimePeriod' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpStart'
---
--- * 'tpEnd'
-timePeriod
-    :: TimePeriod
-timePeriod = TimePeriod' {_tpStart = Nothing, _tpEnd = Nothing}
-
-
--- | The (inclusive) start of the time period.
-tpStart :: Lens' TimePeriod (Maybe UTCTime)
-tpStart
-  = lens _tpStart (\ s a -> s{_tpStart = a}) .
-      mapping _DateTime
-
--- | The (exclusive) end of the time period.
-tpEnd :: Lens' TimePeriod (Maybe UTCTime)
-tpEnd
-  = lens _tpEnd (\ s a -> s{_tpEnd = a}) .
-      mapping _DateTime
-
-instance FromJSON TimePeriod where
-        parseJSON
-          = withObject "TimePeriod"
-              (\ o ->
-                 TimePeriod' <$> (o .:? "start") <*> (o .:? "end"))
-
-instance ToJSON TimePeriod where
-        toJSON TimePeriod'{..}
-          = object
-              (catMaybes
-                 [("start" .=) <$> _tpStart, ("end" .=) <$> _tpEnd])
-
---
--- /See:/ 'conferenceSolutionKey' smart constructor.
-newtype ConferenceSolutionKey =
-  ConferenceSolutionKey'
-    { _cskType :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceSolutionKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cskType'
-conferenceSolutionKey
-    :: ConferenceSolutionKey
-conferenceSolutionKey = ConferenceSolutionKey' {_cskType = Nothing}
-
-
--- | The conference solution type. If a client encounters an unfamiliar or
--- empty type, it should still be able to display the entry points.
--- However, it should disallow modifications. The possible values are: -
--- \"eventHangout\" for Hangouts for consumers
--- (http:\/\/hangouts.google.com) - \"eventNamedHangout\" for classic
--- Hangouts for G Suite users (http:\/\/hangouts.google.com) -
--- \"hangoutsMeet\" for Hangouts Meet (http:\/\/meet.google.com)
-cskType :: Lens' ConferenceSolutionKey (Maybe Text)
-cskType = lens _cskType (\ s a -> s{_cskType = a})
-
-instance FromJSON ConferenceSolutionKey where
-        parseJSON
-          = withObject "ConferenceSolutionKey"
-              (\ o -> ConferenceSolutionKey' <$> (o .:? "type"))
-
-instance ToJSON ConferenceSolutionKey where
-        toJSON ConferenceSolutionKey'{..}
-          = object (catMaybes [("type" .=) <$> _cskType])
-
--- | The creator of the event. Read-only.
---
--- /See:/ 'eventCreator' smart constructor.
-data EventCreator =
-  EventCreator'
-    { _ecEmail       :: !(Maybe Text)
-    , _ecSelf        :: !Bool
-    , _ecDisplayName :: !(Maybe Text)
-    , _ecId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventCreator' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ecEmail'
---
--- * 'ecSelf'
---
--- * 'ecDisplayName'
---
--- * 'ecId'
-eventCreator
-    :: EventCreator
-eventCreator =
-  EventCreator'
-    { _ecEmail = Nothing
-    , _ecSelf = False
-    , _ecDisplayName = Nothing
-    , _ecId = Nothing
-    }
-
-
--- | The creator\'s email address, if available.
-ecEmail :: Lens' EventCreator (Maybe Text)
-ecEmail = lens _ecEmail (\ s a -> s{_ecEmail = a})
-
--- | Whether the creator corresponds to the calendar on which this copy of
--- the event appears. Read-only. The default is False.
-ecSelf :: Lens' EventCreator Bool
-ecSelf = lens _ecSelf (\ s a -> s{_ecSelf = a})
-
--- | The creator\'s name, if available.
-ecDisplayName :: Lens' EventCreator (Maybe Text)
-ecDisplayName
-  = lens _ecDisplayName
-      (\ s a -> s{_ecDisplayName = a})
-
--- | The creator\'s Profile ID, if available. It corresponds to the id field
--- in the People collection of the Google+ API
-ecId :: Lens' EventCreator (Maybe Text)
-ecId = lens _ecId (\ s a -> s{_ecId = a})
-
-instance FromJSON EventCreator where
-        parseJSON
-          = withObject "EventCreator"
-              (\ o ->
-                 EventCreator' <$>
-                   (o .:? "email") <*> (o .:? "self" .!= False) <*>
-                     (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON EventCreator where
-        toJSON EventCreator'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _ecEmail, Just ("self" .= _ecSelf),
-                  ("displayName" .=) <$> _ecDisplayName,
-                  ("id" .=) <$> _ecId])
-
---
--- /See:/ 'error'' smart constructor.
-data Error' =
-  Error''
-    { _eDomain :: !(Maybe Text)
-    , _eReason :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Error' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eDomain'
---
--- * 'eReason'
-error'
-    :: Error'
-error' = Error'' {_eDomain = Nothing, _eReason = Nothing}
-
-
--- | Domain, or broad category, of the error.
-eDomain :: Lens' Error' (Maybe Text)
-eDomain = lens _eDomain (\ s a -> s{_eDomain = a})
-
--- | Specific reason for the error. Some of the possible values are: -
--- \"groupTooBig\" - The group of users requested is too large for a single
--- query. - \"tooManyCalendarsRequested\" - The number of calendars
--- requested is too large for a single query. - \"notFound\" - The
--- requested resource was not found. - \"internalError\" - The API service
--- has encountered an internal error. Additional error types may be added
--- in the future, so clients should gracefully handle additional error
--- statuses not included in this list.
-eReason :: Lens' Error' (Maybe Text)
-eReason = lens _eReason (\ s a -> s{_eReason = a})
-
-instance FromJSON Error' where
-        parseJSON
-          = withObject "Error"
-              (\ o ->
-                 Error'' <$> (o .:? "domain") <*> (o .:? "reason"))
-
-instance ToJSON Error' where
-        toJSON Error''{..}
-          = object
-              (catMaybes
-                 [("domain" .=) <$> _eDomain,
-                  ("reason" .=) <$> _eReason])
-
---
--- /See:/ 'colorDefinition' smart constructor.
-data ColorDefinition =
-  ColorDefinition'
-    { _cdForegRound :: !(Maybe Text)
-    , _cdBackgRound :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ColorDefinition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdForegRound'
---
--- * 'cdBackgRound'
-colorDefinition
-    :: ColorDefinition
-colorDefinition =
-  ColorDefinition' {_cdForegRound = Nothing, _cdBackgRound = Nothing}
-
-
--- | The foreground color that can be used to write on top of a background
--- with \'background\' color.
-cdForegRound :: Lens' ColorDefinition (Maybe Text)
-cdForegRound
-  = lens _cdForegRound (\ s a -> s{_cdForegRound = a})
-
--- | The background color associated with this color definition.
-cdBackgRound :: Lens' ColorDefinition (Maybe Text)
-cdBackgRound
-  = lens _cdBackgRound (\ s a -> s{_cdBackgRound = a})
-
-instance FromJSON ColorDefinition where
-        parseJSON
-          = withObject "ColorDefinition"
-              (\ o ->
-                 ColorDefinition' <$>
-                   (o .:? "foreground") <*> (o .:? "background"))
-
-instance ToJSON ColorDefinition where
-        toJSON ColorDefinition'{..}
-          = object
-              (catMaybes
-                 [("foreground" .=) <$> _cdForegRound,
-                  ("background" .=) <$> _cdBackgRound])
-
---
--- /See:/ 'channel' smart constructor.
-data Channel =
-  Channel'
-    { _cResourceURI :: !(Maybe Text)
-    , _cResourceId  :: !(Maybe Text)
-    , _cKind        :: !Text
-    , _cExpiration  :: !(Maybe (Textual Int64))
-    , _cToken       :: !(Maybe Text)
-    , _cAddress     :: !(Maybe Text)
-    , _cPayload     :: !(Maybe Bool)
-    , _cParams      :: !(Maybe ChannelParams)
-    , _cId          :: !(Maybe Text)
-    , _cType        :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Channel' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cResourceURI'
---
--- * 'cResourceId'
---
--- * 'cKind'
---
--- * 'cExpiration'
---
--- * 'cToken'
---
--- * 'cAddress'
---
--- * 'cPayload'
---
--- * 'cParams'
---
--- * 'cId'
---
--- * 'cType'
-channel
-    :: Channel
-channel =
-  Channel'
-    { _cResourceURI = Nothing
-    , _cResourceId = Nothing
-    , _cKind = "api#channel"
-    , _cExpiration = Nothing
-    , _cToken = Nothing
-    , _cAddress = Nothing
-    , _cPayload = Nothing
-    , _cParams = Nothing
-    , _cId = Nothing
-    , _cType = Nothing
-    }
-
-
--- | A version-specific identifier for the watched resource.
-cResourceURI :: Lens' Channel (Maybe Text)
-cResourceURI
-  = lens _cResourceURI (\ s a -> s{_cResourceURI = a})
-
--- | An opaque ID that identifies the resource being watched on this channel.
--- Stable across different API versions.
-cResourceId :: Lens' Channel (Maybe Text)
-cResourceId
-  = lens _cResourceId (\ s a -> s{_cResourceId = a})
-
--- | Identifies this as a notification channel used to watch for changes to a
--- resource. Value: the fixed string \"api#channel\".
-cKind :: Lens' Channel Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | Date and time of notification channel expiration, expressed as a Unix
--- timestamp, in milliseconds. Optional.
-cExpiration :: Lens' Channel (Maybe Int64)
-cExpiration
-  = lens _cExpiration (\ s a -> s{_cExpiration = a}) .
-      mapping _Coerce
-
--- | An arbitrary string delivered to the target address with each
--- notification delivered over this channel. Optional.
-cToken :: Lens' Channel (Maybe Text)
-cToken = lens _cToken (\ s a -> s{_cToken = a})
-
--- | The address where notifications are delivered for this channel.
-cAddress :: Lens' Channel (Maybe Text)
-cAddress = lens _cAddress (\ s a -> s{_cAddress = a})
-
--- | A Boolean value to indicate whether payload is wanted. Optional.
-cPayload :: Lens' Channel (Maybe Bool)
-cPayload = lens _cPayload (\ s a -> s{_cPayload = a})
-
--- | Additional parameters controlling delivery channel behavior. Optional.
-cParams :: Lens' Channel (Maybe ChannelParams)
-cParams = lens _cParams (\ s a -> s{_cParams = a})
-
--- | A UUID or similar unique string that identifies this channel.
-cId :: Lens' Channel (Maybe Text)
-cId = lens _cId (\ s a -> s{_cId = a})
-
--- | The type of delivery mechanism used for this channel.
-cType :: Lens' Channel (Maybe Text)
-cType = lens _cType (\ s a -> s{_cType = a})
-
-instance FromJSON Channel where
-        parseJSON
-          = withObject "Channel"
-              (\ o ->
-                 Channel' <$>
-                   (o .:? "resourceUri") <*> (o .:? "resourceId") <*>
-                     (o .:? "kind" .!= "api#channel")
-                     <*> (o .:? "expiration")
-                     <*> (o .:? "token")
-                     <*> (o .:? "address")
-                     <*> (o .:? "payload")
-                     <*> (o .:? "params")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type"))
-
-instance ToJSON Channel where
-        toJSON Channel'{..}
-          = object
-              (catMaybes
-                 [("resourceUri" .=) <$> _cResourceURI,
-                  ("resourceId" .=) <$> _cResourceId,
-                  Just ("kind" .= _cKind),
-                  ("expiration" .=) <$> _cExpiration,
-                  ("token" .=) <$> _cToken,
-                  ("address" .=) <$> _cAddress,
-                  ("payload" .=) <$> _cPayload,
-                  ("params" .=) <$> _cParams, ("id" .=) <$> _cId,
-                  ("type" .=) <$> _cType])
-
---
--- /See:/ 'conferenceRequestStatus' smart constructor.
-newtype ConferenceRequestStatus =
-  ConferenceRequestStatus'
-    { _crsStatusCode :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceRequestStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crsStatusCode'
-conferenceRequestStatus
-    :: ConferenceRequestStatus
-conferenceRequestStatus = ConferenceRequestStatus' {_crsStatusCode = Nothing}
-
-
--- | The current status of the conference create request. Read-only. The
--- possible values are: - \"pending\": the conference create request is
--- still being processed. - \"success\": the conference create request
--- succeeded, the entry points are populated. - \"failure\": the conference
--- create request failed, there are no entry points.
-crsStatusCode :: Lens' ConferenceRequestStatus (Maybe Text)
-crsStatusCode
-  = lens _crsStatusCode
-      (\ s a -> s{_crsStatusCode = a})
-
-instance FromJSON ConferenceRequestStatus where
-        parseJSON
-          = withObject "ConferenceRequestStatus"
-              (\ o ->
-                 ConferenceRequestStatus' <$> (o .:? "statusCode"))
-
-instance ToJSON ConferenceRequestStatus where
-        toJSON ConferenceRequestStatus'{..}
-          = object
-              (catMaybes [("statusCode" .=) <$> _crsStatusCode])
-
---
--- /See:/ 'freeBusyCalendar' smart constructor.
-data FreeBusyCalendar =
-  FreeBusyCalendar'
-    { _fbcBusy   :: !(Maybe [TimePeriod])
-    , _fbcErrors :: !(Maybe [Error'])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyCalendar' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbcBusy'
---
--- * 'fbcErrors'
-freeBusyCalendar
-    :: FreeBusyCalendar
-freeBusyCalendar = FreeBusyCalendar' {_fbcBusy = Nothing, _fbcErrors = Nothing}
-
-
--- | List of time ranges during which this calendar should be regarded as
--- busy.
-fbcBusy :: Lens' FreeBusyCalendar [TimePeriod]
-fbcBusy
-  = lens _fbcBusy (\ s a -> s{_fbcBusy = a}) . _Default
-      . _Coerce
-
--- | Optional error(s) (if computation for the calendar failed).
-fbcErrors :: Lens' FreeBusyCalendar [Error']
-fbcErrors
-  = lens _fbcErrors (\ s a -> s{_fbcErrors = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON FreeBusyCalendar where
-        parseJSON
-          = withObject "FreeBusyCalendar"
-              (\ o ->
-                 FreeBusyCalendar' <$>
-                   (o .:? "busy" .!= mempty) <*>
-                     (o .:? "errors" .!= mempty))
-
-instance ToJSON FreeBusyCalendar where
-        toJSON FreeBusyCalendar'{..}
-          = object
-              (catMaybes
-                 [("busy" .=) <$> _fbcBusy,
-                  ("errors" .=) <$> _fbcErrors])
-
---
--- /See:/ 'conferenceData' smart constructor.
-data ConferenceData =
-  ConferenceData'
-    { _cdSignature          :: !(Maybe Text)
-    , _cdConferenceSolution :: !(Maybe ConferenceSolution)
-    , _cdCreateRequest      :: !(Maybe CreateConferenceRequest)
-    , _cdConferenceId       :: !(Maybe Text)
-    , _cdParameters         :: !(Maybe ConferenceParameters)
-    , _cdNotes              :: !(Maybe Text)
-    , _cdEntryPoints        :: !(Maybe [EntryPoint])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceData' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdSignature'
---
--- * 'cdConferenceSolution'
---
--- * 'cdCreateRequest'
---
--- * 'cdConferenceId'
---
--- * 'cdParameters'
---
--- * 'cdNotes'
---
--- * 'cdEntryPoints'
-conferenceData
-    :: ConferenceData
-conferenceData =
-  ConferenceData'
-    { _cdSignature = Nothing
-    , _cdConferenceSolution = Nothing
-    , _cdCreateRequest = Nothing
-    , _cdConferenceId = Nothing
-    , _cdParameters = Nothing
-    , _cdNotes = Nothing
-    , _cdEntryPoints = Nothing
-    }
-
-
--- | The signature of the conference data. Genereated on server side. Must be
--- preserved while copying the conference data between events, otherwise
--- the conference data will not be copied. Unset for a conference with a
--- failed create request. Optional for a conference with a pending create
--- request.
-cdSignature :: Lens' ConferenceData (Maybe Text)
-cdSignature
-  = lens _cdSignature (\ s a -> s{_cdSignature = a})
-
--- | The conference solution, such as Hangouts or Hangouts Meet. Unset for a
--- conference with a failed create request. Either conferenceSolution and
--- at least one entryPoint, or createRequest is required.
-cdConferenceSolution :: Lens' ConferenceData (Maybe ConferenceSolution)
-cdConferenceSolution
-  = lens _cdConferenceSolution
-      (\ s a -> s{_cdConferenceSolution = a})
-
--- | A request to generate a new conference and attach it to the event. The
--- data is generated asynchronously. To see whether the data is present
--- check the status field. Either conferenceSolution and at least one
--- entryPoint, or createRequest is required.
-cdCreateRequest :: Lens' ConferenceData (Maybe CreateConferenceRequest)
-cdCreateRequest
-  = lens _cdCreateRequest
-      (\ s a -> s{_cdCreateRequest = a})
-
--- | The ID of the conference. Can be used by developers to keep track of
--- conferences, should not be displayed to users. Values for solution
--- types: - \"eventHangout\": unset. - \"eventNamedHangout\": the name of
--- the Hangout. - \"hangoutsMeet\": the 10-letter meeting code, for example
--- \"aaa-bbbb-ccc\". Optional.
-cdConferenceId :: Lens' ConferenceData (Maybe Text)
-cdConferenceId
-  = lens _cdConferenceId
-      (\ s a -> s{_cdConferenceId = a})
-
--- | Additional properties related to a conference. An example would be a
--- solution-specific setting for enabling video streaming.
-cdParameters :: Lens' ConferenceData (Maybe ConferenceParameters)
-cdParameters
-  = lens _cdParameters (\ s a -> s{_cdParameters = a})
-
--- | Additional notes (such as instructions from the domain administrator,
--- legal notices) to display to the user. Can contain HTML. The maximum
--- length is 2048 characters. Optional.
-cdNotes :: Lens' ConferenceData (Maybe Text)
-cdNotes = lens _cdNotes (\ s a -> s{_cdNotes = a})
-
--- | Information about individual conference entry points, such as URLs or
--- phone numbers. All of them must belong to the same conference. Either
--- conferenceSolution and at least one entryPoint, or createRequest is
--- required.
-cdEntryPoints :: Lens' ConferenceData [EntryPoint]
-cdEntryPoints
-  = lens _cdEntryPoints
-      (\ s a -> s{_cdEntryPoints = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ConferenceData where
-        parseJSON
-          = withObject "ConferenceData"
-              (\ o ->
-                 ConferenceData' <$>
-                   (o .:? "signature") <*> (o .:? "conferenceSolution")
-                     <*> (o .:? "createRequest")
-                     <*> (o .:? "conferenceId")
-                     <*> (o .:? "parameters")
-                     <*> (o .:? "notes")
-                     <*> (o .:? "entryPoints" .!= mempty))
-
-instance ToJSON ConferenceData where
-        toJSON ConferenceData'{..}
-          = object
-              (catMaybes
-                 [("signature" .=) <$> _cdSignature,
-                  ("conferenceSolution" .=) <$> _cdConferenceSolution,
-                  ("createRequest" .=) <$> _cdCreateRequest,
-                  ("conferenceId" .=) <$> _cdConferenceId,
-                  ("parameters" .=) <$> _cdParameters,
-                  ("notes" .=) <$> _cdNotes,
-                  ("entryPoints" .=) <$> _cdEntryPoints])
-
---
--- /See:/ 'setting' smart constructor.
-data Setting =
-  Setting'
-    { _setEtag  :: !(Maybe Text)
-    , _setKind  :: !Text
-    , _setValue :: !(Maybe Text)
-    , _setId    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Setting' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'setEtag'
---
--- * 'setKind'
---
--- * 'setValue'
---
--- * 'setId'
-setting
-    :: Setting
-setting =
-  Setting'
-    { _setEtag = Nothing
-    , _setKind = "calendar#setting"
-    , _setValue = Nothing
-    , _setId = Nothing
-    }
-
-
--- | ETag of the resource.
-setEtag :: Lens' Setting (Maybe Text)
-setEtag = lens _setEtag (\ s a -> s{_setEtag = a})
-
--- | Type of the resource (\"calendar#setting\").
-setKind :: Lens' Setting Text
-setKind = lens _setKind (\ s a -> s{_setKind = a})
-
--- | Value of the user setting. The format of the value depends on the ID of
--- the setting. It must always be a UTF-8 string of length up to 1024
--- characters.
-setValue :: Lens' Setting (Maybe Text)
-setValue = lens _setValue (\ s a -> s{_setValue = a})
-
--- | The id of the user setting.
-setId :: Lens' Setting (Maybe Text)
-setId = lens _setId (\ s a -> s{_setId = a})
-
-instance FromJSON Setting where
-        parseJSON
-          = withObject "Setting"
-              (\ o ->
-                 Setting' <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "calendar#setting")
-                     <*> (o .:? "value")
-                     <*> (o .:? "id"))
-
-instance ToJSON Setting where
-        toJSON Setting'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _setEtag, Just ("kind" .= _setKind),
-                  ("value" .=) <$> _setValue, ("id" .=) <$> _setId])
-
--- | Expansion of groups.
---
--- /See:/ 'freeBusyResponseGroups' smart constructor.
-newtype FreeBusyResponseGroups =
-  FreeBusyResponseGroups'
-    { _fbrgAddtional :: HashMap Text FreeBusyGroup
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyResponseGroups' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbrgAddtional'
-freeBusyResponseGroups
-    :: HashMap Text FreeBusyGroup -- ^ 'fbrgAddtional'
-    -> FreeBusyResponseGroups
-freeBusyResponseGroups pFbrgAddtional_ =
-  FreeBusyResponseGroups' {_fbrgAddtional = _Coerce # pFbrgAddtional_}
-
-
--- | List of calendars that are members of this group.
-fbrgAddtional :: Lens' FreeBusyResponseGroups (HashMap Text FreeBusyGroup)
-fbrgAddtional
-  = lens _fbrgAddtional
-      (\ s a -> s{_fbrgAddtional = a})
-      . _Coerce
-
-instance FromJSON FreeBusyResponseGroups where
-        parseJSON
-          = withObject "FreeBusyResponseGroups"
-              (\ o ->
-                 FreeBusyResponseGroups' <$> (parseJSONObject o))
-
-instance ToJSON FreeBusyResponseGroups where
-        toJSON = toJSON . _fbrgAddtional
-
--- | Information about the event\'s reminders for the authenticated user.
---
--- /See:/ 'eventReminders' smart constructor.
-data EventReminders =
-  EventReminders'
-    { _erOverrides  :: !(Maybe [EventReminder])
-    , _erUseDefault :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventReminders' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'erOverrides'
---
--- * 'erUseDefault'
-eventReminders
-    :: EventReminders
-eventReminders =
-  EventReminders' {_erOverrides = Nothing, _erUseDefault = Nothing}
-
-
--- | If the event doesn\'t use the default reminders, this lists the
--- reminders specific to the event, or, if not set, indicates that no
--- reminders are set for this event. The maximum number of override
--- reminders is 5.
-erOverrides :: Lens' EventReminders [EventReminder]
-erOverrides
-  = lens _erOverrides (\ s a -> s{_erOverrides = a}) .
-      _Default
-      . _Coerce
-
--- | Whether the default reminders of the calendar apply to the event.
-erUseDefault :: Lens' EventReminders (Maybe Bool)
-erUseDefault
-  = lens _erUseDefault (\ s a -> s{_erUseDefault = a})
-
-instance FromJSON EventReminders where
-        parseJSON
-          = withObject "EventReminders"
-              (\ o ->
-                 EventReminders' <$>
-                   (o .:? "overrides" .!= mempty) <*>
-                     (o .:? "useDefault"))
-
-instance ToJSON EventReminders where
-        toJSON EventReminders'{..}
-          = object
-              (catMaybes
-                 [("overrides" .=) <$> _erOverrides,
-                  ("useDefault" .=) <$> _erUseDefault])
-
--- | A global palette of calendar colors, mapping from the color ID to its
--- definition. A calendarListEntry resource refers to one of these color
--- IDs in its color field. Read-only.
---
--- /See:/ 'colorsCalendar' smart constructor.
-newtype ColorsCalendar =
-  ColorsCalendar'
-    { _ccAddtional :: HashMap Text ColorDefinition
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ColorsCalendar' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccAddtional'
-colorsCalendar
-    :: HashMap Text ColorDefinition -- ^ 'ccAddtional'
-    -> ColorsCalendar
-colorsCalendar pCcAddtional_ =
-  ColorsCalendar' {_ccAddtional = _Coerce # pCcAddtional_}
-
-
--- | A calendar color defintion.
-ccAddtional :: Lens' ColorsCalendar (HashMap Text ColorDefinition)
-ccAddtional
-  = lens _ccAddtional (\ s a -> s{_ccAddtional = a}) .
-      _Coerce
-
-instance FromJSON ColorsCalendar where
-        parseJSON
-          = withObject "ColorsCalendar"
-              (\ o -> ColorsCalendar' <$> (parseJSONObject o))
-
-instance ToJSON ColorsCalendar where
-        toJSON = toJSON . _ccAddtional
-
---
--- /See:/ 'conferenceParametersAddOnParametersParameters' smart constructor.
-newtype ConferenceParametersAddOnParametersParameters =
-  ConferenceParametersAddOnParametersParameters'
-    { _cpaoppAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceParametersAddOnParametersParameters' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpaoppAddtional'
-conferenceParametersAddOnParametersParameters
-    :: HashMap Text Text -- ^ 'cpaoppAddtional'
-    -> ConferenceParametersAddOnParametersParameters
-conferenceParametersAddOnParametersParameters pCpaoppAddtional_ =
-  ConferenceParametersAddOnParametersParameters'
-    {_cpaoppAddtional = _Coerce # pCpaoppAddtional_}
-
-
-cpaoppAddtional :: Lens' ConferenceParametersAddOnParametersParameters (HashMap Text Text)
-cpaoppAddtional
-  = lens _cpaoppAddtional
-      (\ s a -> s{_cpaoppAddtional = a})
-      . _Coerce
-
-instance FromJSON
-           ConferenceParametersAddOnParametersParameters
-         where
-        parseJSON
-          = withObject
-              "ConferenceParametersAddOnParametersParameters"
-              (\ o ->
-                 ConferenceParametersAddOnParametersParameters' <$>
-                   (parseJSONObject o))
-
-instance ToJSON
-           ConferenceParametersAddOnParametersParameters
-         where
-        toJSON = toJSON . _cpaoppAddtional
-
---
--- /See:/ 'calendarNotification' smart constructor.
-data CalendarNotification =
-  CalendarNotification'
-    { _cnMethod :: !(Maybe Text)
-    , _cnType   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarNotification' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cnMethod'
---
--- * 'cnType'
-calendarNotification
-    :: CalendarNotification
-calendarNotification =
-  CalendarNotification' {_cnMethod = Nothing, _cnType = Nothing}
-
-
--- | The method used to deliver the notification. Possible values are: -
--- \"email\" - Notifications are sent via email. - \"sms\" - Deprecated.
--- Once this feature is shutdown, the API will no longer return
--- notifications using this method. Any newly added SMS notifications will
--- be ignored. See Google Calendar SMS notifications to be removed for more
--- information. Notifications are sent via SMS. This value is read-only and
--- is ignored on inserts and updates. SMS notifications are only available
--- for G Suite customers. Required when adding a notification.
-cnMethod :: Lens' CalendarNotification (Maybe Text)
-cnMethod = lens _cnMethod (\ s a -> s{_cnMethod = a})
-
--- | The type of notification. Possible values are: - \"eventCreation\" -
--- Notification sent when a new event is put on the calendar. -
--- \"eventChange\" - Notification sent when an event is changed. -
--- \"eventCancellation\" - Notification sent when an event is cancelled. -
--- \"eventResponse\" - Notification sent when an attendee responds to the
--- event invitation. - \"agenda\" - An agenda with the events of the day
--- (sent out in the morning). Required when adding a notification.
-cnType :: Lens' CalendarNotification (Maybe Text)
-cnType = lens _cnType (\ s a -> s{_cnType = a})
-
-instance FromJSON CalendarNotification where
-        parseJSON
-          = withObject "CalendarNotification"
-              (\ o ->
-                 CalendarNotification' <$>
-                   (o .:? "method") <*> (o .:? "type"))
-
-instance ToJSON CalendarNotification where
-        toJSON CalendarNotification'{..}
-          = object
-              (catMaybes
-                 [("method" .=) <$> _cnMethod,
-                  ("type" .=) <$> _cnType])
-
--- | Properties that are private to the copy of the event that appears on
--- this calendar.
---
--- /See:/ 'eventExtendedPropertiesPrivate' smart constructor.
-newtype EventExtendedPropertiesPrivate =
-  EventExtendedPropertiesPrivate'
-    { _eeppAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventExtendedPropertiesPrivate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eeppAddtional'
-eventExtendedPropertiesPrivate
-    :: HashMap Text Text -- ^ 'eeppAddtional'
-    -> EventExtendedPropertiesPrivate
-eventExtendedPropertiesPrivate pEeppAddtional_ =
-  EventExtendedPropertiesPrivate' {_eeppAddtional = _Coerce # pEeppAddtional_}
-
-
--- | The name of the private property and the corresponding value.
-eeppAddtional :: Lens' EventExtendedPropertiesPrivate (HashMap Text Text)
-eeppAddtional
-  = lens _eeppAddtional
-      (\ s a -> s{_eeppAddtional = a})
-      . _Coerce
-
-instance FromJSON EventExtendedPropertiesPrivate
-         where
-        parseJSON
-          = withObject "EventExtendedPropertiesPrivate"
-              (\ o ->
-                 EventExtendedPropertiesPrivate' <$>
-                   (parseJSONObject o))
-
-instance ToJSON EventExtendedPropertiesPrivate where
-        toJSON = toJSON . _eeppAddtional
-
--- | Additional parameters controlling delivery channel behavior. Optional.
---
--- /See:/ 'channelParams' smart constructor.
-newtype ChannelParams =
-  ChannelParams'
-    { _cpAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChannelParams' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpAddtional'
-channelParams
-    :: HashMap Text Text -- ^ 'cpAddtional'
-    -> ChannelParams
-channelParams pCpAddtional_ =
-  ChannelParams' {_cpAddtional = _Coerce # pCpAddtional_}
-
-
--- | Declares a new parameter by name.
-cpAddtional :: Lens' ChannelParams (HashMap Text Text)
-cpAddtional
-  = lens _cpAddtional (\ s a -> s{_cpAddtional = a}) .
-      _Coerce
-
-instance FromJSON ChannelParams where
-        parseJSON
-          = withObject "ChannelParams"
-              (\ o -> ChannelParams' <$> (parseJSONObject o))
-
-instance ToJSON ChannelParams where
-        toJSON = toJSON . _cpAddtional
-
---
--- /See:/ 'events' smart constructor.
-data Events =
-  Events'
-    { _eveSummary          :: !(Maybe Text)
-    , _eveEtag             :: !(Maybe Text)
-    , _eveNextPageToken    :: !(Maybe Text)
-    , _eveKind             :: !Text
-    , _eveItems            :: !(Maybe [Event])
-    , _eveDefaultReminders :: !(Maybe [EventReminder])
-    , _eveUpdated          :: !(Maybe DateTime')
-    , _eveAccessRole       :: !(Maybe Text)
-    , _eveTimeZone         :: !(Maybe Text)
-    , _eveNextSyncToken    :: !(Maybe Text)
-    , _eveDescription      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Events' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eveSummary'
---
--- * 'eveEtag'
---
--- * 'eveNextPageToken'
---
--- * 'eveKind'
---
--- * 'eveItems'
---
--- * 'eveDefaultReminders'
---
--- * 'eveUpdated'
---
--- * 'eveAccessRole'
---
--- * 'eveTimeZone'
---
--- * 'eveNextSyncToken'
---
--- * 'eveDescription'
-events
-    :: Events
-events =
-  Events'
-    { _eveSummary = Nothing
-    , _eveEtag = Nothing
-    , _eveNextPageToken = Nothing
-    , _eveKind = "calendar#events"
-    , _eveItems = Nothing
-    , _eveDefaultReminders = Nothing
-    , _eveUpdated = Nothing
-    , _eveAccessRole = Nothing
-    , _eveTimeZone = Nothing
-    , _eveNextSyncToken = Nothing
-    , _eveDescription = Nothing
-    }
-
-
--- | Title of the calendar. Read-only.
-eveSummary :: Lens' Events (Maybe Text)
-eveSummary
-  = lens _eveSummary (\ s a -> s{_eveSummary = a})
-
--- | ETag of the collection.
-eveEtag :: Lens' Events (Maybe Text)
-eveEtag = lens _eveEtag (\ s a -> s{_eveEtag = a})
-
--- | Token used to access the next page of this result. Omitted if no further
--- results are available, in which case nextSyncToken is provided.
-eveNextPageToken :: Lens' Events (Maybe Text)
-eveNextPageToken
-  = lens _eveNextPageToken
-      (\ s a -> s{_eveNextPageToken = a})
-
--- | Type of the collection (\"calendar#events\").
-eveKind :: Lens' Events Text
-eveKind = lens _eveKind (\ s a -> s{_eveKind = a})
-
--- | List of events on the calendar.
-eveItems :: Lens' Events [Event]
-eveItems
-  = lens _eveItems (\ s a -> s{_eveItems = a}) .
-      _Default
-      . _Coerce
-
--- | The default reminders on the calendar for the authenticated user. These
--- reminders apply to all events on this calendar that do not explicitly
--- override them (i.e. do not have reminders.useDefault set to True).
-eveDefaultReminders :: Lens' Events [EventReminder]
-eveDefaultReminders
-  = lens _eveDefaultReminders
-      (\ s a -> s{_eveDefaultReminders = a})
-      . _Default
-      . _Coerce
-
--- | Last modification time of the calendar (as a RFC3339 timestamp).
--- Read-only.
-eveUpdated :: Lens' Events (Maybe UTCTime)
-eveUpdated
-  = lens _eveUpdated (\ s a -> s{_eveUpdated = a}) .
-      mapping _DateTime
-
--- | The user\'s access role for this calendar. Read-only. Possible values
--- are: - \"none\" - The user has no access. - \"freeBusyReader\" - The
--- user has read access to free\/busy information. - \"reader\" - The user
--- has read access to the calendar. Private events will appear to users
--- with reader access, but event details will be hidden. - \"writer\" - The
--- user has read and write access to the calendar. Private events will
--- appear to users with writer access, and event details will be visible. -
--- \"owner\" - The user has ownership of the calendar. This role has all of
--- the permissions of the writer role with the additional ability to see
--- and manipulate ACLs.
-eveAccessRole :: Lens' Events (Maybe Text)
-eveAccessRole
-  = lens _eveAccessRole
-      (\ s a -> s{_eveAccessRole = a})
-
--- | The time zone of the calendar. Read-only.
-eveTimeZone :: Lens' Events (Maybe Text)
-eveTimeZone
-  = lens _eveTimeZone (\ s a -> s{_eveTimeZone = a})
-
--- | Token used at a later point in time to retrieve only the entries that
--- have changed since this result was returned. Omitted if further results
--- are available, in which case nextPageToken is provided.
-eveNextSyncToken :: Lens' Events (Maybe Text)
-eveNextSyncToken
-  = lens _eveNextSyncToken
-      (\ s a -> s{_eveNextSyncToken = a})
-
--- | Description of the calendar. Read-only.
-eveDescription :: Lens' Events (Maybe Text)
-eveDescription
-  = lens _eveDescription
-      (\ s a -> s{_eveDescription = a})
-
-instance FromJSON Events where
-        parseJSON
-          = withObject "Events"
-              (\ o ->
-                 Events' <$>
-                   (o .:? "summary") <*> (o .:? "etag") <*>
-                     (o .:? "nextPageToken")
-                     <*> (o .:? "kind" .!= "calendar#events")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "defaultReminders" .!= mempty)
-                     <*> (o .:? "updated")
-                     <*> (o .:? "accessRole")
-                     <*> (o .:? "timeZone")
-                     <*> (o .:? "nextSyncToken")
-                     <*> (o .:? "description"))
-
-instance ToJSON Events where
-        toJSON Events'{..}
-          = object
-              (catMaybes
-                 [("summary" .=) <$> _eveSummary,
-                  ("etag" .=) <$> _eveEtag,
-                  ("nextPageToken" .=) <$> _eveNextPageToken,
-                  Just ("kind" .= _eveKind),
-                  ("items" .=) <$> _eveItems,
-                  ("defaultReminders" .=) <$> _eveDefaultReminders,
-                  ("updated" .=) <$> _eveUpdated,
-                  ("accessRole" .=) <$> _eveAccessRole,
-                  ("timeZone" .=) <$> _eveTimeZone,
-                  ("nextSyncToken" .=) <$> _eveNextSyncToken,
-                  ("description" .=) <$> _eveDescription])
-
---
--- /See:/ 'eventAttendee' smart constructor.
-data EventAttendee =
-  EventAttendee'
-    { _eaEmail            :: !(Maybe Text)
-    , _eaResponseStatus   :: !(Maybe Text)
-    , _eaSelf             :: !Bool
-    , _eaResource         :: !Bool
-    , _eaAdditionalGuests :: !(Textual Int32)
-    , _eaDisplayName      :: !(Maybe Text)
-    , _eaId               :: !(Maybe Text)
-    , _eaComment          :: !(Maybe Text)
-    , _eaOptional         :: !Bool
-    , _eaOrganizer        :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventAttendee' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eaEmail'
---
--- * 'eaResponseStatus'
---
--- * 'eaSelf'
---
--- * 'eaResource'
---
--- * 'eaAdditionalGuests'
---
--- * 'eaDisplayName'
---
--- * 'eaId'
---
--- * 'eaComment'
---
--- * 'eaOptional'
---
--- * 'eaOrganizer'
-eventAttendee
-    :: EventAttendee
-eventAttendee =
-  EventAttendee'
-    { _eaEmail = Nothing
-    , _eaResponseStatus = Nothing
-    , _eaSelf = False
-    , _eaResource = False
-    , _eaAdditionalGuests = 0
-    , _eaDisplayName = Nothing
-    , _eaId = Nothing
-    , _eaComment = Nothing
-    , _eaOptional = False
-    , _eaOrganizer = Nothing
-    }
-
-
--- | The attendee\'s email address, if available. This field must be present
--- when adding an attendee. It must be a valid email address as per
--- RFC5322. Required when adding an attendee.
-eaEmail :: Lens' EventAttendee (Maybe Text)
-eaEmail = lens _eaEmail (\ s a -> s{_eaEmail = a})
-
--- | The attendee\'s response status. Possible values are: - \"needsAction\"
--- - The attendee has not responded to the invitation. - \"declined\" - The
--- attendee has declined the invitation. - \"tentative\" - The attendee has
--- tentatively accepted the invitation. - \"accepted\" - The attendee has
--- accepted the invitation.
-eaResponseStatus :: Lens' EventAttendee (Maybe Text)
-eaResponseStatus
-  = lens _eaResponseStatus
-      (\ s a -> s{_eaResponseStatus = a})
-
--- | Whether this entry represents the calendar on which this copy of the
--- event appears. Read-only. The default is False.
-eaSelf :: Lens' EventAttendee Bool
-eaSelf = lens _eaSelf (\ s a -> s{_eaSelf = a})
-
--- | Whether the attendee is a resource. Can only be set when the attendee is
--- added to the event for the first time. Subsequent modifications are
--- ignored. Optional. The default is False.
-eaResource :: Lens' EventAttendee Bool
-eaResource
-  = lens _eaResource (\ s a -> s{_eaResource = a})
-
--- | Number of additional guests. Optional. The default is 0.
-eaAdditionalGuests :: Lens' EventAttendee Int32
-eaAdditionalGuests
-  = lens _eaAdditionalGuests
-      (\ s a -> s{_eaAdditionalGuests = a})
-      . _Coerce
-
--- | The attendee\'s name, if available. Optional.
-eaDisplayName :: Lens' EventAttendee (Maybe Text)
-eaDisplayName
-  = lens _eaDisplayName
-      (\ s a -> s{_eaDisplayName = a})
-
--- | The attendee\'s Profile ID, if available. It corresponds to the id field
--- in the People collection of the Google+ API
-eaId :: Lens' EventAttendee (Maybe Text)
-eaId = lens _eaId (\ s a -> s{_eaId = a})
-
--- | The attendee\'s response comment. Optional.
-eaComment :: Lens' EventAttendee (Maybe Text)
-eaComment
-  = lens _eaComment (\ s a -> s{_eaComment = a})
-
--- | Whether this is an optional attendee. Optional. The default is False.
-eaOptional :: Lens' EventAttendee Bool
-eaOptional
-  = lens _eaOptional (\ s a -> s{_eaOptional = a})
-
--- | Whether the attendee is the organizer of the event. Read-only. The
--- default is False.
-eaOrganizer :: Lens' EventAttendee (Maybe Bool)
-eaOrganizer
-  = lens _eaOrganizer (\ s a -> s{_eaOrganizer = a})
-
-instance FromJSON EventAttendee where
-        parseJSON
-          = withObject "EventAttendee"
-              (\ o ->
-                 EventAttendee' <$>
-                   (o .:? "email") <*> (o .:? "responseStatus") <*>
-                     (o .:? "self" .!= False)
-                     <*> (o .:? "resource" .!= False)
-                     <*> (o .:? "additionalGuests" .!= 0)
-                     <*> (o .:? "displayName")
-                     <*> (o .:? "id")
-                     <*> (o .:? "comment")
-                     <*> (o .:? "optional" .!= False)
-                     <*> (o .:? "organizer"))
-
-instance ToJSON EventAttendee where
-        toJSON EventAttendee'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _eaEmail,
-                  ("responseStatus" .=) <$> _eaResponseStatus,
-                  Just ("self" .= _eaSelf),
-                  Just ("resource" .= _eaResource),
-                  Just ("additionalGuests" .= _eaAdditionalGuests),
-                  ("displayName" .=) <$> _eaDisplayName,
-                  ("id" .=) <$> _eaId, ("comment" .=) <$> _eaComment,
-                  Just ("optional" .= _eaOptional),
-                  ("organizer" .=) <$> _eaOrganizer])
-
---
--- /See:/ 'calendar' smart constructor.
-data Calendar =
-  Calendar'
-    { _calSummary              :: !(Maybe Text)
-    , _calConferenceProperties :: !(Maybe ConferenceProperties)
-    , _calEtag                 :: !(Maybe Text)
-    , _calLocation             :: !(Maybe Text)
-    , _calKind                 :: !Text
-    , _calId                   :: !(Maybe Text)
-    , _calTimeZone             :: !(Maybe Text)
-    , _calDescription          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Calendar' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'calSummary'
---
--- * 'calConferenceProperties'
---
--- * 'calEtag'
---
--- * 'calLocation'
---
--- * 'calKind'
---
--- * 'calId'
---
--- * 'calTimeZone'
---
--- * 'calDescription'
-calendar
-    :: Calendar
-calendar =
-  Calendar'
-    { _calSummary = Nothing
-    , _calConferenceProperties = Nothing
-    , _calEtag = Nothing
-    , _calLocation = Nothing
-    , _calKind = "calendar#calendar"
-    , _calId = Nothing
-    , _calTimeZone = Nothing
-    , _calDescription = Nothing
-    }
-
-
--- | Title of the calendar.
-calSummary :: Lens' Calendar (Maybe Text)
-calSummary
-  = lens _calSummary (\ s a -> s{_calSummary = a})
-
--- | Conferencing properties for this calendar, for example what types of
--- conferences are allowed.
-calConferenceProperties :: Lens' Calendar (Maybe ConferenceProperties)
-calConferenceProperties
-  = lens _calConferenceProperties
-      (\ s a -> s{_calConferenceProperties = a})
-
--- | ETag of the resource.
-calEtag :: Lens' Calendar (Maybe Text)
-calEtag = lens _calEtag (\ s a -> s{_calEtag = a})
-
--- | Geographic location of the calendar as free-form text. Optional.
-calLocation :: Lens' Calendar (Maybe Text)
-calLocation
-  = lens _calLocation (\ s a -> s{_calLocation = a})
-
--- | Type of the resource (\"calendar#calendar\").
-calKind :: Lens' Calendar Text
-calKind = lens _calKind (\ s a -> s{_calKind = a})
-
--- | Identifier of the calendar. To retrieve IDs call the calendarList.list()
--- method.
-calId :: Lens' Calendar (Maybe Text)
-calId = lens _calId (\ s a -> s{_calId = a})
-
--- | The time zone of the calendar. (Formatted as an IANA Time Zone Database
--- name, e.g. \"Europe\/Zurich\".) Optional.
-calTimeZone :: Lens' Calendar (Maybe Text)
-calTimeZone
-  = lens _calTimeZone (\ s a -> s{_calTimeZone = a})
-
--- | Description of the calendar. Optional.
-calDescription :: Lens' Calendar (Maybe Text)
-calDescription
-  = lens _calDescription
-      (\ s a -> s{_calDescription = a})
-
-instance FromJSON Calendar where
-        parseJSON
-          = withObject "Calendar"
-              (\ o ->
-                 Calendar' <$>
-                   (o .:? "summary") <*> (o .:? "conferenceProperties")
-                     <*> (o .:? "etag")
-                     <*> (o .:? "location")
-                     <*> (o .:? "kind" .!= "calendar#calendar")
-                     <*> (o .:? "id")
-                     <*> (o .:? "timeZone")
-                     <*> (o .:? "description"))
-
-instance ToJSON Calendar where
-        toJSON Calendar'{..}
-          = object
-              (catMaybes
-                 [("summary" .=) <$> _calSummary,
-                  ("conferenceProperties" .=) <$>
-                    _calConferenceProperties,
-                  ("etag" .=) <$> _calEtag,
-                  ("location" .=) <$> _calLocation,
-                  Just ("kind" .= _calKind), ("id" .=) <$> _calId,
-                  ("timeZone" .=) <$> _calTimeZone,
-                  ("description" .=) <$> _calDescription])
-
---
--- /See:/ 'freeBusyResponse' smart constructor.
-data FreeBusyResponse =
-  FreeBusyResponse'
-    { _fbrGroups    :: !(Maybe FreeBusyResponseGroups)
-    , _fbrTimeMin   :: !(Maybe DateTime')
-    , _fbrKind      :: !Text
-    , _fbrCalendars :: !(Maybe FreeBusyResponseCalendars)
-    , _fbrTimeMax   :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbrGroups'
---
--- * 'fbrTimeMin'
---
--- * 'fbrKind'
---
--- * 'fbrCalendars'
---
--- * 'fbrTimeMax'
-freeBusyResponse
-    :: FreeBusyResponse
-freeBusyResponse =
-  FreeBusyResponse'
-    { _fbrGroups = Nothing
-    , _fbrTimeMin = Nothing
-    , _fbrKind = "calendar#freeBusy"
-    , _fbrCalendars = Nothing
-    , _fbrTimeMax = Nothing
-    }
-
-
--- | Expansion of groups.
-fbrGroups :: Lens' FreeBusyResponse (Maybe FreeBusyResponseGroups)
-fbrGroups
-  = lens _fbrGroups (\ s a -> s{_fbrGroups = a})
-
--- | The start of the interval.
-fbrTimeMin :: Lens' FreeBusyResponse (Maybe UTCTime)
-fbrTimeMin
-  = lens _fbrTimeMin (\ s a -> s{_fbrTimeMin = a}) .
-      mapping _DateTime
-
--- | Type of the resource (\"calendar#freeBusy\").
-fbrKind :: Lens' FreeBusyResponse Text
-fbrKind = lens _fbrKind (\ s a -> s{_fbrKind = a})
-
--- | List of free\/busy information for calendars.
-fbrCalendars :: Lens' FreeBusyResponse (Maybe FreeBusyResponseCalendars)
-fbrCalendars
-  = lens _fbrCalendars (\ s a -> s{_fbrCalendars = a})
-
--- | The end of the interval.
-fbrTimeMax :: Lens' FreeBusyResponse (Maybe UTCTime)
-fbrTimeMax
-  = lens _fbrTimeMax (\ s a -> s{_fbrTimeMax = a}) .
-      mapping _DateTime
-
-instance FromJSON FreeBusyResponse where
-        parseJSON
-          = withObject "FreeBusyResponse"
-              (\ o ->
-                 FreeBusyResponse' <$>
-                   (o .:? "groups") <*> (o .:? "timeMin") <*>
-                     (o .:? "kind" .!= "calendar#freeBusy")
-                     <*> (o .:? "calendars")
-                     <*> (o .:? "timeMax"))
-
-instance ToJSON FreeBusyResponse where
-        toJSON FreeBusyResponse'{..}
-          = object
-              (catMaybes
-                 [("groups" .=) <$> _fbrGroups,
-                  ("timeMin" .=) <$> _fbrTimeMin,
-                  Just ("kind" .= _fbrKind),
-                  ("calendars" .=) <$> _fbrCalendars,
-                  ("timeMax" .=) <$> _fbrTimeMax])
-
---
--- /See:/ 'eventReminder' smart constructor.
-data EventReminder =
-  EventReminder'
-    { _erMethod  :: !(Maybe Text)
-    , _erMinutes :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventReminder' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'erMethod'
---
--- * 'erMinutes'
-eventReminder
-    :: EventReminder
-eventReminder = EventReminder' {_erMethod = Nothing, _erMinutes = Nothing}
-
-
--- | The method used by this reminder. Possible values are: - \"email\" -
--- Reminders are sent via email. - \"sms\" - Deprecated. Once this feature
--- is shutdown, the API will no longer return reminders using this method.
--- Any newly added SMS reminders will be ignored. See Google Calendar SMS
--- notifications to be removed for more information. Reminders are sent via
--- SMS. These are only available for G Suite customers. Requests to set SMS
--- reminders for other account types are ignored. - \"popup\" - Reminders
--- are sent via a UI popup. Required when adding a reminder.
-erMethod :: Lens' EventReminder (Maybe Text)
-erMethod = lens _erMethod (\ s a -> s{_erMethod = a})
-
--- | Number of minutes before the start of the event when the reminder should
--- trigger. Valid values are between 0 and 40320 (4 weeks in minutes).
--- Required when adding a reminder.
-erMinutes :: Lens' EventReminder (Maybe Int32)
-erMinutes
-  = lens _erMinutes (\ s a -> s{_erMinutes = a}) .
-      mapping _Coerce
-
-instance FromJSON EventReminder where
-        parseJSON
-          = withObject "EventReminder"
-              (\ o ->
-                 EventReminder' <$>
-                   (o .:? "method") <*> (o .:? "minutes"))
-
-instance ToJSON EventReminder where
-        toJSON EventReminder'{..}
-          = object
-              (catMaybes
-                 [("method" .=) <$> _erMethod,
-                  ("minutes" .=) <$> _erMinutes])
-
--- | Extended properties of the event.
---
--- /See:/ 'eventExtendedProperties' smart constructor.
-data EventExtendedProperties =
-  EventExtendedProperties'
-    { _eepPrivate :: !(Maybe EventExtendedPropertiesPrivate)
-    , _eepShared  :: !(Maybe EventExtendedPropertiesShared)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventExtendedProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eepPrivate'
---
--- * 'eepShared'
-eventExtendedProperties
-    :: EventExtendedProperties
-eventExtendedProperties =
-  EventExtendedProperties' {_eepPrivate = Nothing, _eepShared = Nothing}
-
-
--- | Properties that are private to the copy of the event that appears on
--- this calendar.
-eepPrivate :: Lens' EventExtendedProperties (Maybe EventExtendedPropertiesPrivate)
-eepPrivate
-  = lens _eepPrivate (\ s a -> s{_eepPrivate = a})
-
--- | Properties that are shared between copies of the event on other
--- attendees\' calendars.
-eepShared :: Lens' EventExtendedProperties (Maybe EventExtendedPropertiesShared)
-eepShared
-  = lens _eepShared (\ s a -> s{_eepShared = a})
-
-instance FromJSON EventExtendedProperties where
-        parseJSON
-          = withObject "EventExtendedProperties"
-              (\ o ->
-                 EventExtendedProperties' <$>
-                   (o .:? "private") <*> (o .:? "shared"))
-
-instance ToJSON EventExtendedProperties where
-        toJSON EventExtendedProperties'{..}
-          = object
-              (catMaybes
-                 [("private" .=) <$> _eepPrivate,
-                  ("shared" .=) <$> _eepShared])
-
---
--- /See:/ 'eventDateTime' smart constructor.
-data EventDateTime =
-  EventDateTime'
-    { _edtDate     :: !(Maybe Date')
-    , _edtTimeZone :: !(Maybe Text)
-    , _edtDateTime :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventDateTime' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'edtDate'
---
--- * 'edtTimeZone'
---
--- * 'edtDateTime'
-eventDateTime
-    :: EventDateTime
-eventDateTime =
-  EventDateTime'
-    {_edtDate = Nothing, _edtTimeZone = Nothing, _edtDateTime = Nothing}
-
-
--- | The date, in the format \"yyyy-mm-dd\", if this is an all-day event.
-edtDate :: Lens' EventDateTime (Maybe Day)
-edtDate
-  = lens _edtDate (\ s a -> s{_edtDate = a}) .
-      mapping _Date
-
--- | The time zone in which the time is specified. (Formatted as an IANA Time
--- Zone Database name, e.g. \"Europe\/Zurich\".) For recurring events this
--- field is required and specifies the time zone in which the recurrence is
--- expanded. For single events this field is optional and indicates a
--- custom time zone for the event start\/end.
-edtTimeZone :: Lens' EventDateTime (Maybe Text)
-edtTimeZone
-  = lens _edtTimeZone (\ s a -> s{_edtTimeZone = a})
-
--- | The time, as a combined date-time value (formatted according to
--- RFC3339). A time zone offset is required unless a time zone is
--- explicitly specified in timeZone.
-edtDateTime :: Lens' EventDateTime (Maybe UTCTime)
-edtDateTime
-  = lens _edtDateTime (\ s a -> s{_edtDateTime = a}) .
-      mapping _DateTime
-
-instance FromJSON EventDateTime where
-        parseJSON
-          = withObject "EventDateTime"
-              (\ o ->
-                 EventDateTime' <$>
-                   (o .:? "date") <*> (o .:? "timeZone") <*>
-                     (o .:? "dateTime"))
-
-instance ToJSON EventDateTime where
-        toJSON EventDateTime'{..}
-          = object
-              (catMaybes
-                 [("date" .=) <$> _edtDate,
-                  ("timeZone" .=) <$> _edtTimeZone,
-                  ("dateTime" .=) <$> _edtDateTime])
-
--- | The organizer of the event. If the organizer is also an attendee, this
--- is indicated with a separate entry in attendees with the organizer field
--- set to True. To change the organizer, use the move operation. Read-only,
--- except when importing an event.
---
--- /See:/ 'eventOrganizer' smart constructor.
-data EventOrganizer =
-  EventOrganizer'
-    { _eoEmail       :: !(Maybe Text)
-    , _eoSelf        :: !Bool
-    , _eoDisplayName :: !(Maybe Text)
-    , _eoId          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventOrganizer' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eoEmail'
---
--- * 'eoSelf'
---
--- * 'eoDisplayName'
---
--- * 'eoId'
-eventOrganizer
-    :: EventOrganizer
-eventOrganizer =
-  EventOrganizer'
-    { _eoEmail = Nothing
-    , _eoSelf = False
-    , _eoDisplayName = Nothing
-    , _eoId = Nothing
-    }
-
-
--- | The organizer\'s email address, if available. It must be a valid email
--- address as per RFC5322.
-eoEmail :: Lens' EventOrganizer (Maybe Text)
-eoEmail = lens _eoEmail (\ s a -> s{_eoEmail = a})
-
--- | Whether the organizer corresponds to the calendar on which this copy of
--- the event appears. Read-only. The default is False.
-eoSelf :: Lens' EventOrganizer Bool
-eoSelf = lens _eoSelf (\ s a -> s{_eoSelf = a})
-
--- | The organizer\'s name, if available.
-eoDisplayName :: Lens' EventOrganizer (Maybe Text)
-eoDisplayName
-  = lens _eoDisplayName
-      (\ s a -> s{_eoDisplayName = a})
-
--- | The organizer\'s Profile ID, if available. It corresponds to the id
--- field in the People collection of the Google+ API
-eoId :: Lens' EventOrganizer (Maybe Text)
-eoId = lens _eoId (\ s a -> s{_eoId = a})
-
-instance FromJSON EventOrganizer where
-        parseJSON
-          = withObject "EventOrganizer"
-              (\ o ->
-                 EventOrganizer' <$>
-                   (o .:? "email") <*> (o .:? "self" .!= False) <*>
-                     (o .:? "displayName")
-                     <*> (o .:? "id"))
-
-instance ToJSON EventOrganizer where
-        toJSON EventOrganizer'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _eoEmail, Just ("self" .= _eoSelf),
-                  ("displayName" .=) <$> _eoDisplayName,
-                  ("id" .=) <$> _eoId])
-
---
--- /See:/ 'calendarList' smart constructor.
-data CalendarList =
-  CalendarList'
-    { _clEtag          :: !(Maybe Text)
-    , _clNextPageToken :: !(Maybe Text)
-    , _clKind          :: !Text
-    , _clItems         :: !(Maybe [CalendarListEntry])
-    , _clNextSyncToken :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clEtag'
---
--- * 'clNextPageToken'
---
--- * 'clKind'
---
--- * 'clItems'
---
--- * 'clNextSyncToken'
-calendarList
-    :: CalendarList
-calendarList =
-  CalendarList'
-    { _clEtag = Nothing
-    , _clNextPageToken = Nothing
-    , _clKind = "calendar#calendarList"
-    , _clItems = Nothing
-    , _clNextSyncToken = Nothing
-    }
-
-
--- | ETag of the collection.
-clEtag :: Lens' CalendarList (Maybe Text)
-clEtag = lens _clEtag (\ s a -> s{_clEtag = a})
-
--- | Token used to access the next page of this result. Omitted if no further
--- results are available, in which case nextSyncToken is provided.
-clNextPageToken :: Lens' CalendarList (Maybe Text)
-clNextPageToken
-  = lens _clNextPageToken
-      (\ s a -> s{_clNextPageToken = a})
-
--- | Type of the collection (\"calendar#calendarList\").
-clKind :: Lens' CalendarList Text
-clKind = lens _clKind (\ s a -> s{_clKind = a})
-
--- | Calendars that are present on the user\'s calendar list.
-clItems :: Lens' CalendarList [CalendarListEntry]
-clItems
-  = lens _clItems (\ s a -> s{_clItems = a}) . _Default
-      . _Coerce
-
--- | Token used at a later point in time to retrieve only the entries that
--- have changed since this result was returned. Omitted if further results
--- are available, in which case nextPageToken is provided.
-clNextSyncToken :: Lens' CalendarList (Maybe Text)
-clNextSyncToken
-  = lens _clNextSyncToken
-      (\ s a -> s{_clNextSyncToken = a})
-
-instance FromJSON CalendarList where
-        parseJSON
-          = withObject "CalendarList"
-              (\ o ->
-                 CalendarList' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "calendar#calendarList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "nextSyncToken"))
-
-instance ToJSON CalendarList where
-        toJSON CalendarList'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _clEtag,
-                  ("nextPageToken" .=) <$> _clNextPageToken,
-                  Just ("kind" .= _clKind), ("items" .=) <$> _clItems,
-                  ("nextSyncToken" .=) <$> _clNextSyncToken])
-
--- | A gadget that extends this event.
---
--- /See:/ 'eventGadget' smart constructor.
-data EventGadget =
-  EventGadget'
-    { _egHeight      :: !(Maybe (Textual Int32))
-    , _egDisplay     :: !(Maybe Text)
-    , _egPreferences :: !(Maybe EventGadgetPreferences)
-    , _egLink        :: !(Maybe Text)
-    , _egIconLink    :: !(Maybe Text)
-    , _egWidth       :: !(Maybe (Textual Int32))
-    , _egTitle       :: !(Maybe Text)
-    , _egType        :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventGadget' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'egHeight'
---
--- * 'egDisplay'
---
--- * 'egPreferences'
---
--- * 'egLink'
---
--- * 'egIconLink'
---
--- * 'egWidth'
---
--- * 'egTitle'
---
--- * 'egType'
-eventGadget
-    :: EventGadget
-eventGadget =
-  EventGadget'
-    { _egHeight = Nothing
-    , _egDisplay = Nothing
-    , _egPreferences = Nothing
-    , _egLink = Nothing
-    , _egIconLink = Nothing
-    , _egWidth = Nothing
-    , _egTitle = Nothing
-    , _egType = Nothing
-    }
-
-
--- | The gadget\'s height in pixels. The height must be an integer greater
--- than 0. Optional.
-egHeight :: Lens' EventGadget (Maybe Int32)
-egHeight
-  = lens _egHeight (\ s a -> s{_egHeight = a}) .
-      mapping _Coerce
-
--- | The gadget\'s display mode. Optional. Possible values are: - \"icon\" -
--- The gadget displays next to the event\'s title in the calendar view. -
--- \"chip\" - The gadget displays when the event is clicked.
-egDisplay :: Lens' EventGadget (Maybe Text)
-egDisplay
-  = lens _egDisplay (\ s a -> s{_egDisplay = a})
-
--- | Preferences.
-egPreferences :: Lens' EventGadget (Maybe EventGadgetPreferences)
-egPreferences
-  = lens _egPreferences
-      (\ s a -> s{_egPreferences = a})
-
--- | The gadget\'s URL. The URL scheme must be HTTPS.
-egLink :: Lens' EventGadget (Maybe Text)
-egLink = lens _egLink (\ s a -> s{_egLink = a})
-
--- | The gadget\'s icon URL. The URL scheme must be HTTPS.
-egIconLink :: Lens' EventGadget (Maybe Text)
-egIconLink
-  = lens _egIconLink (\ s a -> s{_egIconLink = a})
-
--- | The gadget\'s width in pixels. The width must be an integer greater than
--- 0. Optional.
-egWidth :: Lens' EventGadget (Maybe Int32)
-egWidth
-  = lens _egWidth (\ s a -> s{_egWidth = a}) .
-      mapping _Coerce
-
--- | The gadget\'s title.
-egTitle :: Lens' EventGadget (Maybe Text)
-egTitle = lens _egTitle (\ s a -> s{_egTitle = a})
-
--- | The gadget\'s type.
-egType :: Lens' EventGadget (Maybe Text)
-egType = lens _egType (\ s a -> s{_egType = a})
-
-instance FromJSON EventGadget where
-        parseJSON
-          = withObject "EventGadget"
-              (\ o ->
-                 EventGadget' <$>
-                   (o .:? "height") <*> (o .:? "display") <*>
-                     (o .:? "preferences")
-                     <*> (o .:? "link")
-                     <*> (o .:? "iconLink")
-                     <*> (o .:? "width")
-                     <*> (o .:? "title")
-                     <*> (o .:? "type"))
-
-instance ToJSON EventGadget where
-        toJSON EventGadget'{..}
-          = object
-              (catMaybes
-                 [("height" .=) <$> _egHeight,
-                  ("display" .=) <$> _egDisplay,
-                  ("preferences" .=) <$> _egPreferences,
-                  ("link" .=) <$> _egLink,
-                  ("iconLink" .=) <$> _egIconLink,
-                  ("width" .=) <$> _egWidth, ("title" .=) <$> _egTitle,
-                  ("type" .=) <$> _egType])
-
--- | Preferences.
---
--- /See:/ 'eventGadgetPreferences' smart constructor.
-newtype EventGadgetPreferences =
-  EventGadgetPreferences'
-    { _egpAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventGadgetPreferences' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'egpAddtional'
-eventGadgetPreferences
-    :: HashMap Text Text -- ^ 'egpAddtional'
-    -> EventGadgetPreferences
-eventGadgetPreferences pEgpAddtional_ =
-  EventGadgetPreferences' {_egpAddtional = _Coerce # pEgpAddtional_}
-
-
--- | The preference name and corresponding value.
-egpAddtional :: Lens' EventGadgetPreferences (HashMap Text Text)
-egpAddtional
-  = lens _egpAddtional (\ s a -> s{_egpAddtional = a})
-      . _Coerce
-
-instance FromJSON EventGadgetPreferences where
-        parseJSON
-          = withObject "EventGadgetPreferences"
-              (\ o ->
-                 EventGadgetPreferences' <$> (parseJSONObject o))
-
-instance ToJSON EventGadgetPreferences where
-        toJSON = toJSON . _egpAddtional
-
---
--- /See:/ 'freeBusyRequest' smart constructor.
-data FreeBusyRequest =
-  FreeBusyRequest'
-    { _fCalendarExpansionMax :: !(Maybe (Textual Int32))
-    , _fTimeMin              :: !(Maybe DateTime')
-    , _fItems                :: !(Maybe [FreeBusyRequestItem])
-    , _fGroupExpansionMax    :: !(Maybe (Textual Int32))
-    , _fTimeZone             :: !Text
-    , _fTimeMax              :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fCalendarExpansionMax'
---
--- * 'fTimeMin'
---
--- * 'fItems'
---
--- * 'fGroupExpansionMax'
---
--- * 'fTimeZone'
---
--- * 'fTimeMax'
-freeBusyRequest
-    :: FreeBusyRequest
-freeBusyRequest =
-  FreeBusyRequest'
-    { _fCalendarExpansionMax = Nothing
-    , _fTimeMin = Nothing
-    , _fItems = Nothing
-    , _fGroupExpansionMax = Nothing
-    , _fTimeZone = "UTC"
-    , _fTimeMax = Nothing
-    }
-
-
--- | Maximal number of calendars for which FreeBusy information is to be
--- provided. Optional. Maximum value is 50.
-fCalendarExpansionMax :: Lens' FreeBusyRequest (Maybe Int32)
-fCalendarExpansionMax
-  = lens _fCalendarExpansionMax
-      (\ s a -> s{_fCalendarExpansionMax = a})
-      . mapping _Coerce
-
--- | The start of the interval for the query formatted as per RFC3339.
-fTimeMin :: Lens' FreeBusyRequest (Maybe UTCTime)
-fTimeMin
-  = lens _fTimeMin (\ s a -> s{_fTimeMin = a}) .
-      mapping _DateTime
-
--- | List of calendars and\/or groups to query.
-fItems :: Lens' FreeBusyRequest [FreeBusyRequestItem]
-fItems
-  = lens _fItems (\ s a -> s{_fItems = a}) . _Default .
-      _Coerce
-
--- | Maximal number of calendar identifiers to be provided for a single
--- group. Optional. An error is returned for a group with more members than
--- this value. Maximum value is 100.
-fGroupExpansionMax :: Lens' FreeBusyRequest (Maybe Int32)
-fGroupExpansionMax
-  = lens _fGroupExpansionMax
-      (\ s a -> s{_fGroupExpansionMax = a})
-      . mapping _Coerce
-
--- | Time zone used in the response. Optional. The default is UTC.
-fTimeZone :: Lens' FreeBusyRequest Text
-fTimeZone
-  = lens _fTimeZone (\ s a -> s{_fTimeZone = a})
-
--- | The end of the interval for the query formatted as per RFC3339.
-fTimeMax :: Lens' FreeBusyRequest (Maybe UTCTime)
-fTimeMax
-  = lens _fTimeMax (\ s a -> s{_fTimeMax = a}) .
-      mapping _DateTime
-
-instance FromJSON FreeBusyRequest where
-        parseJSON
-          = withObject "FreeBusyRequest"
-              (\ o ->
-                 FreeBusyRequest' <$>
-                   (o .:? "calendarExpansionMax") <*> (o .:? "timeMin")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "groupExpansionMax")
-                     <*> (o .:? "timeZone" .!= "UTC")
-                     <*> (o .:? "timeMax"))
-
-instance ToJSON FreeBusyRequest where
-        toJSON FreeBusyRequest'{..}
-          = object
-              (catMaybes
-                 [("calendarExpansionMax" .=) <$>
-                    _fCalendarExpansionMax,
-                  ("timeMin" .=) <$> _fTimeMin,
-                  ("items" .=) <$> _fItems,
-                  ("groupExpansionMax" .=) <$> _fGroupExpansionMax,
-                  Just ("timeZone" .= _fTimeZone),
-                  ("timeMax" .=) <$> _fTimeMax])
-
---
--- /See:/ 'aclRule' smart constructor.
-data ACLRule =
-  ACLRule'
-    { _arEtag  :: !(Maybe Text)
-    , _arKind  :: !Text
-    , _arRole  :: !(Maybe Text)
-    , _arScope :: !(Maybe ACLRuleScope)
-    , _arId    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'arEtag'
---
--- * 'arKind'
---
--- * 'arRole'
---
--- * 'arScope'
---
--- * 'arId'
-aclRule
-    :: ACLRule
-aclRule =
-  ACLRule'
-    { _arEtag = Nothing
-    , _arKind = "calendar#aclRule"
-    , _arRole = Nothing
-    , _arScope = Nothing
-    , _arId = Nothing
-    }
-
-
--- | ETag of the resource.
-arEtag :: Lens' ACLRule (Maybe Text)
-arEtag = lens _arEtag (\ s a -> s{_arEtag = a})
-
--- | Type of the resource (\"calendar#aclRule\").
-arKind :: Lens' ACLRule Text
-arKind = lens _arKind (\ s a -> s{_arKind = a})
-
--- | The role assigned to the scope. Possible values are: - \"none\" -
--- Provides no access. - \"freeBusyReader\" - Provides read access to
--- free\/busy information. - \"reader\" - Provides read access to the
--- calendar. Private events will appear to users with reader access, but
--- event details will be hidden. - \"writer\" - Provides read and write
--- access to the calendar. Private events will appear to users with writer
--- access, and event details will be visible. - \"owner\" - Provides
--- ownership of the calendar. This role has all of the permissions of the
--- writer role with the additional ability to see and manipulate ACLs.
-arRole :: Lens' ACLRule (Maybe Text)
-arRole = lens _arRole (\ s a -> s{_arRole = a})
-
--- | The scope of the rule.
-arScope :: Lens' ACLRule (Maybe ACLRuleScope)
-arScope = lens _arScope (\ s a -> s{_arScope = a})
-
--- | Identifier of the ACL rule.
-arId :: Lens' ACLRule (Maybe Text)
-arId = lens _arId (\ s a -> s{_arId = a})
-
-instance FromJSON ACLRule where
-        parseJSON
-          = withObject "ACLRule"
-              (\ o ->
-                 ACLRule' <$>
-                   (o .:? "etag") <*>
-                     (o .:? "kind" .!= "calendar#aclRule")
-                     <*> (o .:? "role")
-                     <*> (o .:? "scope")
-                     <*> (o .:? "id"))
-
-instance ToJSON ACLRule where
-        toJSON ACLRule'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _arEtag, Just ("kind" .= _arKind),
-                  ("role" .=) <$> _arRole, ("scope" .=) <$> _arScope,
-                  ("id" .=) <$> _arId])
-
---
--- /See:/ 'createConferenceRequest' smart constructor.
-data CreateConferenceRequest =
-  CreateConferenceRequest'
-    { _ccrStatus                :: !(Maybe ConferenceRequestStatus)
-    , _ccrRequestId             :: !(Maybe Text)
-    , _ccrConferenceSolutionKey :: !(Maybe ConferenceSolutionKey)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateConferenceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccrStatus'
---
--- * 'ccrRequestId'
---
--- * 'ccrConferenceSolutionKey'
-createConferenceRequest
-    :: CreateConferenceRequest
-createConferenceRequest =
-  CreateConferenceRequest'
-    { _ccrStatus = Nothing
-    , _ccrRequestId = Nothing
-    , _ccrConferenceSolutionKey = Nothing
-    }
-
-
--- | The status of the conference create request.
-ccrStatus :: Lens' CreateConferenceRequest (Maybe ConferenceRequestStatus)
-ccrStatus
-  = lens _ccrStatus (\ s a -> s{_ccrStatus = a})
-
--- | The client-generated unique ID for this request. Clients should
--- regenerate this ID for every new request. If an ID provided is the same
--- as for the previous request, the request is ignored.
-ccrRequestId :: Lens' CreateConferenceRequest (Maybe Text)
-ccrRequestId
-  = lens _ccrRequestId (\ s a -> s{_ccrRequestId = a})
-
--- | The conference solution, such as Hangouts or Hangouts Meet.
-ccrConferenceSolutionKey :: Lens' CreateConferenceRequest (Maybe ConferenceSolutionKey)
-ccrConferenceSolutionKey
-  = lens _ccrConferenceSolutionKey
-      (\ s a -> s{_ccrConferenceSolutionKey = a})
-
-instance FromJSON CreateConferenceRequest where
-        parseJSON
-          = withObject "CreateConferenceRequest"
-              (\ o ->
-                 CreateConferenceRequest' <$>
-                   (o .:? "status") <*> (o .:? "requestId") <*>
-                     (o .:? "conferenceSolutionKey"))
-
-instance ToJSON CreateConferenceRequest where
-        toJSON CreateConferenceRequest'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _ccrStatus,
-                  ("requestId" .=) <$> _ccrRequestId,
-                  ("conferenceSolutionKey" .=) <$>
-                    _ccrConferenceSolutionKey])
-
--- | Properties that are shared between copies of the event on other
--- attendees\' calendars.
---
--- /See:/ 'eventExtendedPropertiesShared' smart constructor.
-newtype EventExtendedPropertiesShared =
-  EventExtendedPropertiesShared'
-    { _eepsAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventExtendedPropertiesShared' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eepsAddtional'
-eventExtendedPropertiesShared
-    :: HashMap Text Text -- ^ 'eepsAddtional'
-    -> EventExtendedPropertiesShared
-eventExtendedPropertiesShared pEepsAddtional_ =
-  EventExtendedPropertiesShared' {_eepsAddtional = _Coerce # pEepsAddtional_}
-
-
--- | The name of the shared property and the corresponding value.
-eepsAddtional :: Lens' EventExtendedPropertiesShared (HashMap Text Text)
-eepsAddtional
-  = lens _eepsAddtional
-      (\ s a -> s{_eepsAddtional = a})
-      . _Coerce
-
-instance FromJSON EventExtendedPropertiesShared where
-        parseJSON
-          = withObject "EventExtendedPropertiesShared"
-              (\ o ->
-                 EventExtendedPropertiesShared' <$>
-                   (parseJSONObject o))
-
-instance ToJSON EventExtendedPropertiesShared where
-        toJSON = toJSON . _eepsAddtional
-
--- | List of free\/busy information for calendars.
---
--- /See:/ 'freeBusyResponseCalendars' smart constructor.
-newtype FreeBusyResponseCalendars =
-  FreeBusyResponseCalendars'
-    { _fbrcAddtional :: HashMap Text FreeBusyCalendar
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyResponseCalendars' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbrcAddtional'
-freeBusyResponseCalendars
-    :: HashMap Text FreeBusyCalendar -- ^ 'fbrcAddtional'
-    -> FreeBusyResponseCalendars
-freeBusyResponseCalendars pFbrcAddtional_ =
-  FreeBusyResponseCalendars' {_fbrcAddtional = _Coerce # pFbrcAddtional_}
-
-
--- | Free\/busy expansions for a single calendar.
-fbrcAddtional :: Lens' FreeBusyResponseCalendars (HashMap Text FreeBusyCalendar)
-fbrcAddtional
-  = lens _fbrcAddtional
-      (\ s a -> s{_fbrcAddtional = a})
-      . _Coerce
-
-instance FromJSON FreeBusyResponseCalendars where
-        parseJSON
-          = withObject "FreeBusyResponseCalendars"
-              (\ o ->
-                 FreeBusyResponseCalendars' <$> (parseJSONObject o))
-
-instance ToJSON FreeBusyResponseCalendars where
-        toJSON = toJSON . _fbrcAddtional
-
---
--- /See:/ 'acl' smart constructor.
-data ACL =
-  ACL'
-    { _aEtag          :: !(Maybe Text)
-    , _aNextPageToken :: !(Maybe Text)
-    , _aKind          :: !Text
-    , _aItems         :: !(Maybe [ACLRule])
-    , _aNextSyncToken :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACL' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aEtag'
---
--- * 'aNextPageToken'
---
--- * 'aKind'
---
--- * 'aItems'
---
--- * 'aNextSyncToken'
-acl
-    :: ACL
-acl =
-  ACL'
-    { _aEtag = Nothing
-    , _aNextPageToken = Nothing
-    , _aKind = "calendar#acl"
-    , _aItems = Nothing
-    , _aNextSyncToken = Nothing
-    }
-
-
--- | ETag of the collection.
-aEtag :: Lens' ACL (Maybe Text)
-aEtag = lens _aEtag (\ s a -> s{_aEtag = a})
-
--- | Token used to access the next page of this result. Omitted if no further
--- results are available, in which case nextSyncToken is provided.
-aNextPageToken :: Lens' ACL (Maybe Text)
-aNextPageToken
-  = lens _aNextPageToken
-      (\ s a -> s{_aNextPageToken = a})
-
--- | Type of the collection (\"calendar#acl\").
-aKind :: Lens' ACL Text
-aKind = lens _aKind (\ s a -> s{_aKind = a})
-
--- | List of rules on the access control list.
-aItems :: Lens' ACL [ACLRule]
-aItems
-  = lens _aItems (\ s a -> s{_aItems = a}) . _Default .
-      _Coerce
-
--- | Token used at a later point in time to retrieve only the entries that
--- have changed since this result was returned. Omitted if further results
--- are available, in which case nextPageToken is provided.
-aNextSyncToken :: Lens' ACL (Maybe Text)
-aNextSyncToken
-  = lens _aNextSyncToken
-      (\ s a -> s{_aNextSyncToken = a})
-
-instance FromJSON ACL where
-        parseJSON
-          = withObject "ACL"
-              (\ o ->
-                 ACL' <$>
-                   (o .:? "etag") <*> (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "calendar#acl")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "nextSyncToken"))
-
-instance ToJSON ACL where
-        toJSON ACL'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _aEtag,
-                  ("nextPageToken" .=) <$> _aNextPageToken,
-                  Just ("kind" .= _aKind), ("items" .=) <$> _aItems,
-                  ("nextSyncToken" .=) <$> _aNextSyncToken])
-
---
--- /See:/ 'colors' smart constructor.
-data Colors =
-  Colors'
-    { _colEvent    :: !(Maybe ColorsEvent)
-    , _colKind     :: !Text
-    , _colCalendar :: !(Maybe ColorsCalendar)
-    , _colUpdated  :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Colors' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'colEvent'
---
--- * 'colKind'
---
--- * 'colCalendar'
---
--- * 'colUpdated'
-colors
-    :: Colors
-colors =
-  Colors'
-    { _colEvent = Nothing
-    , _colKind = "calendar#colors"
-    , _colCalendar = Nothing
-    , _colUpdated = Nothing
-    }
-
-
--- | A global palette of event colors, mapping from the color ID to its
--- definition. An event resource may refer to one of these color IDs in its
--- color field. Read-only.
-colEvent :: Lens' Colors (Maybe ColorsEvent)
-colEvent = lens _colEvent (\ s a -> s{_colEvent = a})
-
--- | Type of the resource (\"calendar#colors\").
-colKind :: Lens' Colors Text
-colKind = lens _colKind (\ s a -> s{_colKind = a})
-
--- | A global palette of calendar colors, mapping from the color ID to its
--- definition. A calendarListEntry resource refers to one of these color
--- IDs in its color field. Read-only.
-colCalendar :: Lens' Colors (Maybe ColorsCalendar)
-colCalendar
-  = lens _colCalendar (\ s a -> s{_colCalendar = a})
-
--- | Last modification time of the color palette (as a RFC3339 timestamp).
--- Read-only.
-colUpdated :: Lens' Colors (Maybe UTCTime)
-colUpdated
-  = lens _colUpdated (\ s a -> s{_colUpdated = a}) .
-      mapping _DateTime
-
-instance FromJSON Colors where
-        parseJSON
-          = withObject "Colors"
-              (\ o ->
-                 Colors' <$>
-                   (o .:? "event") <*>
-                     (o .:? "kind" .!= "calendar#colors")
-                     <*> (o .:? "calendar")
-                     <*> (o .:? "updated"))
-
-instance ToJSON Colors where
-        toJSON Colors'{..}
-          = object
-              (catMaybes
-                 [("event" .=) <$> _colEvent,
-                  Just ("kind" .= _colKind),
-                  ("calendar" .=) <$> _colCalendar,
-                  ("updated" .=) <$> _colUpdated])
-
---
--- /See:/ 'freeBusyGroup' smart constructor.
-data FreeBusyGroup =
-  FreeBusyGroup'
-    { _fbgCalendars :: !(Maybe [Text])
-    , _fbgErrors    :: !(Maybe [Error'])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbgCalendars'
---
--- * 'fbgErrors'
-freeBusyGroup
-    :: FreeBusyGroup
-freeBusyGroup = FreeBusyGroup' {_fbgCalendars = Nothing, _fbgErrors = Nothing}
-
-
--- | List of calendars\' identifiers within a group.
-fbgCalendars :: Lens' FreeBusyGroup [Text]
-fbgCalendars
-  = lens _fbgCalendars (\ s a -> s{_fbgCalendars = a})
-      . _Default
-      . _Coerce
-
--- | Optional error(s) (if computation for the group failed).
-fbgErrors :: Lens' FreeBusyGroup [Error']
-fbgErrors
-  = lens _fbgErrors (\ s a -> s{_fbgErrors = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON FreeBusyGroup where
-        parseJSON
-          = withObject "FreeBusyGroup"
-              (\ o ->
-                 FreeBusyGroup' <$>
-                   (o .:? "calendars" .!= mempty) <*>
-                     (o .:? "errors" .!= mempty))
-
-instance ToJSON FreeBusyGroup where
-        toJSON FreeBusyGroup'{..}
-          = object
-              (catMaybes
-                 [("calendars" .=) <$> _fbgCalendars,
-                  ("errors" .=) <$> _fbgErrors])
-
---
--- /See:/ 'conferenceParametersAddOnParameters' smart constructor.
-newtype ConferenceParametersAddOnParameters =
-  ConferenceParametersAddOnParameters'
-    { _cpaopParameters :: Maybe ConferenceParametersAddOnParametersParameters
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConferenceParametersAddOnParameters' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpaopParameters'
-conferenceParametersAddOnParameters
-    :: ConferenceParametersAddOnParameters
-conferenceParametersAddOnParameters =
-  ConferenceParametersAddOnParameters' {_cpaopParameters = Nothing}
-
-
-cpaopParameters :: Lens' ConferenceParametersAddOnParameters (Maybe ConferenceParametersAddOnParametersParameters)
-cpaopParameters
-  = lens _cpaopParameters
-      (\ s a -> s{_cpaopParameters = a})
-
-instance FromJSON ConferenceParametersAddOnParameters
-         where
-        parseJSON
-          = withObject "ConferenceParametersAddOnParameters"
-              (\ o ->
-                 ConferenceParametersAddOnParameters' <$>
-                   (o .:? "parameters"))
-
-instance ToJSON ConferenceParametersAddOnParameters
-         where
-        toJSON ConferenceParametersAddOnParameters'{..}
-          = object
-              (catMaybes [("parameters" .=) <$> _cpaopParameters])
-
--- | Source from which the event was created. For example, a web page, an
--- email message or any document identifiable by an URL with HTTP or HTTPS
--- scheme. Can only be seen or modified by the creator of the event.
---
--- /See:/ 'eventSource' smart constructor.
-data EventSource =
-  EventSource'
-    { _esURL   :: !(Maybe Text)
-    , _esTitle :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventSource' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'esURL'
---
--- * 'esTitle'
-eventSource
-    :: EventSource
-eventSource = EventSource' {_esURL = Nothing, _esTitle = Nothing}
-
-
--- | URL of the source pointing to a resource. The URL scheme must be HTTP or
--- HTTPS.
-esURL :: Lens' EventSource (Maybe Text)
-esURL = lens _esURL (\ s a -> s{_esURL = a})
-
--- | Title of the source; for example a title of a web page or an email
--- subject.
-esTitle :: Lens' EventSource (Maybe Text)
-esTitle = lens _esTitle (\ s a -> s{_esTitle = a})
-
-instance FromJSON EventSource where
-        parseJSON
-          = withObject "EventSource"
-              (\ o ->
-                 EventSource' <$> (o .:? "url") <*> (o .:? "title"))
-
-instance ToJSON EventSource where
-        toJSON EventSource'{..}
-          = object
-              (catMaybes
-                 [("url" .=) <$> _esURL, ("title" .=) <$> _esTitle])
diff --git a/gen/Network/Google/AppsCalendar/Types/Sum.hs b/gen/Network/Google/AppsCalendar/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/Google/AppsCalendar/Types/Sum.hs
+++ /dev/null
@@ -1,382 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.AppsCalendar.Types.Sum
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.AppsCalendar.Types.Sum where
-
-import           Network.Google.Prelude hiding (Bytes)
-
--- | Guests who should receive notifications about the event update (for
--- example, title changes, etc.).
-data EventsPatchSendUpdates
-    = All
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | ExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | None
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsPatchSendUpdates
-
-instance FromHttpApiData EventsPatchSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right All
-        "externalOnly" -> Right ExternalOnly
-        "none" -> Right None
-        x -> Left ("Unable to parse EventsPatchSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsPatchSendUpdates where
-    toQueryParam = \case
-        All -> "all"
-        ExternalOnly -> "externalOnly"
-        None -> "none"
-
-instance FromJSON EventsPatchSendUpdates where
-    parseJSON = parseJSONText "EventsPatchSendUpdates"
-
-instance ToJSON EventsPatchSendUpdates where
-    toJSON = toJSONText
-
--- | Guests who should receive notifications about the creation of the new
--- event.
-data EventsQuickAddSendUpdates
-    = EQASUAll
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | EQASUExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | EQASUNone
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsQuickAddSendUpdates
-
-instance FromHttpApiData EventsQuickAddSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right EQASUAll
-        "externalOnly" -> Right EQASUExternalOnly
-        "none" -> Right EQASUNone
-        x -> Left ("Unable to parse EventsQuickAddSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsQuickAddSendUpdates where
-    toQueryParam = \case
-        EQASUAll -> "all"
-        EQASUExternalOnly -> "externalOnly"
-        EQASUNone -> "none"
-
-instance FromJSON EventsQuickAddSendUpdates where
-    parseJSON = parseJSONText "EventsQuickAddSendUpdates"
-
-instance ToJSON EventsQuickAddSendUpdates where
-    toJSON = toJSONText
-
--- | Guests who should receive notifications about the event update (for
--- example, title changes, etc.).
-data EventsUpdateSendUpdates
-    = EUSUAll
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | EUSUExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | EUSUNone
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsUpdateSendUpdates
-
-instance FromHttpApiData EventsUpdateSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right EUSUAll
-        "externalOnly" -> Right EUSUExternalOnly
-        "none" -> Right EUSUNone
-        x -> Left ("Unable to parse EventsUpdateSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsUpdateSendUpdates where
-    toQueryParam = \case
-        EUSUAll -> "all"
-        EUSUExternalOnly -> "externalOnly"
-        EUSUNone -> "none"
-
-instance FromJSON EventsUpdateSendUpdates where
-    parseJSON = parseJSONText "EventsUpdateSendUpdates"
-
-instance ToJSON EventsUpdateSendUpdates where
-    toJSON = toJSONText
-
--- | Guests who should receive notifications about the change of the event\'s
--- organizer.
-data EventsMoveSendUpdates
-    = EMSUAll
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | EMSUExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | EMSUNone
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsMoveSendUpdates
-
-instance FromHttpApiData EventsMoveSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right EMSUAll
-        "externalOnly" -> Right EMSUExternalOnly
-        "none" -> Right EMSUNone
-        x -> Left ("Unable to parse EventsMoveSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsMoveSendUpdates where
-    toQueryParam = \case
-        EMSUAll -> "all"
-        EMSUExternalOnly -> "externalOnly"
-        EMSUNone -> "none"
-
-instance FromJSON EventsMoveSendUpdates where
-    parseJSON = parseJSONText "EventsMoveSendUpdates"
-
-instance ToJSON EventsMoveSendUpdates where
-    toJSON = toJSONText
-
--- | The order of the events returned in the result. Optional. The default is
--- an unspecified, stable order.
-data EventsListOrderBy
-    = StartTime
-      -- ^ @startTime@
-      -- Order by the start date\/time (ascending). This is only available when
-      -- querying single events (i.e. the parameter singleEvents is True)
-    | Updated
-      -- ^ @updated@
-      -- Order by last modification time (ascending).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsListOrderBy
-
-instance FromHttpApiData EventsListOrderBy where
-    parseQueryParam = \case
-        "startTime" -> Right StartTime
-        "updated" -> Right Updated
-        x -> Left ("Unable to parse EventsListOrderBy from: " <> x)
-
-instance ToHttpApiData EventsListOrderBy where
-    toQueryParam = \case
-        StartTime -> "startTime"
-        Updated -> "updated"
-
-instance FromJSON EventsListOrderBy where
-    parseJSON = parseJSONText "EventsListOrderBy"
-
-instance ToJSON EventsListOrderBy where
-    toJSON = toJSONText
-
--- | Guests who should receive notifications about the deletion of the event.
-data EventsDeleteSendUpdates
-    = EDSUAll
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | EDSUExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | EDSUNone
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsDeleteSendUpdates
-
-instance FromHttpApiData EventsDeleteSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right EDSUAll
-        "externalOnly" -> Right EDSUExternalOnly
-        "none" -> Right EDSUNone
-        x -> Left ("Unable to parse EventsDeleteSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsDeleteSendUpdates where
-    toQueryParam = \case
-        EDSUAll -> "all"
-        EDSUExternalOnly -> "externalOnly"
-        EDSUNone -> "none"
-
-instance FromJSON EventsDeleteSendUpdates where
-    parseJSON = parseJSONText "EventsDeleteSendUpdates"
-
-instance ToJSON EventsDeleteSendUpdates where
-    toJSON = toJSONText
-
--- | Whether to send notifications about the creation of the new event. Note
--- that some emails might still be sent. The default is false.
-data EventsInsertSendUpdates
-    = EISUAll
-      -- ^ @all@
-      -- Notifications are sent to all guests.
-    | EISUExternalOnly
-      -- ^ @externalOnly@
-      -- Notifications are sent to non-Google Calendar guests only.
-    | EISUNone
-      -- ^ @none@
-      -- No notifications are sent. This value should only be used for migration
-      -- use cases (note that in most migration cases the import method should be
-      -- used).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsInsertSendUpdates
-
-instance FromHttpApiData EventsInsertSendUpdates where
-    parseQueryParam = \case
-        "all" -> Right EISUAll
-        "externalOnly" -> Right EISUExternalOnly
-        "none" -> Right EISUNone
-        x -> Left ("Unable to parse EventsInsertSendUpdates from: " <> x)
-
-instance ToHttpApiData EventsInsertSendUpdates where
-    toQueryParam = \case
-        EISUAll -> "all"
-        EISUExternalOnly -> "externalOnly"
-        EISUNone -> "none"
-
-instance FromJSON EventsInsertSendUpdates where
-    parseJSON = parseJSONText "EventsInsertSendUpdates"
-
-instance ToJSON EventsInsertSendUpdates where
-    toJSON = toJSONText
-
--- | The minimum access role for the user in the returned entries. Optional.
--- The default is no restriction.
-data CalendarListListMinAccessRole
-    = FreeBusyReader
-      -- ^ @freeBusyReader@
-      -- The user can read free\/busy information.
-    | Owner
-      -- ^ @owner@
-      -- The user can read and modify events and access control lists.
-    | Reader
-      -- ^ @reader@
-      -- The user can read events that are not private.
-    | Writer
-      -- ^ @writer@
-      -- The user can read and modify events.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CalendarListListMinAccessRole
-
-instance FromHttpApiData CalendarListListMinAccessRole where
-    parseQueryParam = \case
-        "freeBusyReader" -> Right FreeBusyReader
-        "owner" -> Right Owner
-        "reader" -> Right Reader
-        "writer" -> Right Writer
-        x -> Left ("Unable to parse CalendarListListMinAccessRole from: " <> x)
-
-instance ToHttpApiData CalendarListListMinAccessRole where
-    toQueryParam = \case
-        FreeBusyReader -> "freeBusyReader"
-        Owner -> "owner"
-        Reader -> "reader"
-        Writer -> "writer"
-
-instance FromJSON CalendarListListMinAccessRole where
-    parseJSON = parseJSONText "CalendarListListMinAccessRole"
-
-instance ToJSON CalendarListListMinAccessRole where
-    toJSON = toJSONText
-
--- | The order of the events returned in the result. Optional. The default is
--- an unspecified, stable order.
-data EventsWatchOrderBy
-    = EWOBStartTime
-      -- ^ @startTime@
-      -- Order by the start date\/time (ascending). This is only available when
-      -- querying single events (i.e. the parameter singleEvents is True)
-    | EWOBUpdated
-      -- ^ @updated@
-      -- Order by last modification time (ascending).
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable EventsWatchOrderBy
-
-instance FromHttpApiData EventsWatchOrderBy where
-    parseQueryParam = \case
-        "startTime" -> Right EWOBStartTime
-        "updated" -> Right EWOBUpdated
-        x -> Left ("Unable to parse EventsWatchOrderBy from: " <> x)
-
-instance ToHttpApiData EventsWatchOrderBy where
-    toQueryParam = \case
-        EWOBStartTime -> "startTime"
-        EWOBUpdated -> "updated"
-
-instance FromJSON EventsWatchOrderBy where
-    parseJSON = parseJSONText "EventsWatchOrderBy"
-
-instance ToJSON EventsWatchOrderBy where
-    toJSON = toJSONText
-
--- | The minimum access role for the user in the returned entries. Optional.
--- The default is no restriction.
-data CalendarListWatchMinAccessRole
-    = CLWMARFreeBusyReader
-      -- ^ @freeBusyReader@
-      -- The user can read free\/busy information.
-    | CLWMAROwner
-      -- ^ @owner@
-      -- The user can read and modify events and access control lists.
-    | CLWMARReader
-      -- ^ @reader@
-      -- The user can read events that are not private.
-    | CLWMARWriter
-      -- ^ @writer@
-      -- The user can read and modify events.
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CalendarListWatchMinAccessRole
-
-instance FromHttpApiData CalendarListWatchMinAccessRole where
-    parseQueryParam = \case
-        "freeBusyReader" -> Right CLWMARFreeBusyReader
-        "owner" -> Right CLWMAROwner
-        "reader" -> Right CLWMARReader
-        "writer" -> Right CLWMARWriter
-        x -> Left ("Unable to parse CalendarListWatchMinAccessRole from: " <> x)
-
-instance ToHttpApiData CalendarListWatchMinAccessRole where
-    toQueryParam = \case
-        CLWMARFreeBusyReader -> "freeBusyReader"
-        CLWMAROwner -> "owner"
-        CLWMARReader -> "reader"
-        CLWMARWriter -> "writer"
-
-instance FromJSON CalendarListWatchMinAccessRole where
-    parseJSON = parseJSONText "CalendarListWatchMinAccessRole"
-
-instance ToJSON CalendarListWatchMinAccessRole where
-    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Delete.hs b/gen/Network/Google/Resource/Calendar/ACL/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Delete.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Delete
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes an access control rule.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.delete@.
-module Network.Google.Resource.Calendar.ACL.Delete
-    (
-    -- * REST Resource
-      ACLDeleteResource
-
-    -- * Creating a Request
-    , aclDelete
-    , ACLDelete
-
-    -- * Request Lenses
-    , adCalendarId
-    , adRuleId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.delete@ method which the
--- 'ACLDelete' request conforms to.
-type ACLDeleteResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               Capture "ruleId" Text :>
-                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes an access control rule.
---
--- /See:/ 'aclDelete' smart constructor.
-data ACLDelete =
-  ACLDelete'
-    { _adCalendarId :: !Text
-    , _adRuleId     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adCalendarId'
---
--- * 'adRuleId'
-aclDelete
-    :: Text -- ^ 'adCalendarId'
-    -> Text -- ^ 'adRuleId'
-    -> ACLDelete
-aclDelete pAdCalendarId_ pAdRuleId_ =
-  ACLDelete' {_adCalendarId = pAdCalendarId_, _adRuleId = pAdRuleId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-adCalendarId :: Lens' ACLDelete Text
-adCalendarId
-  = lens _adCalendarId (\ s a -> s{_adCalendarId = a})
-
--- | ACL rule identifier.
-adRuleId :: Lens' ACLDelete Text
-adRuleId = lens _adRuleId (\ s a -> s{_adRuleId = a})
-
-instance GoogleRequest ACLDelete where
-        type Rs ACLDelete = ()
-        type Scopes ACLDelete =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLDelete'{..}
-          = go _adCalendarId _adRuleId (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Get.hs b/gen/Network/Google/Resource/Calendar/ACL/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Get.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns an access control rule.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.get@.
-module Network.Google.Resource.Calendar.ACL.Get
-    (
-    -- * REST Resource
-      ACLGetResource
-
-    -- * Creating a Request
-    , aclGet
-    , ACLGet
-
-    -- * Request Lenses
-    , agCalendarId
-    , agRuleId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.get@ method which the
--- 'ACLGet' request conforms to.
-type ACLGetResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               Capture "ruleId" Text :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] ACLRule
-
--- | Returns an access control rule.
---
--- /See:/ 'aclGet' smart constructor.
-data ACLGet =
-  ACLGet'
-    { _agCalendarId :: !Text
-    , _agRuleId     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'agCalendarId'
---
--- * 'agRuleId'
-aclGet
-    :: Text -- ^ 'agCalendarId'
-    -> Text -- ^ 'agRuleId'
-    -> ACLGet
-aclGet pAgCalendarId_ pAgRuleId_ =
-  ACLGet' {_agCalendarId = pAgCalendarId_, _agRuleId = pAgRuleId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-agCalendarId :: Lens' ACLGet Text
-agCalendarId
-  = lens _agCalendarId (\ s a -> s{_agCalendarId = a})
-
--- | ACL rule identifier.
-agRuleId :: Lens' ACLGet Text
-agRuleId = lens _agRuleId (\ s a -> s{_agRuleId = a})
-
-instance GoogleRequest ACLGet where
-        type Rs ACLGet = ACLRule
-        type Scopes ACLGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient ACLGet'{..}
-          = go _agCalendarId _agRuleId (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLGetResource) mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Insert.hs b/gen/Network/Google/Resource/Calendar/ACL/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Insert.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Insert
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an access control rule.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.insert@.
-module Network.Google.Resource.Calendar.ACL.Insert
-    (
-    -- * REST Resource
-      ACLInsertResource
-
-    -- * Creating a Request
-    , aclInsert
-    , ACLInsert
-
-    -- * Request Lenses
-    , aiCalendarId
-    , aiPayload
-    , aiSendNotifications
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.insert@ method which the
--- 'ACLInsert' request conforms to.
-type ACLInsertResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               QueryParam "sendNotifications" Bool :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ACLRule :> Post '[JSON] ACLRule
-
--- | Creates an access control rule.
---
--- /See:/ 'aclInsert' smart constructor.
-data ACLInsert =
-  ACLInsert'
-    { _aiCalendarId        :: !Text
-    , _aiPayload           :: !ACLRule
-    , _aiSendNotifications :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aiCalendarId'
---
--- * 'aiPayload'
---
--- * 'aiSendNotifications'
-aclInsert
-    :: Text -- ^ 'aiCalendarId'
-    -> ACLRule -- ^ 'aiPayload'
-    -> ACLInsert
-aclInsert pAiCalendarId_ pAiPayload_ =
-  ACLInsert'
-    { _aiCalendarId = pAiCalendarId_
-    , _aiPayload = pAiPayload_
-    , _aiSendNotifications = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-aiCalendarId :: Lens' ACLInsert Text
-aiCalendarId
-  = lens _aiCalendarId (\ s a -> s{_aiCalendarId = a})
-
--- | Multipart request metadata.
-aiPayload :: Lens' ACLInsert ACLRule
-aiPayload
-  = lens _aiPayload (\ s a -> s{_aiPayload = a})
-
--- | Whether to send notifications about the calendar sharing change.
--- Optional. The default is True.
-aiSendNotifications :: Lens' ACLInsert (Maybe Bool)
-aiSendNotifications
-  = lens _aiSendNotifications
-      (\ s a -> s{_aiSendNotifications = a})
-
-instance GoogleRequest ACLInsert where
-        type Rs ACLInsert = ACLRule
-        type Scopes ACLInsert =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLInsert'{..}
-          = go _aiCalendarId _aiSendNotifications
-              (Just AltJSON)
-              _aiPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/List.hs b/gen/Network/Google/Resource/Calendar/ACL/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/List.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns the rules in the access control list for the calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.list@.
-module Network.Google.Resource.Calendar.ACL.List
-    (
-    -- * REST Resource
-      ACLListResource
-
-    -- * Creating a Request
-    , aclList
-    , ACLList
-
-    -- * Request Lenses
-    , alSyncToken
-    , alCalendarId
-    , alShowDeleted
-    , alPageToken
-    , alMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.list@ method which the
--- 'ACLList' request conforms to.
-type ACLListResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               QueryParam "syncToken" Text :>
-                 QueryParam "showDeleted" Bool :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Int32) :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] ACL
-
--- | Returns the rules in the access control list for the calendar.
---
--- /See:/ 'aclList' smart constructor.
-data ACLList =
-  ACLList'
-    { _alSyncToken   :: !(Maybe Text)
-    , _alCalendarId  :: !Text
-    , _alShowDeleted :: !(Maybe Bool)
-    , _alPageToken   :: !(Maybe Text)
-    , _alMaxResults  :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alSyncToken'
---
--- * 'alCalendarId'
---
--- * 'alShowDeleted'
---
--- * 'alPageToken'
---
--- * 'alMaxResults'
-aclList
-    :: Text -- ^ 'alCalendarId'
-    -> ACLList
-aclList pAlCalendarId_ =
-  ACLList'
-    { _alSyncToken = Nothing
-    , _alCalendarId = pAlCalendarId_
-    , _alShowDeleted = Nothing
-    , _alPageToken = Nothing
-    , _alMaxResults = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. All entries
--- deleted since the previous list request will always be in the result set
--- and it is not allowed to set showDeleted to False. If the syncToken
--- expires, the server will respond with a 410 GONE response code and the
--- client should clear its storage and perform a full synchronization
--- without any syncToken. Learn more about incremental synchronization.
--- Optional. The default is to return all entries.
-alSyncToken :: Lens' ACLList (Maybe Text)
-alSyncToken
-  = lens _alSyncToken (\ s a -> s{_alSyncToken = a})
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-alCalendarId :: Lens' ACLList Text
-alCalendarId
-  = lens _alCalendarId (\ s a -> s{_alCalendarId = a})
-
--- | Whether to include deleted ACLs in the result. Deleted ACLs are
--- represented by role equal to \"none\". Deleted ACLs will always be
--- included if syncToken is provided. Optional. The default is False.
-alShowDeleted :: Lens' ACLList (Maybe Bool)
-alShowDeleted
-  = lens _alShowDeleted
-      (\ s a -> s{_alShowDeleted = a})
-
--- | Token specifying which result page to return. Optional.
-alPageToken :: Lens' ACLList (Maybe Text)
-alPageToken
-  = lens _alPageToken (\ s a -> s{_alPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-alMaxResults :: Lens' ACLList (Maybe Int32)
-alMaxResults
-  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest ACLList where
-        type Rs ACLList = ACL
-        type Scopes ACLList =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLList'{..}
-          = go _alCalendarId _alSyncToken _alShowDeleted
-              _alPageToken
-              _alMaxResults
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLListResource) mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Patch.hs b/gen/Network/Google/Resource/Calendar/ACL/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Patch.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an access control rule. This method supports patch semantics.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.patch@.
-module Network.Google.Resource.Calendar.ACL.Patch
-    (
-    -- * REST Resource
-      ACLPatchResource
-
-    -- * Creating a Request
-    , aclPatch
-    , ACLPatch
-
-    -- * Request Lenses
-    , apCalendarId
-    , apRuleId
-    , apPayload
-    , apSendNotifications
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.patch@ method which the
--- 'ACLPatch' request conforms to.
-type ACLPatchResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               Capture "ruleId" Text :>
-                 QueryParam "sendNotifications" Bool :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] ACLRule :> Patch '[JSON] ACLRule
-
--- | Updates an access control rule. This method supports patch semantics.
---
--- /See:/ 'aclPatch' smart constructor.
-data ACLPatch =
-  ACLPatch'
-    { _apCalendarId        :: !Text
-    , _apRuleId            :: !Text
-    , _apPayload           :: !ACLRule
-    , _apSendNotifications :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apCalendarId'
---
--- * 'apRuleId'
---
--- * 'apPayload'
---
--- * 'apSendNotifications'
-aclPatch
-    :: Text -- ^ 'apCalendarId'
-    -> Text -- ^ 'apRuleId'
-    -> ACLRule -- ^ 'apPayload'
-    -> ACLPatch
-aclPatch pApCalendarId_ pApRuleId_ pApPayload_ =
-  ACLPatch'
-    { _apCalendarId = pApCalendarId_
-    , _apRuleId = pApRuleId_
-    , _apPayload = pApPayload_
-    , _apSendNotifications = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-apCalendarId :: Lens' ACLPatch Text
-apCalendarId
-  = lens _apCalendarId (\ s a -> s{_apCalendarId = a})
-
--- | ACL rule identifier.
-apRuleId :: Lens' ACLPatch Text
-apRuleId = lens _apRuleId (\ s a -> s{_apRuleId = a})
-
--- | Multipart request metadata.
-apPayload :: Lens' ACLPatch ACLRule
-apPayload
-  = lens _apPayload (\ s a -> s{_apPayload = a})
-
--- | Whether to send notifications about the calendar sharing change. Note
--- that there are no notifications on access removal. Optional. The default
--- is True.
-apSendNotifications :: Lens' ACLPatch (Maybe Bool)
-apSendNotifications
-  = lens _apSendNotifications
-      (\ s a -> s{_apSendNotifications = a})
-
-instance GoogleRequest ACLPatch where
-        type Rs ACLPatch = ACLRule
-        type Scopes ACLPatch =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLPatch'{..}
-          = go _apCalendarId _apRuleId _apSendNotifications
-              (Just AltJSON)
-              _apPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Update.hs b/gen/Network/Google/Resource/Calendar/ACL/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Update.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an access control rule.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.update@.
-module Network.Google.Resource.Calendar.ACL.Update
-    (
-    -- * REST Resource
-      ACLUpdateResource
-
-    -- * Creating a Request
-    , aclUpdate
-    , ACLUpdate
-
-    -- * Request Lenses
-    , auCalendarId
-    , auRuleId
-    , auPayload
-    , auSendNotifications
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.update@ method which the
--- 'ACLUpdate' request conforms to.
-type ACLUpdateResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               Capture "ruleId" Text :>
-                 QueryParam "sendNotifications" Bool :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] ACLRule :> Put '[JSON] ACLRule
-
--- | Updates an access control rule.
---
--- /See:/ 'aclUpdate' smart constructor.
-data ACLUpdate =
-  ACLUpdate'
-    { _auCalendarId        :: !Text
-    , _auRuleId            :: !Text
-    , _auPayload           :: !ACLRule
-    , _auSendNotifications :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'auCalendarId'
---
--- * 'auRuleId'
---
--- * 'auPayload'
---
--- * 'auSendNotifications'
-aclUpdate
-    :: Text -- ^ 'auCalendarId'
-    -> Text -- ^ 'auRuleId'
-    -> ACLRule -- ^ 'auPayload'
-    -> ACLUpdate
-aclUpdate pAuCalendarId_ pAuRuleId_ pAuPayload_ =
-  ACLUpdate'
-    { _auCalendarId = pAuCalendarId_
-    , _auRuleId = pAuRuleId_
-    , _auPayload = pAuPayload_
-    , _auSendNotifications = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-auCalendarId :: Lens' ACLUpdate Text
-auCalendarId
-  = lens _auCalendarId (\ s a -> s{_auCalendarId = a})
-
--- | ACL rule identifier.
-auRuleId :: Lens' ACLUpdate Text
-auRuleId = lens _auRuleId (\ s a -> s{_auRuleId = a})
-
--- | Multipart request metadata.
-auPayload :: Lens' ACLUpdate ACLRule
-auPayload
-  = lens _auPayload (\ s a -> s{_auPayload = a})
-
--- | Whether to send notifications about the calendar sharing change. Note
--- that there are no notifications on access removal. Optional. The default
--- is True.
-auSendNotifications :: Lens' ACLUpdate (Maybe Bool)
-auSendNotifications
-  = lens _auSendNotifications
-      (\ s a -> s{_auSendNotifications = a})
-
-instance GoogleRequest ACLUpdate where
-        type Rs ACLUpdate = ACLRule
-        type Scopes ACLUpdate =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLUpdate'{..}
-          = go _auCalendarId _auRuleId _auSendNotifications
-              (Just AltJSON)
-              _auPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Watch.hs b/gen/Network/Google/Resource/Calendar/ACL/Watch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/ACL/Watch.hs
+++ /dev/null
@@ -1,167 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.ACL.Watch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Watch for changes to ACL resources.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.acl.watch@.
-module Network.Google.Resource.Calendar.ACL.Watch
-    (
-    -- * REST Resource
-      ACLWatchResource
-
-    -- * Creating a Request
-    , aclWatch
-    , ACLWatch
-
-    -- * Request Lenses
-    , awSyncToken
-    , awCalendarId
-    , awShowDeleted
-    , awPayload
-    , awPageToken
-    , awMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.acl.watch@ method which the
--- 'ACLWatch' request conforms to.
-type ACLWatchResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "acl" :>
-               "watch" :>
-                 QueryParam "syncToken" Text :>
-                   QueryParam "showDeleted" Bool :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Int32) :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Channel :> Post '[JSON] Channel
-
--- | Watch for changes to ACL resources.
---
--- /See:/ 'aclWatch' smart constructor.
-data ACLWatch =
-  ACLWatch'
-    { _awSyncToken   :: !(Maybe Text)
-    , _awCalendarId  :: !Text
-    , _awShowDeleted :: !(Maybe Bool)
-    , _awPayload     :: !Channel
-    , _awPageToken   :: !(Maybe Text)
-    , _awMaxResults  :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ACLWatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'awSyncToken'
---
--- * 'awCalendarId'
---
--- * 'awShowDeleted'
---
--- * 'awPayload'
---
--- * 'awPageToken'
---
--- * 'awMaxResults'
-aclWatch
-    :: Text -- ^ 'awCalendarId'
-    -> Channel -- ^ 'awPayload'
-    -> ACLWatch
-aclWatch pAwCalendarId_ pAwPayload_ =
-  ACLWatch'
-    { _awSyncToken = Nothing
-    , _awCalendarId = pAwCalendarId_
-    , _awShowDeleted = Nothing
-    , _awPayload = pAwPayload_
-    , _awPageToken = Nothing
-    , _awMaxResults = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. All entries
--- deleted since the previous list request will always be in the result set
--- and it is not allowed to set showDeleted to False. If the syncToken
--- expires, the server will respond with a 410 GONE response code and the
--- client should clear its storage and perform a full synchronization
--- without any syncToken. Learn more about incremental synchronization.
--- Optional. The default is to return all entries.
-awSyncToken :: Lens' ACLWatch (Maybe Text)
-awSyncToken
-  = lens _awSyncToken (\ s a -> s{_awSyncToken = a})
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-awCalendarId :: Lens' ACLWatch Text
-awCalendarId
-  = lens _awCalendarId (\ s a -> s{_awCalendarId = a})
-
--- | Whether to include deleted ACLs in the result. Deleted ACLs are
--- represented by role equal to \"none\". Deleted ACLs will always be
--- included if syncToken is provided. Optional. The default is False.
-awShowDeleted :: Lens' ACLWatch (Maybe Bool)
-awShowDeleted
-  = lens _awShowDeleted
-      (\ s a -> s{_awShowDeleted = a})
-
--- | Multipart request metadata.
-awPayload :: Lens' ACLWatch Channel
-awPayload
-  = lens _awPayload (\ s a -> s{_awPayload = a})
-
--- | Token specifying which result page to return. Optional.
-awPageToken :: Lens' ACLWatch (Maybe Text)
-awPageToken
-  = lens _awPageToken (\ s a -> s{_awPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-awMaxResults :: Lens' ACLWatch (Maybe Int32)
-awMaxResults
-  = lens _awMaxResults (\ s a -> s{_awMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest ACLWatch where
-        type Rs ACLWatch = Channel
-        type Scopes ACLWatch =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient ACLWatch'{..}
-          = go _awCalendarId _awSyncToken _awShowDeleted
-              _awPageToken
-              _awMaxResults
-              (Just AltJSON)
-              _awPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ACLWatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Delete
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Removes a calendar from the user\'s calendar list.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.delete@.
-module Network.Google.Resource.Calendar.CalendarList.Delete
-    (
-    -- * REST Resource
-      CalendarListDeleteResource
-
-    -- * Creating a Request
-    , calendarListDelete
-    , CalendarListDelete
-
-    -- * Request Lenses
-    , cldCalendarId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.delete@ method which the
--- 'CalendarListDelete' request conforms to.
-type CalendarListDeleteResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               Capture "calendarId" Text :>
-                 QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Removes a calendar from the user\'s calendar list.
---
--- /See:/ 'calendarListDelete' smart constructor.
-newtype CalendarListDelete =
-  CalendarListDelete'
-    { _cldCalendarId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cldCalendarId'
-calendarListDelete
-    :: Text -- ^ 'cldCalendarId'
-    -> CalendarListDelete
-calendarListDelete pCldCalendarId_ =
-  CalendarListDelete' {_cldCalendarId = pCldCalendarId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cldCalendarId :: Lens' CalendarListDelete Text
-cldCalendarId
-  = lens _cldCalendarId
-      (\ s a -> s{_cldCalendarId = a})
-
-instance GoogleRequest CalendarListDelete where
-        type Rs CalendarListDelete = ()
-        type Scopes CalendarListDelete =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarListDelete'{..}
-          = go _cldCalendarId (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs
+++ /dev/null
@@ -1,95 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a calendar from the user\'s calendar list.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.get@.
-module Network.Google.Resource.Calendar.CalendarList.Get
-    (
-    -- * REST Resource
-      CalendarListGetResource
-
-    -- * Creating a Request
-    , calendarListGet
-    , CalendarListGet
-
-    -- * Request Lenses
-    , clgCalendarId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.get@ method which the
--- 'CalendarListGet' request conforms to.
-type CalendarListGetResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               Capture "calendarId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   Get '[JSON] CalendarListEntry
-
--- | Returns a calendar from the user\'s calendar list.
---
--- /See:/ 'calendarListGet' smart constructor.
-newtype CalendarListGet =
-  CalendarListGet'
-    { _clgCalendarId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clgCalendarId'
-calendarListGet
-    :: Text -- ^ 'clgCalendarId'
-    -> CalendarListGet
-calendarListGet pClgCalendarId_ =
-  CalendarListGet' {_clgCalendarId = pClgCalendarId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-clgCalendarId :: Lens' CalendarListGet Text
-clgCalendarId
-  = lens _clgCalendarId
-      (\ s a -> s{_clgCalendarId = a})
-
-instance GoogleRequest CalendarListGet where
-        type Rs CalendarListGet = CalendarListEntry
-        type Scopes CalendarListGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient CalendarListGet'{..}
-          = go _clgCalendarId (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Insert
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Inserts an existing calendar into the user\'s calendar list.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.insert@.
-module Network.Google.Resource.Calendar.CalendarList.Insert
-    (
-    -- * REST Resource
-      CalendarListInsertResource
-
-    -- * Creating a Request
-    , calendarListInsert
-    , CalendarListInsert
-
-    -- * Request Lenses
-    , cliPayload
-    , cliColorRgbFormat
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.insert@ method which the
--- 'CalendarListInsert' request conforms to.
-type CalendarListInsertResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               QueryParam "colorRgbFormat" Bool :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] CalendarListEntry :>
-                     Post '[JSON] CalendarListEntry
-
--- | Inserts an existing calendar into the user\'s calendar list.
---
--- /See:/ 'calendarListInsert' smart constructor.
-data CalendarListInsert =
-  CalendarListInsert'
-    { _cliPayload        :: !CalendarListEntry
-    , _cliColorRgbFormat :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cliPayload'
---
--- * 'cliColorRgbFormat'
-calendarListInsert
-    :: CalendarListEntry -- ^ 'cliPayload'
-    -> CalendarListInsert
-calendarListInsert pCliPayload_ =
-  CalendarListInsert' {_cliPayload = pCliPayload_, _cliColorRgbFormat = Nothing}
-
-
--- | Multipart request metadata.
-cliPayload :: Lens' CalendarListInsert CalendarListEntry
-cliPayload
-  = lens _cliPayload (\ s a -> s{_cliPayload = a})
-
--- | Whether to use the foregroundColor and backgroundColor fields to write
--- the calendar colors (RGB). If this feature is used, the index-based
--- colorId field will be set to the best matching option automatically.
--- Optional. The default is False.
-cliColorRgbFormat :: Lens' CalendarListInsert (Maybe Bool)
-cliColorRgbFormat
-  = lens _cliColorRgbFormat
-      (\ s a -> s{_cliColorRgbFormat = a})
-
-instance GoogleRequest CalendarListInsert where
-        type Rs CalendarListInsert = CalendarListEntry
-        type Scopes CalendarListInsert =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarListInsert'{..}
-          = go _cliColorRgbFormat (Just AltJSON) _cliPayload
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/List.hs b/gen/Network/Google/Resource/Calendar/CalendarList/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns the calendars on the user\'s calendar list.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.list@.
-module Network.Google.Resource.Calendar.CalendarList.List
-    (
-    -- * REST Resource
-      CalendarListListResource
-
-    -- * Creating a Request
-    , calendarListList
-    , CalendarListList
-
-    -- * Request Lenses
-    , cllSyncToken
-    , cllMinAccessRole
-    , cllShowDeleted
-    , cllShowHidden
-    , cllPageToken
-    , cllMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.list@ method which the
--- 'CalendarListList' request conforms to.
-type CalendarListListResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               QueryParam "syncToken" Text :>
-                 QueryParam "minAccessRole"
-                   CalendarListListMinAccessRole
-                   :>
-                   QueryParam "showDeleted" Bool :>
-                     QueryParam "showHidden" Bool :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Int32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] CalendarList
-
--- | Returns the calendars on the user\'s calendar list.
---
--- /See:/ 'calendarListList' smart constructor.
-data CalendarListList =
-  CalendarListList'
-    { _cllSyncToken     :: !(Maybe Text)
-    , _cllMinAccessRole :: !(Maybe CalendarListListMinAccessRole)
-    , _cllShowDeleted   :: !(Maybe Bool)
-    , _cllShowHidden    :: !(Maybe Bool)
-    , _cllPageToken     :: !(Maybe Text)
-    , _cllMaxResults    :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cllSyncToken'
---
--- * 'cllMinAccessRole'
---
--- * 'cllShowDeleted'
---
--- * 'cllShowHidden'
---
--- * 'cllPageToken'
---
--- * 'cllMaxResults'
-calendarListList
-    :: CalendarListList
-calendarListList =
-  CalendarListList'
-    { _cllSyncToken = Nothing
-    , _cllMinAccessRole = Nothing
-    , _cllShowDeleted = Nothing
-    , _cllShowHidden = Nothing
-    , _cllPageToken = Nothing
-    , _cllMaxResults = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. If only
--- read-only fields such as calendar properties or ACLs have changed, the
--- entry won\'t be returned. All entries deleted and hidden since the
--- previous list request will always be in the result set and it is not
--- allowed to set showDeleted neither showHidden to False. To ensure client
--- state consistency minAccessRole query parameter cannot be specified
--- together with nextSyncToken. If the syncToken expires, the server will
--- respond with a 410 GONE response code and the client should clear its
--- storage and perform a full synchronization without any syncToken. Learn
--- more about incremental synchronization. Optional. The default is to
--- return all entries.
-cllSyncToken :: Lens' CalendarListList (Maybe Text)
-cllSyncToken
-  = lens _cllSyncToken (\ s a -> s{_cllSyncToken = a})
-
--- | The minimum access role for the user in the returned entries. Optional.
--- The default is no restriction.
-cllMinAccessRole :: Lens' CalendarListList (Maybe CalendarListListMinAccessRole)
-cllMinAccessRole
-  = lens _cllMinAccessRole
-      (\ s a -> s{_cllMinAccessRole = a})
-
--- | Whether to include deleted calendar list entries in the result.
--- Optional. The default is False.
-cllShowDeleted :: Lens' CalendarListList (Maybe Bool)
-cllShowDeleted
-  = lens _cllShowDeleted
-      (\ s a -> s{_cllShowDeleted = a})
-
--- | Whether to show hidden entries. Optional. The default is False.
-cllShowHidden :: Lens' CalendarListList (Maybe Bool)
-cllShowHidden
-  = lens _cllShowHidden
-      (\ s a -> s{_cllShowHidden = a})
-
--- | Token specifying which result page to return. Optional.
-cllPageToken :: Lens' CalendarListList (Maybe Text)
-cllPageToken
-  = lens _cllPageToken (\ s a -> s{_cllPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-cllMaxResults :: Lens' CalendarListList (Maybe Int32)
-cllMaxResults
-  = lens _cllMaxResults
-      (\ s a -> s{_cllMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest CalendarListList where
-        type Rs CalendarListList = CalendarList
-        type Scopes CalendarListList =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient CalendarListList'{..}
-          = go _cllSyncToken _cllMinAccessRole _cllShowDeleted
-              _cllShowHidden
-              _cllPageToken
-              _cllMaxResults
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an existing calendar on the user\'s calendar list. This method
--- supports patch semantics.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.patch@.
-module Network.Google.Resource.Calendar.CalendarList.Patch
-    (
-    -- * REST Resource
-      CalendarListPatchResource
-
-    -- * Creating a Request
-    , calendarListPatch
-    , CalendarListPatch
-
-    -- * Request Lenses
-    , clpCalendarId
-    , clpPayload
-    , clpColorRgbFormat
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.patch@ method which the
--- 'CalendarListPatch' request conforms to.
-type CalendarListPatchResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               Capture "calendarId" Text :>
-                 QueryParam "colorRgbFormat" Bool :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] CalendarListEntry :>
-                       Patch '[JSON] CalendarListEntry
-
--- | Updates an existing calendar on the user\'s calendar list. This method
--- supports patch semantics.
---
--- /See:/ 'calendarListPatch' smart constructor.
-data CalendarListPatch =
-  CalendarListPatch'
-    { _clpCalendarId     :: !Text
-    , _clpPayload        :: !CalendarListEntry
-    , _clpColorRgbFormat :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clpCalendarId'
---
--- * 'clpPayload'
---
--- * 'clpColorRgbFormat'
-calendarListPatch
-    :: Text -- ^ 'clpCalendarId'
-    -> CalendarListEntry -- ^ 'clpPayload'
-    -> CalendarListPatch
-calendarListPatch pClpCalendarId_ pClpPayload_ =
-  CalendarListPatch'
-    { _clpCalendarId = pClpCalendarId_
-    , _clpPayload = pClpPayload_
-    , _clpColorRgbFormat = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-clpCalendarId :: Lens' CalendarListPatch Text
-clpCalendarId
-  = lens _clpCalendarId
-      (\ s a -> s{_clpCalendarId = a})
-
--- | Multipart request metadata.
-clpPayload :: Lens' CalendarListPatch CalendarListEntry
-clpPayload
-  = lens _clpPayload (\ s a -> s{_clpPayload = a})
-
--- | Whether to use the foregroundColor and backgroundColor fields to write
--- the calendar colors (RGB). If this feature is used, the index-based
--- colorId field will be set to the best matching option automatically.
--- Optional. The default is False.
-clpColorRgbFormat :: Lens' CalendarListPatch (Maybe Bool)
-clpColorRgbFormat
-  = lens _clpColorRgbFormat
-      (\ s a -> s{_clpColorRgbFormat = a})
-
-instance GoogleRequest CalendarListPatch where
-        type Rs CalendarListPatch = CalendarListEntry
-        type Scopes CalendarListPatch =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarListPatch'{..}
-          = go _clpCalendarId _clpColorRgbFormat (Just AltJSON)
-              _clpPayload
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an existing calendar on the user\'s calendar list.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.update@.
-module Network.Google.Resource.Calendar.CalendarList.Update
-    (
-    -- * REST Resource
-      CalendarListUpdateResource
-
-    -- * Creating a Request
-    , calendarListUpdate
-    , CalendarListUpdate
-
-    -- * Request Lenses
-    , cluCalendarId
-    , cluPayload
-    , cluColorRgbFormat
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.update@ method which the
--- 'CalendarListUpdate' request conforms to.
-type CalendarListUpdateResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               Capture "calendarId" Text :>
-                 QueryParam "colorRgbFormat" Bool :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] CalendarListEntry :>
-                       Put '[JSON] CalendarListEntry
-
--- | Updates an existing calendar on the user\'s calendar list.
---
--- /See:/ 'calendarListUpdate' smart constructor.
-data CalendarListUpdate =
-  CalendarListUpdate'
-    { _cluCalendarId     :: !Text
-    , _cluPayload        :: !CalendarListEntry
-    , _cluColorRgbFormat :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cluCalendarId'
---
--- * 'cluPayload'
---
--- * 'cluColorRgbFormat'
-calendarListUpdate
-    :: Text -- ^ 'cluCalendarId'
-    -> CalendarListEntry -- ^ 'cluPayload'
-    -> CalendarListUpdate
-calendarListUpdate pCluCalendarId_ pCluPayload_ =
-  CalendarListUpdate'
-    { _cluCalendarId = pCluCalendarId_
-    , _cluPayload = pCluPayload_
-    , _cluColorRgbFormat = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cluCalendarId :: Lens' CalendarListUpdate Text
-cluCalendarId
-  = lens _cluCalendarId
-      (\ s a -> s{_cluCalendarId = a})
-
--- | Multipart request metadata.
-cluPayload :: Lens' CalendarListUpdate CalendarListEntry
-cluPayload
-  = lens _cluPayload (\ s a -> s{_cluPayload = a})
-
--- | Whether to use the foregroundColor and backgroundColor fields to write
--- the calendar colors (RGB). If this feature is used, the index-based
--- colorId field will be set to the best matching option automatically.
--- Optional. The default is False.
-cluColorRgbFormat :: Lens' CalendarListUpdate (Maybe Bool)
-cluColorRgbFormat
-  = lens _cluColorRgbFormat
-      (\ s a -> s{_cluColorRgbFormat = a})
-
-instance GoogleRequest CalendarListUpdate where
-        type Rs CalendarListUpdate = CalendarListEntry
-        type Scopes CalendarListUpdate =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarListUpdate'{..}
-          = go _cluCalendarId _cluColorRgbFormat (Just AltJSON)
-              _cluPayload
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Watch.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Watch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Watch.hs
+++ /dev/null
@@ -1,188 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.CalendarList.Watch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Watch for changes to CalendarList resources.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendarList.watch@.
-module Network.Google.Resource.Calendar.CalendarList.Watch
-    (
-    -- * REST Resource
-      CalendarListWatchResource
-
-    -- * Creating a Request
-    , calendarListWatch
-    , CalendarListWatch
-
-    -- * Request Lenses
-    , clwSyncToken
-    , clwMinAccessRole
-    , clwShowDeleted
-    , clwPayload
-    , clwShowHidden
-    , clwPageToken
-    , clwMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendarList.watch@ method which the
--- 'CalendarListWatch' request conforms to.
-type CalendarListWatchResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "calendarList" :>
-               "watch" :>
-                 QueryParam "syncToken" Text :>
-                   QueryParam "minAccessRole"
-                     CalendarListWatchMinAccessRole
-                     :>
-                     QueryParam "showDeleted" Bool :>
-                       QueryParam "showHidden" Bool :>
-                         QueryParam "pageToken" Text :>
-                           QueryParam "maxResults" (Textual Int32) :>
-                             QueryParam "alt" AltJSON :>
-                               ReqBody '[JSON] Channel :> Post '[JSON] Channel
-
--- | Watch for changes to CalendarList resources.
---
--- /See:/ 'calendarListWatch' smart constructor.
-data CalendarListWatch =
-  CalendarListWatch'
-    { _clwSyncToken     :: !(Maybe Text)
-    , _clwMinAccessRole :: !(Maybe CalendarListWatchMinAccessRole)
-    , _clwShowDeleted   :: !(Maybe Bool)
-    , _clwPayload       :: !Channel
-    , _clwShowHidden    :: !(Maybe Bool)
-    , _clwPageToken     :: !(Maybe Text)
-    , _clwMaxResults    :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarListWatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clwSyncToken'
---
--- * 'clwMinAccessRole'
---
--- * 'clwShowDeleted'
---
--- * 'clwPayload'
---
--- * 'clwShowHidden'
---
--- * 'clwPageToken'
---
--- * 'clwMaxResults'
-calendarListWatch
-    :: Channel -- ^ 'clwPayload'
-    -> CalendarListWatch
-calendarListWatch pClwPayload_ =
-  CalendarListWatch'
-    { _clwSyncToken = Nothing
-    , _clwMinAccessRole = Nothing
-    , _clwShowDeleted = Nothing
-    , _clwPayload = pClwPayload_
-    , _clwShowHidden = Nothing
-    , _clwPageToken = Nothing
-    , _clwMaxResults = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. If only
--- read-only fields such as calendar properties or ACLs have changed, the
--- entry won\'t be returned. All entries deleted and hidden since the
--- previous list request will always be in the result set and it is not
--- allowed to set showDeleted neither showHidden to False. To ensure client
--- state consistency minAccessRole query parameter cannot be specified
--- together with nextSyncToken. If the syncToken expires, the server will
--- respond with a 410 GONE response code and the client should clear its
--- storage and perform a full synchronization without any syncToken. Learn
--- more about incremental synchronization. Optional. The default is to
--- return all entries.
-clwSyncToken :: Lens' CalendarListWatch (Maybe Text)
-clwSyncToken
-  = lens _clwSyncToken (\ s a -> s{_clwSyncToken = a})
-
--- | The minimum access role for the user in the returned entries. Optional.
--- The default is no restriction.
-clwMinAccessRole :: Lens' CalendarListWatch (Maybe CalendarListWatchMinAccessRole)
-clwMinAccessRole
-  = lens _clwMinAccessRole
-      (\ s a -> s{_clwMinAccessRole = a})
-
--- | Whether to include deleted calendar list entries in the result.
--- Optional. The default is False.
-clwShowDeleted :: Lens' CalendarListWatch (Maybe Bool)
-clwShowDeleted
-  = lens _clwShowDeleted
-      (\ s a -> s{_clwShowDeleted = a})
-
--- | Multipart request metadata.
-clwPayload :: Lens' CalendarListWatch Channel
-clwPayload
-  = lens _clwPayload (\ s a -> s{_clwPayload = a})
-
--- | Whether to show hidden entries. Optional. The default is False.
-clwShowHidden :: Lens' CalendarListWatch (Maybe Bool)
-clwShowHidden
-  = lens _clwShowHidden
-      (\ s a -> s{_clwShowHidden = a})
-
--- | Token specifying which result page to return. Optional.
-clwPageToken :: Lens' CalendarListWatch (Maybe Text)
-clwPageToken
-  = lens _clwPageToken (\ s a -> s{_clwPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-clwMaxResults :: Lens' CalendarListWatch (Maybe Int32)
-clwMaxResults
-  = lens _clwMaxResults
-      (\ s a -> s{_clwMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest CalendarListWatch where
-        type Rs CalendarListWatch = Channel
-        type Scopes CalendarListWatch =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient CalendarListWatch'{..}
-          = go _clwSyncToken _clwMinAccessRole _clwShowDeleted
-              _clwShowHidden
-              _clwPageToken
-              _clwMaxResults
-              (Just AltJSON)
-              _clwPayload
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarListWatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Clear.hs b/gen/Network/Google/Resource/Calendar/Calendars/Clear.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Clear.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Clear
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Clears a primary calendar. This operation deletes all events associated
--- with the primary calendar of an account.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.clear@.
-module Network.Google.Resource.Calendar.Calendars.Clear
-    (
-    -- * REST Resource
-      CalendarsClearResource
-
-    -- * Creating a Request
-    , calendarsClear
-    , CalendarsClear
-
-    -- * Request Lenses
-    , ccCalendarId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.clear@ method which the
--- 'CalendarsClear' request conforms to.
-type CalendarsClearResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "clear" :>
-               QueryParam "alt" AltJSON :> Post '[JSON] ()
-
--- | Clears a primary calendar. This operation deletes all events associated
--- with the primary calendar of an account.
---
--- /See:/ 'calendarsClear' smart constructor.
-newtype CalendarsClear =
-  CalendarsClear'
-    { _ccCalendarId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsClear' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccCalendarId'
-calendarsClear
-    :: Text -- ^ 'ccCalendarId'
-    -> CalendarsClear
-calendarsClear pCcCalendarId_ = CalendarsClear' {_ccCalendarId = pCcCalendarId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-ccCalendarId :: Lens' CalendarsClear Text
-ccCalendarId
-  = lens _ccCalendarId (\ s a -> s{_ccCalendarId = a})
-
-instance GoogleRequest CalendarsClear where
-        type Rs CalendarsClear = ()
-        type Scopes CalendarsClear =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarsClear'{..}
-          = go _ccCalendarId (Just AltJSON) appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy CalendarsClearResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Delete.hs b/gen/Network/Google/Resource/Calendar/Calendars/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Delete.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Delete
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes a secondary calendar. Use calendars.clear for clearing all
--- events on primary calendars.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.delete@.
-module Network.Google.Resource.Calendar.Calendars.Delete
-    (
-    -- * REST Resource
-      CalendarsDeleteResource
-
-    -- * Creating a Request
-    , calendarsDelete
-    , CalendarsDelete
-
-    -- * Request Lenses
-    , cdCalendarId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.delete@ method which the
--- 'CalendarsDelete' request conforms to.
-type CalendarsDeleteResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes a secondary calendar. Use calendars.clear for clearing all
--- events on primary calendars.
---
--- /See:/ 'calendarsDelete' smart constructor.
-newtype CalendarsDelete =
-  CalendarsDelete'
-    { _cdCalendarId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdCalendarId'
-calendarsDelete
-    :: Text -- ^ 'cdCalendarId'
-    -> CalendarsDelete
-calendarsDelete pCdCalendarId_ =
-  CalendarsDelete' {_cdCalendarId = pCdCalendarId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cdCalendarId :: Lens' CalendarsDelete Text
-cdCalendarId
-  = lens _cdCalendarId (\ s a -> s{_cdCalendarId = a})
-
-instance GoogleRequest CalendarsDelete where
-        type Rs CalendarsDelete = ()
-        type Scopes CalendarsDelete =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarsDelete'{..}
-          = go _cdCalendarId (Just AltJSON) appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Get.hs b/gen/Network/Google/Resource/Calendar/Calendars/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Get.hs
+++ /dev/null
@@ -1,88 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns metadata for a calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.get@.
-module Network.Google.Resource.Calendar.Calendars.Get
-    (
-    -- * REST Resource
-      CalendarsGetResource
-
-    -- * Creating a Request
-    , calendarsGet
-    , CalendarsGet
-
-    -- * Request Lenses
-    , cgCalendarId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.get@ method which the
--- 'CalendarsGet' request conforms to.
-type CalendarsGetResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             QueryParam "alt" AltJSON :> Get '[JSON] Calendar
-
--- | Returns metadata for a calendar.
---
--- /See:/ 'calendarsGet' smart constructor.
-newtype CalendarsGet =
-  CalendarsGet'
-    { _cgCalendarId :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cgCalendarId'
-calendarsGet
-    :: Text -- ^ 'cgCalendarId'
-    -> CalendarsGet
-calendarsGet pCgCalendarId_ = CalendarsGet' {_cgCalendarId = pCgCalendarId_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cgCalendarId :: Lens' CalendarsGet Text
-cgCalendarId
-  = lens _cgCalendarId (\ s a -> s{_cgCalendarId = a})
-
-instance GoogleRequest CalendarsGet where
-        type Rs CalendarsGet = Calendar
-        type Scopes CalendarsGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient CalendarsGet'{..}
-          = go _cgCalendarId (Just AltJSON) appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy CalendarsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Insert.hs b/gen/Network/Google/Resource/Calendar/Calendars/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Insert.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Insert
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates a secondary calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.insert@.
-module Network.Google.Resource.Calendar.Calendars.Insert
-    (
-    -- * REST Resource
-      CalendarsInsertResource
-
-    -- * Creating a Request
-    , calendarsInsert
-    , CalendarsInsert
-
-    -- * Request Lenses
-    , ciPayload
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.insert@ method which the
--- 'CalendarsInsert' request conforms to.
-type CalendarsInsertResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           QueryParam "alt" AltJSON :>
-             ReqBody '[JSON] Calendar :> Post '[JSON] Calendar
-
--- | Creates a secondary calendar.
---
--- /See:/ 'calendarsInsert' smart constructor.
-newtype CalendarsInsert =
-  CalendarsInsert'
-    { _ciPayload :: Calendar
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ciPayload'
-calendarsInsert
-    :: Calendar -- ^ 'ciPayload'
-    -> CalendarsInsert
-calendarsInsert pCiPayload_ = CalendarsInsert' {_ciPayload = pCiPayload_}
-
-
--- | Multipart request metadata.
-ciPayload :: Lens' CalendarsInsert Calendar
-ciPayload
-  = lens _ciPayload (\ s a -> s{_ciPayload = a})
-
-instance GoogleRequest CalendarsInsert where
-        type Rs CalendarsInsert = Calendar
-        type Scopes CalendarsInsert =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarsInsert'{..}
-          = go (Just AltJSON) _ciPayload appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Patch.hs b/gen/Network/Google/Resource/Calendar/Calendars/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Patch.hs
+++ /dev/null
@@ -1,100 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates metadata for a calendar. This method supports patch semantics.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.patch@.
-module Network.Google.Resource.Calendar.Calendars.Patch
-    (
-    -- * REST Resource
-      CalendarsPatchResource
-
-    -- * Creating a Request
-    , calendarsPatch
-    , CalendarsPatch
-
-    -- * Request Lenses
-    , cpCalendarId
-    , cpPayload
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.patch@ method which the
--- 'CalendarsPatch' request conforms to.
-type CalendarsPatchResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             QueryParam "alt" AltJSON :>
-               ReqBody '[JSON] Calendar :> Patch '[JSON] Calendar
-
--- | Updates metadata for a calendar. This method supports patch semantics.
---
--- /See:/ 'calendarsPatch' smart constructor.
-data CalendarsPatch =
-  CalendarsPatch'
-    { _cpCalendarId :: !Text
-    , _cpPayload    :: !Calendar
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cpCalendarId'
---
--- * 'cpPayload'
-calendarsPatch
-    :: Text -- ^ 'cpCalendarId'
-    -> Calendar -- ^ 'cpPayload'
-    -> CalendarsPatch
-calendarsPatch pCpCalendarId_ pCpPayload_ =
-  CalendarsPatch' {_cpCalendarId = pCpCalendarId_, _cpPayload = pCpPayload_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cpCalendarId :: Lens' CalendarsPatch Text
-cpCalendarId
-  = lens _cpCalendarId (\ s a -> s{_cpCalendarId = a})
-
--- | Multipart request metadata.
-cpPayload :: Lens' CalendarsPatch Calendar
-cpPayload
-  = lens _cpPayload (\ s a -> s{_cpPayload = a})
-
-instance GoogleRequest CalendarsPatch where
-        type Rs CalendarsPatch = Calendar
-        type Scopes CalendarsPatch =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarsPatch'{..}
-          = go _cpCalendarId (Just AltJSON) _cpPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy CalendarsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Calendars/Update.hs b/gen/Network/Google/Resource/Calendar/Calendars/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Calendars/Update.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Calendars.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates metadata for a calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.calendars.update@.
-module Network.Google.Resource.Calendar.Calendars.Update
-    (
-    -- * REST Resource
-      CalendarsUpdateResource
-
-    -- * Creating a Request
-    , calendarsUpdate
-    , CalendarsUpdate
-
-    -- * Request Lenses
-    , cuCalendarId
-    , cuPayload
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.calendars.update@ method which the
--- 'CalendarsUpdate' request conforms to.
-type CalendarsUpdateResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             QueryParam "alt" AltJSON :>
-               ReqBody '[JSON] Calendar :> Put '[JSON] Calendar
-
--- | Updates metadata for a calendar.
---
--- /See:/ 'calendarsUpdate' smart constructor.
-data CalendarsUpdate =
-  CalendarsUpdate'
-    { _cuCalendarId :: !Text
-    , _cuPayload    :: !Calendar
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CalendarsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cuCalendarId'
---
--- * 'cuPayload'
-calendarsUpdate
-    :: Text -- ^ 'cuCalendarId'
-    -> Calendar -- ^ 'cuPayload'
-    -> CalendarsUpdate
-calendarsUpdate pCuCalendarId_ pCuPayload_ =
-  CalendarsUpdate' {_cuCalendarId = pCuCalendarId_, _cuPayload = pCuPayload_}
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-cuCalendarId :: Lens' CalendarsUpdate Text
-cuCalendarId
-  = lens _cuCalendarId (\ s a -> s{_cuCalendarId = a})
-
--- | Multipart request metadata.
-cuPayload :: Lens' CalendarsUpdate Calendar
-cuPayload
-  = lens _cuPayload (\ s a -> s{_cuPayload = a})
-
-instance GoogleRequest CalendarsUpdate where
-        type Rs CalendarsUpdate = Calendar
-        type Scopes CalendarsUpdate =
-             '["https://www.googleapis.com/auth/calendar"]
-        requestClient CalendarsUpdate'{..}
-          = go _cuCalendarId (Just AltJSON) _cuPayload
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy CalendarsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Channels/Stop.hs b/gen/Network/Google/Resource/Calendar/Channels/Stop.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Channels/Stop.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Channels.Stop
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Stop watching resources through this channel
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.channels.stop@.
-module Network.Google.Resource.Calendar.Channels.Stop
-    (
-    -- * REST Resource
-      ChannelsStopResource
-
-    -- * Creating a Request
-    , channelsStop
-    , ChannelsStop
-
-    -- * Request Lenses
-    , csPayload
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.channels.stop@ method which the
--- 'ChannelsStop' request conforms to.
-type ChannelsStopResource =
-     "calendar" :>
-       "v3" :>
-         "channels" :>
-           "stop" :>
-             QueryParam "alt" AltJSON :>
-               ReqBody '[JSON] Channel :> Post '[JSON] ()
-
--- | Stop watching resources through this channel
---
--- /See:/ 'channelsStop' smart constructor.
-newtype ChannelsStop =
-  ChannelsStop'
-    { _csPayload :: Channel
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ChannelsStop' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'csPayload'
-channelsStop
-    :: Channel -- ^ 'csPayload'
-    -> ChannelsStop
-channelsStop pCsPayload_ = ChannelsStop' {_csPayload = pCsPayload_}
-
-
--- | Multipart request metadata.
-csPayload :: Lens' ChannelsStop Channel
-csPayload
-  = lens _csPayload (\ s a -> s{_csPayload = a})
-
-instance GoogleRequest ChannelsStop where
-        type Rs ChannelsStop = ()
-        type Scopes ChannelsStop =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events",
-               "https://www.googleapis.com/auth/calendar.events.readonly",
-               "https://www.googleapis.com/auth/calendar.readonly",
-               "https://www.googleapis.com/auth/calendar.settings.readonly"]
-        requestClient ChannelsStop'{..}
-          = go (Just AltJSON) _csPayload appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ChannelsStopResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Colors/Get.hs b/gen/Network/Google/Resource/Calendar/Colors/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Colors/Get.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Colors.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns the color definitions for calendars and events.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.colors.get@.
-module Network.Google.Resource.Calendar.Colors.Get
-    (
-    -- * REST Resource
-      ColorsGetResource
-
-    -- * Creating a Request
-    , colorsGet
-    , ColorsGet
-
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.colors.get@ method which the
--- 'ColorsGet' request conforms to.
-type ColorsGetResource =
-     "calendar" :>
-       "v3" :>
-         "colors" :>
-           QueryParam "alt" AltJSON :> Get '[JSON] Colors
-
--- | Returns the color definitions for calendars and events.
---
--- /See:/ 'colorsGet' smart constructor.
-data ColorsGet =
-  ColorsGet'
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ColorsGet' with the minimum fields required to make a request.
---
-colorsGet
-    :: ColorsGet
-colorsGet = ColorsGet'
-
-
-instance GoogleRequest ColorsGet where
-        type Rs ColorsGet = Colors
-        type Scopes ColorsGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient ColorsGet'{}
-          = go (Just AltJSON) appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy ColorsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Delete.hs b/gen/Network/Google/Resource/Calendar/Events/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Delete.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Delete
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes an event.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.delete@.
-module Network.Google.Resource.Calendar.Events.Delete
-    (
-    -- * REST Resource
-      EventsDeleteResource
-
-    -- * Creating a Request
-    , eventsDelete
-    , EventsDelete
-
-    -- * Request Lenses
-    , edCalendarId
-    , edSendNotifications
-    , edSendUpdates
-    , edEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.delete@ method which the
--- 'EventsDelete' request conforms to.
-type EventsDeleteResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 QueryParam "sendNotifications" Bool :>
-                   QueryParam "sendUpdates" EventsDeleteSendUpdates :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes an event.
---
--- /See:/ 'eventsDelete' smart constructor.
-data EventsDelete =
-  EventsDelete'
-    { _edCalendarId        :: !Text
-    , _edSendNotifications :: !(Maybe Bool)
-    , _edSendUpdates       :: !(Maybe EventsDeleteSendUpdates)
-    , _edEventId           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'edCalendarId'
---
--- * 'edSendNotifications'
---
--- * 'edSendUpdates'
---
--- * 'edEventId'
-eventsDelete
-    :: Text -- ^ 'edCalendarId'
-    -> Text -- ^ 'edEventId'
-    -> EventsDelete
-eventsDelete pEdCalendarId_ pEdEventId_ =
-  EventsDelete'
-    { _edCalendarId = pEdCalendarId_
-    , _edSendNotifications = Nothing
-    , _edSendUpdates = Nothing
-    , _edEventId = pEdEventId_
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-edCalendarId :: Lens' EventsDelete Text
-edCalendarId
-  = lens _edCalendarId (\ s a -> s{_edCalendarId = a})
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the deletion of the event. Note that some emails
--- might still be sent even if you set the value to false. The default is
--- false.
-edSendNotifications :: Lens' EventsDelete (Maybe Bool)
-edSendNotifications
-  = lens _edSendNotifications
-      (\ s a -> s{_edSendNotifications = a})
-
--- | Guests who should receive notifications about the deletion of the event.
-edSendUpdates :: Lens' EventsDelete (Maybe EventsDeleteSendUpdates)
-edSendUpdates
-  = lens _edSendUpdates
-      (\ s a -> s{_edSendUpdates = a})
-
--- | Event identifier.
-edEventId :: Lens' EventsDelete Text
-edEventId
-  = lens _edEventId (\ s a -> s{_edEventId = a})
-
-instance GoogleRequest EventsDelete where
-        type Rs EventsDelete = ()
-        type Scopes EventsDelete =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsDelete'{..}
-          = go _edCalendarId _edEventId _edSendNotifications
-              _edSendUpdates
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Get.hs b/gen/Network/Google/Resource/Calendar/Events/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Get.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns an event.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.get@.
-module Network.Google.Resource.Calendar.Events.Get
-    (
-    -- * REST Resource
-      EventsGetResource
-
-    -- * Creating a Request
-    , eventsGet
-    , EventsGet
-
-    -- * Request Lenses
-    , egCalendarId
-    , egMaxAttendees
-    , egTimeZone
-    , egAlwaysIncludeEmail
-    , egEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.get@ method which the
--- 'EventsGet' request conforms to.
-type EventsGetResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 QueryParam "maxAttendees" (Textual Int32) :>
-                   QueryParam "timeZone" Text :>
-                     QueryParam "alwaysIncludeEmail" Bool :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Event
-
--- | Returns an event.
---
--- /See:/ 'eventsGet' smart constructor.
-data EventsGet =
-  EventsGet'
-    { _egCalendarId         :: !Text
-    , _egMaxAttendees       :: !(Maybe (Textual Int32))
-    , _egTimeZone           :: !(Maybe Text)
-    , _egAlwaysIncludeEmail :: !(Maybe Bool)
-    , _egEventId            :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'egCalendarId'
---
--- * 'egMaxAttendees'
---
--- * 'egTimeZone'
---
--- * 'egAlwaysIncludeEmail'
---
--- * 'egEventId'
-eventsGet
-    :: Text -- ^ 'egCalendarId'
-    -> Text -- ^ 'egEventId'
-    -> EventsGet
-eventsGet pEgCalendarId_ pEgEventId_ =
-  EventsGet'
-    { _egCalendarId = pEgCalendarId_
-    , _egMaxAttendees = Nothing
-    , _egTimeZone = Nothing
-    , _egAlwaysIncludeEmail = Nothing
-    , _egEventId = pEgEventId_
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-egCalendarId :: Lens' EventsGet Text
-egCalendarId
-  = lens _egCalendarId (\ s a -> s{_egCalendarId = a})
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-egMaxAttendees :: Lens' EventsGet (Maybe Int32)
-egMaxAttendees
-  = lens _egMaxAttendees
-      (\ s a -> s{_egMaxAttendees = a})
-      . mapping _Coerce
-
--- | Time zone used in the response. Optional. The default is the time zone
--- of the calendar.
-egTimeZone :: Lens' EventsGet (Maybe Text)
-egTimeZone
-  = lens _egTimeZone (\ s a -> s{_egTimeZone = a})
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-egAlwaysIncludeEmail :: Lens' EventsGet (Maybe Bool)
-egAlwaysIncludeEmail
-  = lens _egAlwaysIncludeEmail
-      (\ s a -> s{_egAlwaysIncludeEmail = a})
-
--- | Event identifier.
-egEventId :: Lens' EventsGet Text
-egEventId
-  = lens _egEventId (\ s a -> s{_egEventId = a})
-
-instance GoogleRequest EventsGet where
-        type Rs EventsGet = Event
-        type Scopes EventsGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events",
-               "https://www.googleapis.com/auth/calendar.events.readonly",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient EventsGet'{..}
-          = go _egCalendarId _egEventId _egMaxAttendees
-              _egTimeZone
-              _egAlwaysIncludeEmail
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Import.hs b/gen/Network/Google/Resource/Calendar/Events/Import.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Import.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Import
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Imports an event. This operation is used to add a private copy of an
--- existing event to a calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.import@.
-module Network.Google.Resource.Calendar.Events.Import
-    (
-    -- * REST Resource
-      EventsImportResource
-
-    -- * Creating a Request
-    , eventsImport
-    , EventsImport
-
-    -- * Request Lenses
-    , eiConferenceDataVersion
-    , eiCalendarId
-    , eiPayload
-    , eiSupportsAttachments
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.import@ method which the
--- 'EventsImport' request conforms to.
-type EventsImportResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               "import" :>
-                 QueryParam "conferenceDataVersion" (Textual Int32) :>
-                   QueryParam "supportsAttachments" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Event :> Post '[JSON] Event
-
--- | Imports an event. This operation is used to add a private copy of an
--- existing event to a calendar.
---
--- /See:/ 'eventsImport' smart constructor.
-data EventsImport =
-  EventsImport'
-    { _eiConferenceDataVersion :: !(Maybe (Textual Int32))
-    , _eiCalendarId            :: !Text
-    , _eiPayload               :: !Event
-    , _eiSupportsAttachments   :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsImport' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eiConferenceDataVersion'
---
--- * 'eiCalendarId'
---
--- * 'eiPayload'
---
--- * 'eiSupportsAttachments'
-eventsImport
-    :: Text -- ^ 'eiCalendarId'
-    -> Event -- ^ 'eiPayload'
-    -> EventsImport
-eventsImport pEiCalendarId_ pEiPayload_ =
-  EventsImport'
-    { _eiConferenceDataVersion = Nothing
-    , _eiCalendarId = pEiCalendarId_
-    , _eiPayload = pEiPayload_
-    , _eiSupportsAttachments = Nothing
-    }
-
-
--- | Version number of conference data supported by the API client. Version 0
--- assumes no conference data support and ignores conference data in the
--- event\'s body. Version 1 enables support for copying of ConferenceData
--- as well as for creating new conferences using the createRequest field of
--- conferenceData. The default is 0.
-eiConferenceDataVersion :: Lens' EventsImport (Maybe Int32)
-eiConferenceDataVersion
-  = lens _eiConferenceDataVersion
-      (\ s a -> s{_eiConferenceDataVersion = a})
-      . mapping _Coerce
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-eiCalendarId :: Lens' EventsImport Text
-eiCalendarId
-  = lens _eiCalendarId (\ s a -> s{_eiCalendarId = a})
-
--- | Multipart request metadata.
-eiPayload :: Lens' EventsImport Event
-eiPayload
-  = lens _eiPayload (\ s a -> s{_eiPayload = a})
-
--- | Whether API client performing operation supports event attachments.
--- Optional. The default is False.
-eiSupportsAttachments :: Lens' EventsImport (Maybe Bool)
-eiSupportsAttachments
-  = lens _eiSupportsAttachments
-      (\ s a -> s{_eiSupportsAttachments = a})
-
-instance GoogleRequest EventsImport where
-        type Rs EventsImport = Event
-        type Scopes EventsImport =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsImport'{..}
-          = go _eiCalendarId _eiConferenceDataVersion
-              _eiSupportsAttachments
-              (Just AltJSON)
-              _eiPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsImportResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Insert.hs b/gen/Network/Google/Resource/Calendar/Events/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Insert.hs
+++ /dev/null
@@ -1,185 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Insert
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an event.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.insert@.
-module Network.Google.Resource.Calendar.Events.Insert
-    (
-    -- * REST Resource
-      EventsInsertResource
-
-    -- * Creating a Request
-    , eventsInsert
-    , EventsInsert
-
-    -- * Request Lenses
-    , eveConferenceDataVersion
-    , eveCalendarId
-    , evePayload
-    , eveMaxAttendees
-    , eveSendNotifications
-    , eveSupportsAttachments
-    , eveSendUpdates
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.insert@ method which the
--- 'EventsInsert' request conforms to.
-type EventsInsertResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               QueryParam "conferenceDataVersion" (Textual Int32) :>
-                 QueryParam "maxAttendees" (Textual Int32) :>
-                   QueryParam "sendNotifications" Bool :>
-                     QueryParam "supportsAttachments" Bool :>
-                       QueryParam "sendUpdates" EventsInsertSendUpdates :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Event :> Post '[JSON] Event
-
--- | Creates an event.
---
--- /See:/ 'eventsInsert' smart constructor.
-data EventsInsert =
-  EventsInsert'
-    { _eveConferenceDataVersion :: !(Maybe (Textual Int32))
-    , _eveCalendarId            :: !Text
-    , _evePayload               :: !Event
-    , _eveMaxAttendees          :: !(Maybe (Textual Int32))
-    , _eveSendNotifications     :: !(Maybe Bool)
-    , _eveSupportsAttachments   :: !(Maybe Bool)
-    , _eveSendUpdates           :: !(Maybe EventsInsertSendUpdates)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eveConferenceDataVersion'
---
--- * 'eveCalendarId'
---
--- * 'evePayload'
---
--- * 'eveMaxAttendees'
---
--- * 'eveSendNotifications'
---
--- * 'eveSupportsAttachments'
---
--- * 'eveSendUpdates'
-eventsInsert
-    :: Text -- ^ 'eveCalendarId'
-    -> Event -- ^ 'evePayload'
-    -> EventsInsert
-eventsInsert pEveCalendarId_ pEvePayload_ =
-  EventsInsert'
-    { _eveConferenceDataVersion = Nothing
-    , _eveCalendarId = pEveCalendarId_
-    , _evePayload = pEvePayload_
-    , _eveMaxAttendees = Nothing
-    , _eveSendNotifications = Nothing
-    , _eveSupportsAttachments = Nothing
-    , _eveSendUpdates = Nothing
-    }
-
-
--- | Version number of conference data supported by the API client. Version 0
--- assumes no conference data support and ignores conference data in the
--- event\'s body. Version 1 enables support for copying of ConferenceData
--- as well as for creating new conferences using the createRequest field of
--- conferenceData. The default is 0.
-eveConferenceDataVersion :: Lens' EventsInsert (Maybe Int32)
-eveConferenceDataVersion
-  = lens _eveConferenceDataVersion
-      (\ s a -> s{_eveConferenceDataVersion = a})
-      . mapping _Coerce
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-eveCalendarId :: Lens' EventsInsert Text
-eveCalendarId
-  = lens _eveCalendarId
-      (\ s a -> s{_eveCalendarId = a})
-
--- | Multipart request metadata.
-evePayload :: Lens' EventsInsert Event
-evePayload
-  = lens _evePayload (\ s a -> s{_evePayload = a})
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-eveMaxAttendees :: Lens' EventsInsert (Maybe Int32)
-eveMaxAttendees
-  = lens _eveMaxAttendees
-      (\ s a -> s{_eveMaxAttendees = a})
-      . mapping _Coerce
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the creation of the new event. Note that some emails
--- might still be sent even if you set the value to false. The default is
--- false.
-eveSendNotifications :: Lens' EventsInsert (Maybe Bool)
-eveSendNotifications
-  = lens _eveSendNotifications
-      (\ s a -> s{_eveSendNotifications = a})
-
--- | Whether API client performing operation supports event attachments.
--- Optional. The default is False.
-eveSupportsAttachments :: Lens' EventsInsert (Maybe Bool)
-eveSupportsAttachments
-  = lens _eveSupportsAttachments
-      (\ s a -> s{_eveSupportsAttachments = a})
-
--- | Whether to send notifications about the creation of the new event. Note
--- that some emails might still be sent. The default is false.
-eveSendUpdates :: Lens' EventsInsert (Maybe EventsInsertSendUpdates)
-eveSendUpdates
-  = lens _eveSendUpdates
-      (\ s a -> s{_eveSendUpdates = a})
-
-instance GoogleRequest EventsInsert where
-        type Rs EventsInsert = Event
-        type Scopes EventsInsert =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsInsert'{..}
-          = go _eveCalendarId _eveConferenceDataVersion
-              _eveMaxAttendees
-              _eveSendNotifications
-              _eveSupportsAttachments
-              _eveSendUpdates
-              (Just AltJSON)
-              _evePayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Instances.hs b/gen/Network/Google/Resource/Calendar/Events/Instances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Instances.hs
+++ /dev/null
@@ -1,239 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Instances
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns instances of the specified recurring event.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.instances@.
-module Network.Google.Resource.Calendar.Events.Instances
-    (
-    -- * REST Resource
-      EventsInstancesResource
-
-    -- * Creating a Request
-    , eventsInstances
-    , EventsInstances
-
-    -- * Request Lenses
-    , eCalendarId
-    , eTimeMin
-    , eShowDeleted
-    , eOriginalStart
-    , eMaxAttendees
-    , ePageToken
-    , eTimeZone
-    , eMaxResults
-    , eAlwaysIncludeEmail
-    , eTimeMax
-    , eEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.instances@ method which the
--- 'EventsInstances' request conforms to.
-type EventsInstancesResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 "instances" :>
-                   QueryParam "timeMin" DateTime' :>
-                     QueryParam "showDeleted" Bool :>
-                       QueryParam "originalStart" Text :>
-                         QueryParam "maxAttendees" (Textual Int32) :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "timeZone" Text :>
-                               QueryParam "maxResults" (Textual Int32) :>
-                                 QueryParam "alwaysIncludeEmail" Bool :>
-                                   QueryParam "timeMax" DateTime' :>
-                                     QueryParam "alt" AltJSON :>
-                                       Get '[JSON] Events
-
--- | Returns instances of the specified recurring event.
---
--- /See:/ 'eventsInstances' smart constructor.
-data EventsInstances =
-  EventsInstances'
-    { _eCalendarId         :: !Text
-    , _eTimeMin            :: !(Maybe DateTime')
-    , _eShowDeleted        :: !(Maybe Bool)
-    , _eOriginalStart      :: !(Maybe Text)
-    , _eMaxAttendees       :: !(Maybe (Textual Int32))
-    , _ePageToken          :: !(Maybe Text)
-    , _eTimeZone           :: !(Maybe Text)
-    , _eMaxResults         :: !(Maybe (Textual Int32))
-    , _eAlwaysIncludeEmail :: !(Maybe Bool)
-    , _eTimeMax            :: !(Maybe DateTime')
-    , _eEventId            :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eCalendarId'
---
--- * 'eTimeMin'
---
--- * 'eShowDeleted'
---
--- * 'eOriginalStart'
---
--- * 'eMaxAttendees'
---
--- * 'ePageToken'
---
--- * 'eTimeZone'
---
--- * 'eMaxResults'
---
--- * 'eAlwaysIncludeEmail'
---
--- * 'eTimeMax'
---
--- * 'eEventId'
-eventsInstances
-    :: Text -- ^ 'eCalendarId'
-    -> Text -- ^ 'eEventId'
-    -> EventsInstances
-eventsInstances pECalendarId_ pEEventId_ =
-  EventsInstances'
-    { _eCalendarId = pECalendarId_
-    , _eTimeMin = Nothing
-    , _eShowDeleted = Nothing
-    , _eOriginalStart = Nothing
-    , _eMaxAttendees = Nothing
-    , _ePageToken = Nothing
-    , _eTimeZone = Nothing
-    , _eMaxResults = Nothing
-    , _eAlwaysIncludeEmail = Nothing
-    , _eTimeMax = Nothing
-    , _eEventId = pEEventId_
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-eCalendarId :: Lens' EventsInstances Text
-eCalendarId
-  = lens _eCalendarId (\ s a -> s{_eCalendarId = a})
-
--- | Lower bound (inclusive) for an event\'s end time to filter by. Optional.
--- The default is not to filter by end time. Must be an RFC3339 timestamp
--- with mandatory time zone offset.
-eTimeMin :: Lens' EventsInstances (Maybe UTCTime)
-eTimeMin
-  = lens _eTimeMin (\ s a -> s{_eTimeMin = a}) .
-      mapping _DateTime
-
--- | Whether to include deleted events (with status equals \"cancelled\") in
--- the result. Cancelled instances of recurring events will still be
--- included if singleEvents is False. Optional. The default is False.
-eShowDeleted :: Lens' EventsInstances (Maybe Bool)
-eShowDeleted
-  = lens _eShowDeleted (\ s a -> s{_eShowDeleted = a})
-
--- | The original start time of the instance in the result. Optional.
-eOriginalStart :: Lens' EventsInstances (Maybe Text)
-eOriginalStart
-  = lens _eOriginalStart
-      (\ s a -> s{_eOriginalStart = a})
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-eMaxAttendees :: Lens' EventsInstances (Maybe Int32)
-eMaxAttendees
-  = lens _eMaxAttendees
-      (\ s a -> s{_eMaxAttendees = a})
-      . mapping _Coerce
-
--- | Token specifying which result page to return. Optional.
-ePageToken :: Lens' EventsInstances (Maybe Text)
-ePageToken
-  = lens _ePageToken (\ s a -> s{_ePageToken = a})
-
--- | Time zone used in the response. Optional. The default is the time zone
--- of the calendar.
-eTimeZone :: Lens' EventsInstances (Maybe Text)
-eTimeZone
-  = lens _eTimeZone (\ s a -> s{_eTimeZone = a})
-
--- | Maximum number of events returned on one result page. By default the
--- value is 250 events. The page size can never be larger than 2500 events.
--- Optional.
-eMaxResults :: Lens' EventsInstances (Maybe Int32)
-eMaxResults
-  = lens _eMaxResults (\ s a -> s{_eMaxResults = a}) .
-      mapping _Coerce
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-eAlwaysIncludeEmail :: Lens' EventsInstances (Maybe Bool)
-eAlwaysIncludeEmail
-  = lens _eAlwaysIncludeEmail
-      (\ s a -> s{_eAlwaysIncludeEmail = a})
-
--- | Upper bound (exclusive) for an event\'s start time to filter by.
--- Optional. The default is not to filter by start time. Must be an RFC3339
--- timestamp with mandatory time zone offset.
-eTimeMax :: Lens' EventsInstances (Maybe UTCTime)
-eTimeMax
-  = lens _eTimeMax (\ s a -> s{_eTimeMax = a}) .
-      mapping _DateTime
-
--- | Recurring event identifier.
-eEventId :: Lens' EventsInstances Text
-eEventId = lens _eEventId (\ s a -> s{_eEventId = a})
-
-instance GoogleRequest EventsInstances where
-        type Rs EventsInstances = Events
-        type Scopes EventsInstances =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events",
-               "https://www.googleapis.com/auth/calendar.events.readonly",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient EventsInstances'{..}
-          = go _eCalendarId _eEventId _eTimeMin _eShowDeleted
-              _eOriginalStart
-              _eMaxAttendees
-              _ePageToken
-              _eTimeZone
-              _eMaxResults
-              _eAlwaysIncludeEmail
-              _eTimeMax
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy EventsInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/List.hs b/gen/Network/Google/Resource/Calendar/Events/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/List.hs
+++ /dev/null
@@ -1,370 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns events on the specified calendar.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.list@.
-module Network.Google.Resource.Calendar.Events.List
-    (
-    -- * REST Resource
-      EventsListResource
-
-    -- * Creating a Request
-    , eventsList
-    , EventsList
-
-    -- * Request Lenses
-    , elSyncToken
-    , elCalendarId
-    , elTimeMin
-    , elOrderBy
-    , elSingleEvents
-    , elPrivateExtendedProperty
-    , elShowDeleted
-    , elQ
-    , elSharedExtendedProperty
-    , elMaxAttendees
-    , elICalUId
-    , elUpdatedMin
-    , elPageToken
-    , elTimeZone
-    , elShowHiddenInvitations
-    , elMaxResults
-    , elAlwaysIncludeEmail
-    , elTimeMax
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.list@ method which the
--- 'EventsList' request conforms to.
-type EventsListResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               QueryParam "syncToken" Text :>
-                 QueryParam "timeMin" DateTime' :>
-                   QueryParam "orderBy" EventsListOrderBy :>
-                     QueryParam "singleEvents" Bool :>
-                       QueryParams "privateExtendedProperty" Text :>
-                         QueryParam "showDeleted" Bool :>
-                           QueryParam "q" Text :>
-                             QueryParams "sharedExtendedProperty" Text :>
-                               QueryParam "maxAttendees" (Textual Int32) :>
-                                 QueryParam "iCalUID" Text :>
-                                   QueryParam "updatedMin" DateTime' :>
-                                     QueryParam "pageToken" Text :>
-                                       QueryParam "timeZone" Text :>
-                                         QueryParam "showHiddenInvitations" Bool
-                                           :>
-                                           QueryParam "maxResults"
-                                             (Textual Int32)
-                                             :>
-                                             QueryParam "alwaysIncludeEmail"
-                                               Bool
-                                               :>
-                                               QueryParam "timeMax" DateTime' :>
-                                                 QueryParam "alt" AltJSON :>
-                                                   Get '[JSON] Events
-
--- | Returns events on the specified calendar.
---
--- /See:/ 'eventsList' smart constructor.
-data EventsList =
-  EventsList'
-    { _elSyncToken               :: !(Maybe Text)
-    , _elCalendarId              :: !Text
-    , _elTimeMin                 :: !(Maybe DateTime')
-    , _elOrderBy                 :: !(Maybe EventsListOrderBy)
-    , _elSingleEvents            :: !(Maybe Bool)
-    , _elPrivateExtendedProperty :: !(Maybe [Text])
-    , _elShowDeleted             :: !(Maybe Bool)
-    , _elQ                       :: !(Maybe Text)
-    , _elSharedExtendedProperty  :: !(Maybe [Text])
-    , _elMaxAttendees            :: !(Maybe (Textual Int32))
-    , _elICalUId                 :: !(Maybe Text)
-    , _elUpdatedMin              :: !(Maybe DateTime')
-    , _elPageToken               :: !(Maybe Text)
-    , _elTimeZone                :: !(Maybe Text)
-    , _elShowHiddenInvitations   :: !(Maybe Bool)
-    , _elMaxResults              :: !(Textual Int32)
-    , _elAlwaysIncludeEmail      :: !(Maybe Bool)
-    , _elTimeMax                 :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'elSyncToken'
---
--- * 'elCalendarId'
---
--- * 'elTimeMin'
---
--- * 'elOrderBy'
---
--- * 'elSingleEvents'
---
--- * 'elPrivateExtendedProperty'
---
--- * 'elShowDeleted'
---
--- * 'elQ'
---
--- * 'elSharedExtendedProperty'
---
--- * 'elMaxAttendees'
---
--- * 'elICalUId'
---
--- * 'elUpdatedMin'
---
--- * 'elPageToken'
---
--- * 'elTimeZone'
---
--- * 'elShowHiddenInvitations'
---
--- * 'elMaxResults'
---
--- * 'elAlwaysIncludeEmail'
---
--- * 'elTimeMax'
-eventsList
-    :: Text -- ^ 'elCalendarId'
-    -> EventsList
-eventsList pElCalendarId_ =
-  EventsList'
-    { _elSyncToken = Nothing
-    , _elCalendarId = pElCalendarId_
-    , _elTimeMin = Nothing
-    , _elOrderBy = Nothing
-    , _elSingleEvents = Nothing
-    , _elPrivateExtendedProperty = Nothing
-    , _elShowDeleted = Nothing
-    , _elQ = Nothing
-    , _elSharedExtendedProperty = Nothing
-    , _elMaxAttendees = Nothing
-    , _elICalUId = Nothing
-    , _elUpdatedMin = Nothing
-    , _elPageToken = Nothing
-    , _elTimeZone = Nothing
-    , _elShowHiddenInvitations = Nothing
-    , _elMaxResults = 250
-    , _elAlwaysIncludeEmail = Nothing
-    , _elTimeMax = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. All events
--- deleted since the previous list request will always be in the result set
--- and it is not allowed to set showDeleted to False. There are several
--- query parameters that cannot be specified together with nextSyncToken to
--- ensure consistency of the client state. These are: - iCalUID - orderBy -
--- privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax
--- - updatedMin If the syncToken expires, the server will respond with a
--- 410 GONE response code and the client should clear its storage and
--- perform a full synchronization without any syncToken. Learn more about
--- incremental synchronization. Optional. The default is to return all
--- entries.
-elSyncToken :: Lens' EventsList (Maybe Text)
-elSyncToken
-  = lens _elSyncToken (\ s a -> s{_elSyncToken = a})
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-elCalendarId :: Lens' EventsList Text
-elCalendarId
-  = lens _elCalendarId (\ s a -> s{_elCalendarId = a})
-
--- | Lower bound (inclusive) for an event\'s start time to filter by.
--- Optional. The default is not to filter by start time. Must be an RFC3339
--- timestamp with mandatory time zone offset, for example,
--- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be
--- provided but are ignored. If timeMax is set, timeMin must be smaller
--- than timeMax.
-elTimeMin :: Lens' EventsList (Maybe UTCTime)
-elTimeMin
-  = lens _elTimeMin (\ s a -> s{_elTimeMin = a}) .
-      mapping _DateTime
-
--- | The order of the events returned in the result. Optional. The default is
--- an unspecified, stable order.
-elOrderBy :: Lens' EventsList (Maybe EventsListOrderBy)
-elOrderBy
-  = lens _elOrderBy (\ s a -> s{_elOrderBy = a})
-
--- | Whether to expand recurring events into instances and only return single
--- one-off events and instances of recurring events, but not the underlying
--- recurring events themselves. Optional. The default is False.
-elSingleEvents :: Lens' EventsList (Maybe Bool)
-elSingleEvents
-  = lens _elSingleEvents
-      (\ s a -> s{_elSingleEvents = a})
-
--- | Extended properties constraint specified as propertyName=value. Matches
--- only private properties. This parameter might be repeated multiple times
--- to return events that match all given constraints.
-elPrivateExtendedProperty :: Lens' EventsList [Text]
-elPrivateExtendedProperty
-  = lens _elPrivateExtendedProperty
-      (\ s a -> s{_elPrivateExtendedProperty = a})
-      . _Default
-      . _Coerce
-
--- | Whether to include deleted events (with status equals \"cancelled\") in
--- the result. Cancelled instances of recurring events (but not the
--- underlying recurring event) will still be included if showDeleted and
--- singleEvents are both False. If showDeleted and singleEvents are both
--- True, only single instances of deleted events (but not the underlying
--- recurring events) are returned. Optional. The default is False.
-elShowDeleted :: Lens' EventsList (Maybe Bool)
-elShowDeleted
-  = lens _elShowDeleted
-      (\ s a -> s{_elShowDeleted = a})
-
--- | Free text search terms to find events that match these terms in any
--- field, except for extended properties. Optional.
-elQ :: Lens' EventsList (Maybe Text)
-elQ = lens _elQ (\ s a -> s{_elQ = a})
-
--- | Extended properties constraint specified as propertyName=value. Matches
--- only shared properties. This parameter might be repeated multiple times
--- to return events that match all given constraints.
-elSharedExtendedProperty :: Lens' EventsList [Text]
-elSharedExtendedProperty
-  = lens _elSharedExtendedProperty
-      (\ s a -> s{_elSharedExtendedProperty = a})
-      . _Default
-      . _Coerce
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-elMaxAttendees :: Lens' EventsList (Maybe Int32)
-elMaxAttendees
-  = lens _elMaxAttendees
-      (\ s a -> s{_elMaxAttendees = a})
-      . mapping _Coerce
-
--- | Specifies event ID in the iCalendar format to be included in the
--- response. Optional.
-elICalUId :: Lens' EventsList (Maybe Text)
-elICalUId
-  = lens _elICalUId (\ s a -> s{_elICalUId = a})
-
--- | Lower bound for an event\'s last modification time (as a RFC3339
--- timestamp) to filter by. When specified, entries deleted since this time
--- will always be included regardless of showDeleted. Optional. The default
--- is not to filter by last modification time.
-elUpdatedMin :: Lens' EventsList (Maybe UTCTime)
-elUpdatedMin
-  = lens _elUpdatedMin (\ s a -> s{_elUpdatedMin = a})
-      . mapping _DateTime
-
--- | Token specifying which result page to return. Optional.
-elPageToken :: Lens' EventsList (Maybe Text)
-elPageToken
-  = lens _elPageToken (\ s a -> s{_elPageToken = a})
-
--- | Time zone used in the response. Optional. The default is the time zone
--- of the calendar.
-elTimeZone :: Lens' EventsList (Maybe Text)
-elTimeZone
-  = lens _elTimeZone (\ s a -> s{_elTimeZone = a})
-
--- | Whether to include hidden invitations in the result. Optional. The
--- default is False.
-elShowHiddenInvitations :: Lens' EventsList (Maybe Bool)
-elShowHiddenInvitations
-  = lens _elShowHiddenInvitations
-      (\ s a -> s{_elShowHiddenInvitations = a})
-
--- | Maximum number of events returned on one result page. The number of
--- events in the resulting page may be less than this value, or none at
--- all, even if there are more events matching the query. Incomplete pages
--- can be detected by a non-empty nextPageToken field in the response. By
--- default the value is 250 events. The page size can never be larger than
--- 2500 events. Optional.
-elMaxResults :: Lens' EventsList Int32
-elMaxResults
-  = lens _elMaxResults (\ s a -> s{_elMaxResults = a})
-      . _Coerce
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-elAlwaysIncludeEmail :: Lens' EventsList (Maybe Bool)
-elAlwaysIncludeEmail
-  = lens _elAlwaysIncludeEmail
-      (\ s a -> s{_elAlwaysIncludeEmail = a})
-
--- | Upper bound (exclusive) for an event\'s end time to filter by. Optional.
--- The default is not to filter by end time. Must be an RFC3339 timestamp
--- with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00,
--- 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If
--- timeMin is set, timeMax must be greater than timeMin.
-elTimeMax :: Lens' EventsList (Maybe UTCTime)
-elTimeMax
-  = lens _elTimeMax (\ s a -> s{_elTimeMax = a}) .
-      mapping _DateTime
-
-instance GoogleRequest EventsList where
-        type Rs EventsList = Events
-        type Scopes EventsList =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events",
-               "https://www.googleapis.com/auth/calendar.events.readonly",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient EventsList'{..}
-          = go _elCalendarId _elSyncToken _elTimeMin _elOrderBy
-              _elSingleEvents
-              (_elPrivateExtendedProperty ^. _Default)
-              _elShowDeleted
-              _elQ
-              (_elSharedExtendedProperty ^. _Default)
-              _elMaxAttendees
-              _elICalUId
-              _elUpdatedMin
-              _elPageToken
-              _elTimeZone
-              _elShowHiddenInvitations
-              (Just _elMaxResults)
-              _elAlwaysIncludeEmail
-              _elTimeMax
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Move.hs b/gen/Network/Google/Resource/Calendar/Events/Move.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Move.hs
+++ /dev/null
@@ -1,150 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Move
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Moves an event to another calendar, i.e. changes an event\'s organizer.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.move@.
-module Network.Google.Resource.Calendar.Events.Move
-    (
-    -- * REST Resource
-      EventsMoveResource
-
-    -- * Creating a Request
-    , eventsMove
-    , EventsMove
-
-    -- * Request Lenses
-    , emDestination
-    , emCalendarId
-    , emSendNotifications
-    , emSendUpdates
-    , emEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.move@ method which the
--- 'EventsMove' request conforms to.
-type EventsMoveResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 "move" :>
-                   QueryParam "destination" Text :>
-                     QueryParam "sendNotifications" Bool :>
-                       QueryParam "sendUpdates" EventsMoveSendUpdates :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Event
-
--- | Moves an event to another calendar, i.e. changes an event\'s organizer.
---
--- /See:/ 'eventsMove' smart constructor.
-data EventsMove =
-  EventsMove'
-    { _emDestination       :: !Text
-    , _emCalendarId        :: !Text
-    , _emSendNotifications :: !(Maybe Bool)
-    , _emSendUpdates       :: !(Maybe EventsMoveSendUpdates)
-    , _emEventId           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsMove' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'emDestination'
---
--- * 'emCalendarId'
---
--- * 'emSendNotifications'
---
--- * 'emSendUpdates'
---
--- * 'emEventId'
-eventsMove
-    :: Text -- ^ 'emDestination'
-    -> Text -- ^ 'emCalendarId'
-    -> Text -- ^ 'emEventId'
-    -> EventsMove
-eventsMove pEmDestination_ pEmCalendarId_ pEmEventId_ =
-  EventsMove'
-    { _emDestination = pEmDestination_
-    , _emCalendarId = pEmCalendarId_
-    , _emSendNotifications = Nothing
-    , _emSendUpdates = Nothing
-    , _emEventId = pEmEventId_
-    }
-
-
--- | Calendar identifier of the target calendar where the event is to be
--- moved to.
-emDestination :: Lens' EventsMove Text
-emDestination
-  = lens _emDestination
-      (\ s a -> s{_emDestination = a})
-
--- | Calendar identifier of the source calendar where the event currently is
--- on.
-emCalendarId :: Lens' EventsMove Text
-emCalendarId
-  = lens _emCalendarId (\ s a -> s{_emCalendarId = a})
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the change of the event\'s organizer. Note that some
--- emails might still be sent even if you set the value to false. The
--- default is false.
-emSendNotifications :: Lens' EventsMove (Maybe Bool)
-emSendNotifications
-  = lens _emSendNotifications
-      (\ s a -> s{_emSendNotifications = a})
-
--- | Guests who should receive notifications about the change of the event\'s
--- organizer.
-emSendUpdates :: Lens' EventsMove (Maybe EventsMoveSendUpdates)
-emSendUpdates
-  = lens _emSendUpdates
-      (\ s a -> s{_emSendUpdates = a})
-
--- | Event identifier.
-emEventId :: Lens' EventsMove Text
-emEventId
-  = lens _emEventId (\ s a -> s{_emEventId = a})
-
-instance GoogleRequest EventsMove where
-        type Rs EventsMove = Event
-        type Scopes EventsMove =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsMove'{..}
-          = go _emCalendarId _emEventId (Just _emDestination)
-              _emSendNotifications
-              _emSendUpdates
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsMoveResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Patch.hs b/gen/Network/Google/Resource/Calendar/Events/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Patch.hs
+++ /dev/null
@@ -1,215 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an event. This method supports patch semantics.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.patch@.
-module Network.Google.Resource.Calendar.Events.Patch
-    (
-    -- * REST Resource
-      EventsPatchResource
-
-    -- * Creating a Request
-    , eventsPatch
-    , EventsPatch
-
-    -- * Request Lenses
-    , epConferenceDataVersion
-    , epCalendarId
-    , epPayload
-    , epMaxAttendees
-    , epSendNotifications
-    , epSupportsAttachments
-    , epSendUpdates
-    , epAlwaysIncludeEmail
-    , epEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.patch@ method which the
--- 'EventsPatch' request conforms to.
-type EventsPatchResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 QueryParam "conferenceDataVersion" (Textual Int32) :>
-                   QueryParam "maxAttendees" (Textual Int32) :>
-                     QueryParam "sendNotifications" Bool :>
-                       QueryParam "supportsAttachments" Bool :>
-                         QueryParam "sendUpdates" EventsPatchSendUpdates :>
-                           QueryParam "alwaysIncludeEmail" Bool :>
-                             QueryParam "alt" AltJSON :>
-                               ReqBody '[JSON] Event :> Patch '[JSON] Event
-
--- | Updates an event. This method supports patch semantics.
---
--- /See:/ 'eventsPatch' smart constructor.
-data EventsPatch =
-  EventsPatch'
-    { _epConferenceDataVersion :: !(Maybe (Textual Int32))
-    , _epCalendarId            :: !Text
-    , _epPayload               :: !Event
-    , _epMaxAttendees          :: !(Maybe (Textual Int32))
-    , _epSendNotifications     :: !(Maybe Bool)
-    , _epSupportsAttachments   :: !(Maybe Bool)
-    , _epSendUpdates           :: !(Maybe EventsPatchSendUpdates)
-    , _epAlwaysIncludeEmail    :: !(Maybe Bool)
-    , _epEventId               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'epConferenceDataVersion'
---
--- * 'epCalendarId'
---
--- * 'epPayload'
---
--- * 'epMaxAttendees'
---
--- * 'epSendNotifications'
---
--- * 'epSupportsAttachments'
---
--- * 'epSendUpdates'
---
--- * 'epAlwaysIncludeEmail'
---
--- * 'epEventId'
-eventsPatch
-    :: Text -- ^ 'epCalendarId'
-    -> Event -- ^ 'epPayload'
-    -> Text -- ^ 'epEventId'
-    -> EventsPatch
-eventsPatch pEpCalendarId_ pEpPayload_ pEpEventId_ =
-  EventsPatch'
-    { _epConferenceDataVersion = Nothing
-    , _epCalendarId = pEpCalendarId_
-    , _epPayload = pEpPayload_
-    , _epMaxAttendees = Nothing
-    , _epSendNotifications = Nothing
-    , _epSupportsAttachments = Nothing
-    , _epSendUpdates = Nothing
-    , _epAlwaysIncludeEmail = Nothing
-    , _epEventId = pEpEventId_
-    }
-
-
--- | Version number of conference data supported by the API client. Version 0
--- assumes no conference data support and ignores conference data in the
--- event\'s body. Version 1 enables support for copying of ConferenceData
--- as well as for creating new conferences using the createRequest field of
--- conferenceData. The default is 0.
-epConferenceDataVersion :: Lens' EventsPatch (Maybe Int32)
-epConferenceDataVersion
-  = lens _epConferenceDataVersion
-      (\ s a -> s{_epConferenceDataVersion = a})
-      . mapping _Coerce
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-epCalendarId :: Lens' EventsPatch Text
-epCalendarId
-  = lens _epCalendarId (\ s a -> s{_epCalendarId = a})
-
--- | Multipart request metadata.
-epPayload :: Lens' EventsPatch Event
-epPayload
-  = lens _epPayload (\ s a -> s{_epPayload = a})
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-epMaxAttendees :: Lens' EventsPatch (Maybe Int32)
-epMaxAttendees
-  = lens _epMaxAttendees
-      (\ s a -> s{_epMaxAttendees = a})
-      . mapping _Coerce
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the event update (for example, description changes,
--- etc.). Note that some emails might still be sent even if you set the
--- value to false. The default is false.
-epSendNotifications :: Lens' EventsPatch (Maybe Bool)
-epSendNotifications
-  = lens _epSendNotifications
-      (\ s a -> s{_epSendNotifications = a})
-
--- | Whether API client performing operation supports event attachments.
--- Optional. The default is False.
-epSupportsAttachments :: Lens' EventsPatch (Maybe Bool)
-epSupportsAttachments
-  = lens _epSupportsAttachments
-      (\ s a -> s{_epSupportsAttachments = a})
-
--- | Guests who should receive notifications about the event update (for
--- example, title changes, etc.).
-epSendUpdates :: Lens' EventsPatch (Maybe EventsPatchSendUpdates)
-epSendUpdates
-  = lens _epSendUpdates
-      (\ s a -> s{_epSendUpdates = a})
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-epAlwaysIncludeEmail :: Lens' EventsPatch (Maybe Bool)
-epAlwaysIncludeEmail
-  = lens _epAlwaysIncludeEmail
-      (\ s a -> s{_epAlwaysIncludeEmail = a})
-
--- | Event identifier.
-epEventId :: Lens' EventsPatch Text
-epEventId
-  = lens _epEventId (\ s a -> s{_epEventId = a})
-
-instance GoogleRequest EventsPatch where
-        type Rs EventsPatch = Event
-        type Scopes EventsPatch =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsPatch'{..}
-          = go _epCalendarId _epEventId
-              _epConferenceDataVersion
-              _epMaxAttendees
-              _epSendNotifications
-              _epSupportsAttachments
-              _epSendUpdates
-              _epAlwaysIncludeEmail
-              (Just AltJSON)
-              _epPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs b/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.QuickAdd
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an event based on a simple text string.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.quickAdd@.
-module Network.Google.Resource.Calendar.Events.QuickAdd
-    (
-    -- * REST Resource
-      EventsQuickAddResource
-
-    -- * Creating a Request
-    , eventsQuickAdd
-    , EventsQuickAdd
-
-    -- * Request Lenses
-    , eqaCalendarId
-    , eqaText
-    , eqaSendNotifications
-    , eqaSendUpdates
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.quickAdd@ method which the
--- 'EventsQuickAdd' request conforms to.
-type EventsQuickAddResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               "quickAdd" :>
-                 QueryParam "text" Text :>
-                   QueryParam "sendNotifications" Bool :>
-                     QueryParam "sendUpdates" EventsQuickAddSendUpdates :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Event
-
--- | Creates an event based on a simple text string.
---
--- /See:/ 'eventsQuickAdd' smart constructor.
-data EventsQuickAdd =
-  EventsQuickAdd'
-    { _eqaCalendarId        :: !Text
-    , _eqaText              :: !Text
-    , _eqaSendNotifications :: !(Maybe Bool)
-    , _eqaSendUpdates       :: !(Maybe EventsQuickAddSendUpdates)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsQuickAdd' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eqaCalendarId'
---
--- * 'eqaText'
---
--- * 'eqaSendNotifications'
---
--- * 'eqaSendUpdates'
-eventsQuickAdd
-    :: Text -- ^ 'eqaCalendarId'
-    -> Text -- ^ 'eqaText'
-    -> EventsQuickAdd
-eventsQuickAdd pEqaCalendarId_ pEqaText_ =
-  EventsQuickAdd'
-    { _eqaCalendarId = pEqaCalendarId_
-    , _eqaText = pEqaText_
-    , _eqaSendNotifications = Nothing
-    , _eqaSendUpdates = Nothing
-    }
-
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-eqaCalendarId :: Lens' EventsQuickAdd Text
-eqaCalendarId
-  = lens _eqaCalendarId
-      (\ s a -> s{_eqaCalendarId = a})
-
--- | The text describing the event to be created.
-eqaText :: Lens' EventsQuickAdd Text
-eqaText = lens _eqaText (\ s a -> s{_eqaText = a})
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the creation of the event. Note that some emails
--- might still be sent even if you set the value to false. The default is
--- false.
-eqaSendNotifications :: Lens' EventsQuickAdd (Maybe Bool)
-eqaSendNotifications
-  = lens _eqaSendNotifications
-      (\ s a -> s{_eqaSendNotifications = a})
-
--- | Guests who should receive notifications about the creation of the new
--- event.
-eqaSendUpdates :: Lens' EventsQuickAdd (Maybe EventsQuickAddSendUpdates)
-eqaSendUpdates
-  = lens _eqaSendUpdates
-      (\ s a -> s{_eqaSendUpdates = a})
-
-instance GoogleRequest EventsQuickAdd where
-        type Rs EventsQuickAdd = Event
-        type Scopes EventsQuickAdd =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsQuickAdd'{..}
-          = go _eqaCalendarId (Just _eqaText)
-              _eqaSendNotifications
-              _eqaSendUpdates
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsQuickAddResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Update.hs b/gen/Network/Google/Resource/Calendar/Events/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Update.hs
+++ /dev/null
@@ -1,215 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an event.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.update@.
-module Network.Google.Resource.Calendar.Events.Update
-    (
-    -- * REST Resource
-      EventsUpdateResource
-
-    -- * Creating a Request
-    , eventsUpdate
-    , EventsUpdate
-
-    -- * Request Lenses
-    , euConferenceDataVersion
-    , euCalendarId
-    , euPayload
-    , euMaxAttendees
-    , euSendNotifications
-    , euSupportsAttachments
-    , euSendUpdates
-    , euAlwaysIncludeEmail
-    , euEventId
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.update@ method which the
--- 'EventsUpdate' request conforms to.
-type EventsUpdateResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               Capture "eventId" Text :>
-                 QueryParam "conferenceDataVersion" (Textual Int32) :>
-                   QueryParam "maxAttendees" (Textual Int32) :>
-                     QueryParam "sendNotifications" Bool :>
-                       QueryParam "supportsAttachments" Bool :>
-                         QueryParam "sendUpdates" EventsUpdateSendUpdates :>
-                           QueryParam "alwaysIncludeEmail" Bool :>
-                             QueryParam "alt" AltJSON :>
-                               ReqBody '[JSON] Event :> Put '[JSON] Event
-
--- | Updates an event.
---
--- /See:/ 'eventsUpdate' smart constructor.
-data EventsUpdate =
-  EventsUpdate'
-    { _euConferenceDataVersion :: !(Maybe (Textual Int32))
-    , _euCalendarId            :: !Text
-    , _euPayload               :: !Event
-    , _euMaxAttendees          :: !(Maybe (Textual Int32))
-    , _euSendNotifications     :: !(Maybe Bool)
-    , _euSupportsAttachments   :: !(Maybe Bool)
-    , _euSendUpdates           :: !(Maybe EventsUpdateSendUpdates)
-    , _euAlwaysIncludeEmail    :: !(Maybe Bool)
-    , _euEventId               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'euConferenceDataVersion'
---
--- * 'euCalendarId'
---
--- * 'euPayload'
---
--- * 'euMaxAttendees'
---
--- * 'euSendNotifications'
---
--- * 'euSupportsAttachments'
---
--- * 'euSendUpdates'
---
--- * 'euAlwaysIncludeEmail'
---
--- * 'euEventId'
-eventsUpdate
-    :: Text -- ^ 'euCalendarId'
-    -> Event -- ^ 'euPayload'
-    -> Text -- ^ 'euEventId'
-    -> EventsUpdate
-eventsUpdate pEuCalendarId_ pEuPayload_ pEuEventId_ =
-  EventsUpdate'
-    { _euConferenceDataVersion = Nothing
-    , _euCalendarId = pEuCalendarId_
-    , _euPayload = pEuPayload_
-    , _euMaxAttendees = Nothing
-    , _euSendNotifications = Nothing
-    , _euSupportsAttachments = Nothing
-    , _euSendUpdates = Nothing
-    , _euAlwaysIncludeEmail = Nothing
-    , _euEventId = pEuEventId_
-    }
-
-
--- | Version number of conference data supported by the API client. Version 0
--- assumes no conference data support and ignores conference data in the
--- event\'s body. Version 1 enables support for copying of ConferenceData
--- as well as for creating new conferences using the createRequest field of
--- conferenceData. The default is 0.
-euConferenceDataVersion :: Lens' EventsUpdate (Maybe Int32)
-euConferenceDataVersion
-  = lens _euConferenceDataVersion
-      (\ s a -> s{_euConferenceDataVersion = a})
-      . mapping _Coerce
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-euCalendarId :: Lens' EventsUpdate Text
-euCalendarId
-  = lens _euCalendarId (\ s a -> s{_euCalendarId = a})
-
--- | Multipart request metadata.
-euPayload :: Lens' EventsUpdate Event
-euPayload
-  = lens _euPayload (\ s a -> s{_euPayload = a})
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-euMaxAttendees :: Lens' EventsUpdate (Maybe Int32)
-euMaxAttendees
-  = lens _euMaxAttendees
-      (\ s a -> s{_euMaxAttendees = a})
-      . mapping _Coerce
-
--- | Deprecated. Please use sendUpdates instead. Whether to send
--- notifications about the event update (for example, description changes,
--- etc.). Note that some emails might still be sent even if you set the
--- value to false. The default is false.
-euSendNotifications :: Lens' EventsUpdate (Maybe Bool)
-euSendNotifications
-  = lens _euSendNotifications
-      (\ s a -> s{_euSendNotifications = a})
-
--- | Whether API client performing operation supports event attachments.
--- Optional. The default is False.
-euSupportsAttachments :: Lens' EventsUpdate (Maybe Bool)
-euSupportsAttachments
-  = lens _euSupportsAttachments
-      (\ s a -> s{_euSupportsAttachments = a})
-
--- | Guests who should receive notifications about the event update (for
--- example, title changes, etc.).
-euSendUpdates :: Lens' EventsUpdate (Maybe EventsUpdateSendUpdates)
-euSendUpdates
-  = lens _euSendUpdates
-      (\ s a -> s{_euSendUpdates = a})
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-euAlwaysIncludeEmail :: Lens' EventsUpdate (Maybe Bool)
-euAlwaysIncludeEmail
-  = lens _euAlwaysIncludeEmail
-      (\ s a -> s{_euAlwaysIncludeEmail = a})
-
--- | Event identifier.
-euEventId :: Lens' EventsUpdate Text
-euEventId
-  = lens _euEventId (\ s a -> s{_euEventId = a})
-
-instance GoogleRequest EventsUpdate where
-        type Rs EventsUpdate = Event
-        type Scopes EventsUpdate =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events"]
-        requestClient EventsUpdate'{..}
-          = go _euCalendarId _euEventId
-              _euConferenceDataVersion
-              _euMaxAttendees
-              _euSendNotifications
-              _euSupportsAttachments
-              _euSendUpdates
-              _euAlwaysIncludeEmail
-              (Just AltJSON)
-              _euPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Events/Watch.hs b/gen/Network/Google/Resource/Calendar/Events/Watch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Events/Watch.hs
+++ /dev/null
@@ -1,386 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Events.Watch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Watch for changes to Events resources.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.events.watch@.
-module Network.Google.Resource.Calendar.Events.Watch
-    (
-    -- * REST Resource
-      EventsWatchResource
-
-    -- * Creating a Request
-    , eventsWatch
-    , EventsWatch
-
-    -- * Request Lenses
-    , ewSyncToken
-    , ewCalendarId
-    , ewTimeMin
-    , ewOrderBy
-    , ewSingleEvents
-    , ewPrivateExtendedProperty
-    , ewShowDeleted
-    , ewPayload
-    , ewQ
-    , ewSharedExtendedProperty
-    , ewMaxAttendees
-    , ewICalUId
-    , ewUpdatedMin
-    , ewPageToken
-    , ewTimeZone
-    , ewShowHiddenInvitations
-    , ewMaxResults
-    , ewAlwaysIncludeEmail
-    , ewTimeMax
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.events.watch@ method which the
--- 'EventsWatch' request conforms to.
-type EventsWatchResource =
-     "calendar" :>
-       "v3" :>
-         "calendars" :>
-           Capture "calendarId" Text :>
-             "events" :>
-               "watch" :>
-                 QueryParam "syncToken" Text :>
-                   QueryParam "timeMin" DateTime' :>
-                     QueryParam "orderBy" EventsWatchOrderBy :>
-                       QueryParam "singleEvents" Bool :>
-                         QueryParams "privateExtendedProperty" Text :>
-                           QueryParam "showDeleted" Bool :>
-                             QueryParam "q" Text :>
-                               QueryParams "sharedExtendedProperty" Text :>
-                                 QueryParam "maxAttendees" (Textual Int32) :>
-                                   QueryParam "iCalUID" Text :>
-                                     QueryParam "updatedMin" DateTime' :>
-                                       QueryParam "pageToken" Text :>
-                                         QueryParam "timeZone" Text :>
-                                           QueryParam "showHiddenInvitations"
-                                             Bool
-                                             :>
-                                             QueryParam "maxResults"
-                                               (Textual Int32)
-                                               :>
-                                               QueryParam "alwaysIncludeEmail"
-                                                 Bool
-                                                 :>
-                                                 QueryParam "timeMax" DateTime'
-                                                   :>
-                                                   QueryParam "alt" AltJSON :>
-                                                     ReqBody '[JSON] Channel :>
-                                                       Post '[JSON] Channel
-
--- | Watch for changes to Events resources.
---
--- /See:/ 'eventsWatch' smart constructor.
-data EventsWatch =
-  EventsWatch'
-    { _ewSyncToken               :: !(Maybe Text)
-    , _ewCalendarId              :: !Text
-    , _ewTimeMin                 :: !(Maybe DateTime')
-    , _ewOrderBy                 :: !(Maybe EventsWatchOrderBy)
-    , _ewSingleEvents            :: !(Maybe Bool)
-    , _ewPrivateExtendedProperty :: !(Maybe [Text])
-    , _ewShowDeleted             :: !(Maybe Bool)
-    , _ewPayload                 :: !Channel
-    , _ewQ                       :: !(Maybe Text)
-    , _ewSharedExtendedProperty  :: !(Maybe [Text])
-    , _ewMaxAttendees            :: !(Maybe (Textual Int32))
-    , _ewICalUId                 :: !(Maybe Text)
-    , _ewUpdatedMin              :: !(Maybe DateTime')
-    , _ewPageToken               :: !(Maybe Text)
-    , _ewTimeZone                :: !(Maybe Text)
-    , _ewShowHiddenInvitations   :: !(Maybe Bool)
-    , _ewMaxResults              :: !(Textual Int32)
-    , _ewAlwaysIncludeEmail      :: !(Maybe Bool)
-    , _ewTimeMax                 :: !(Maybe DateTime')
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'EventsWatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ewSyncToken'
---
--- * 'ewCalendarId'
---
--- * 'ewTimeMin'
---
--- * 'ewOrderBy'
---
--- * 'ewSingleEvents'
---
--- * 'ewPrivateExtendedProperty'
---
--- * 'ewShowDeleted'
---
--- * 'ewPayload'
---
--- * 'ewQ'
---
--- * 'ewSharedExtendedProperty'
---
--- * 'ewMaxAttendees'
---
--- * 'ewICalUId'
---
--- * 'ewUpdatedMin'
---
--- * 'ewPageToken'
---
--- * 'ewTimeZone'
---
--- * 'ewShowHiddenInvitations'
---
--- * 'ewMaxResults'
---
--- * 'ewAlwaysIncludeEmail'
---
--- * 'ewTimeMax'
-eventsWatch
-    :: Text -- ^ 'ewCalendarId'
-    -> Channel -- ^ 'ewPayload'
-    -> EventsWatch
-eventsWatch pEwCalendarId_ pEwPayload_ =
-  EventsWatch'
-    { _ewSyncToken = Nothing
-    , _ewCalendarId = pEwCalendarId_
-    , _ewTimeMin = Nothing
-    , _ewOrderBy = Nothing
-    , _ewSingleEvents = Nothing
-    , _ewPrivateExtendedProperty = Nothing
-    , _ewShowDeleted = Nothing
-    , _ewPayload = pEwPayload_
-    , _ewQ = Nothing
-    , _ewSharedExtendedProperty = Nothing
-    , _ewMaxAttendees = Nothing
-    , _ewICalUId = Nothing
-    , _ewUpdatedMin = Nothing
-    , _ewPageToken = Nothing
-    , _ewTimeZone = Nothing
-    , _ewShowHiddenInvitations = Nothing
-    , _ewMaxResults = 250
-    , _ewAlwaysIncludeEmail = Nothing
-    , _ewTimeMax = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. All events
--- deleted since the previous list request will always be in the result set
--- and it is not allowed to set showDeleted to False. There are several
--- query parameters that cannot be specified together with nextSyncToken to
--- ensure consistency of the client state. These are: - iCalUID - orderBy -
--- privateExtendedProperty - q - sharedExtendedProperty - timeMin - timeMax
--- - updatedMin If the syncToken expires, the server will respond with a
--- 410 GONE response code and the client should clear its storage and
--- perform a full synchronization without any syncToken. Learn more about
--- incremental synchronization. Optional. The default is to return all
--- entries.
-ewSyncToken :: Lens' EventsWatch (Maybe Text)
-ewSyncToken
-  = lens _ewSyncToken (\ s a -> s{_ewSyncToken = a})
-
--- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
--- method. If you want to access the primary calendar of the currently
--- logged in user, use the \"primary\" keyword.
-ewCalendarId :: Lens' EventsWatch Text
-ewCalendarId
-  = lens _ewCalendarId (\ s a -> s{_ewCalendarId = a})
-
--- | Lower bound (inclusive) for an event\'s start time to filter by.
--- Optional. The default is not to filter by start time. Must be an RFC3339
--- timestamp with mandatory time zone offset, for example,
--- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be
--- provided but are ignored. If timeMax is set, timeMin must be smaller
--- than timeMax.
-ewTimeMin :: Lens' EventsWatch (Maybe UTCTime)
-ewTimeMin
-  = lens _ewTimeMin (\ s a -> s{_ewTimeMin = a}) .
-      mapping _DateTime
-
--- | The order of the events returned in the result. Optional. The default is
--- an unspecified, stable order.
-ewOrderBy :: Lens' EventsWatch (Maybe EventsWatchOrderBy)
-ewOrderBy
-  = lens _ewOrderBy (\ s a -> s{_ewOrderBy = a})
-
--- | Whether to expand recurring events into instances and only return single
--- one-off events and instances of recurring events, but not the underlying
--- recurring events themselves. Optional. The default is False.
-ewSingleEvents :: Lens' EventsWatch (Maybe Bool)
-ewSingleEvents
-  = lens _ewSingleEvents
-      (\ s a -> s{_ewSingleEvents = a})
-
--- | Extended properties constraint specified as propertyName=value. Matches
--- only private properties. This parameter might be repeated multiple times
--- to return events that match all given constraints.
-ewPrivateExtendedProperty :: Lens' EventsWatch [Text]
-ewPrivateExtendedProperty
-  = lens _ewPrivateExtendedProperty
-      (\ s a -> s{_ewPrivateExtendedProperty = a})
-      . _Default
-      . _Coerce
-
--- | Whether to include deleted events (with status equals \"cancelled\") in
--- the result. Cancelled instances of recurring events (but not the
--- underlying recurring event) will still be included if showDeleted and
--- singleEvents are both False. If showDeleted and singleEvents are both
--- True, only single instances of deleted events (but not the underlying
--- recurring events) are returned. Optional. The default is False.
-ewShowDeleted :: Lens' EventsWatch (Maybe Bool)
-ewShowDeleted
-  = lens _ewShowDeleted
-      (\ s a -> s{_ewShowDeleted = a})
-
--- | Multipart request metadata.
-ewPayload :: Lens' EventsWatch Channel
-ewPayload
-  = lens _ewPayload (\ s a -> s{_ewPayload = a})
-
--- | Free text search terms to find events that match these terms in any
--- field, except for extended properties. Optional.
-ewQ :: Lens' EventsWatch (Maybe Text)
-ewQ = lens _ewQ (\ s a -> s{_ewQ = a})
-
--- | Extended properties constraint specified as propertyName=value. Matches
--- only shared properties. This parameter might be repeated multiple times
--- to return events that match all given constraints.
-ewSharedExtendedProperty :: Lens' EventsWatch [Text]
-ewSharedExtendedProperty
-  = lens _ewSharedExtendedProperty
-      (\ s a -> s{_ewSharedExtendedProperty = a})
-      . _Default
-      . _Coerce
-
--- | The maximum number of attendees to include in the response. If there are
--- more than the specified number of attendees, only the participant is
--- returned. Optional.
-ewMaxAttendees :: Lens' EventsWatch (Maybe Int32)
-ewMaxAttendees
-  = lens _ewMaxAttendees
-      (\ s a -> s{_ewMaxAttendees = a})
-      . mapping _Coerce
-
--- | Specifies event ID in the iCalendar format to be included in the
--- response. Optional.
-ewICalUId :: Lens' EventsWatch (Maybe Text)
-ewICalUId
-  = lens _ewICalUId (\ s a -> s{_ewICalUId = a})
-
--- | Lower bound for an event\'s last modification time (as a RFC3339
--- timestamp) to filter by. When specified, entries deleted since this time
--- will always be included regardless of showDeleted. Optional. The default
--- is not to filter by last modification time.
-ewUpdatedMin :: Lens' EventsWatch (Maybe UTCTime)
-ewUpdatedMin
-  = lens _ewUpdatedMin (\ s a -> s{_ewUpdatedMin = a})
-      . mapping _DateTime
-
--- | Token specifying which result page to return. Optional.
-ewPageToken :: Lens' EventsWatch (Maybe Text)
-ewPageToken
-  = lens _ewPageToken (\ s a -> s{_ewPageToken = a})
-
--- | Time zone used in the response. Optional. The default is the time zone
--- of the calendar.
-ewTimeZone :: Lens' EventsWatch (Maybe Text)
-ewTimeZone
-  = lens _ewTimeZone (\ s a -> s{_ewTimeZone = a})
-
--- | Whether to include hidden invitations in the result. Optional. The
--- default is False.
-ewShowHiddenInvitations :: Lens' EventsWatch (Maybe Bool)
-ewShowHiddenInvitations
-  = lens _ewShowHiddenInvitations
-      (\ s a -> s{_ewShowHiddenInvitations = a})
-
--- | Maximum number of events returned on one result page. The number of
--- events in the resulting page may be less than this value, or none at
--- all, even if there are more events matching the query. Incomplete pages
--- can be detected by a non-empty nextPageToken field in the response. By
--- default the value is 250 events. The page size can never be larger than
--- 2500 events. Optional.
-ewMaxResults :: Lens' EventsWatch Int32
-ewMaxResults
-  = lens _ewMaxResults (\ s a -> s{_ewMaxResults = a})
-      . _Coerce
-
--- | Whether to always include a value in the email field for the organizer,
--- creator and attendees, even if no real email is available (i.e. a
--- generated, non-working value will be provided). The use of this option
--- is discouraged and should only be used by clients which cannot handle
--- the absence of an email address value in the mentioned places. Optional.
--- The default is False.
-ewAlwaysIncludeEmail :: Lens' EventsWatch (Maybe Bool)
-ewAlwaysIncludeEmail
-  = lens _ewAlwaysIncludeEmail
-      (\ s a -> s{_ewAlwaysIncludeEmail = a})
-
--- | Upper bound (exclusive) for an event\'s end time to filter by. Optional.
--- The default is not to filter by end time. Must be an RFC3339 timestamp
--- with mandatory time zone offset, for example, 2011-06-03T10:00:00-07:00,
--- 2011-06-03T10:00:00Z. Milliseconds may be provided but are ignored. If
--- timeMin is set, timeMax must be greater than timeMin.
-ewTimeMax :: Lens' EventsWatch (Maybe UTCTime)
-ewTimeMax
-  = lens _ewTimeMax (\ s a -> s{_ewTimeMax = a}) .
-      mapping _DateTime
-
-instance GoogleRequest EventsWatch where
-        type Rs EventsWatch = Channel
-        type Scopes EventsWatch =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.events",
-               "https://www.googleapis.com/auth/calendar.events.readonly",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient EventsWatch'{..}
-          = go _ewCalendarId _ewSyncToken _ewTimeMin _ewOrderBy
-              _ewSingleEvents
-              (_ewPrivateExtendedProperty ^. _Default)
-              _ewShowDeleted
-              _ewQ
-              (_ewSharedExtendedProperty ^. _Default)
-              _ewMaxAttendees
-              _ewICalUId
-              _ewUpdatedMin
-              _ewPageToken
-              _ewTimeZone
-              _ewShowHiddenInvitations
-              (Just _ewMaxResults)
-              _ewAlwaysIncludeEmail
-              _ewTimeMax
-              (Just AltJSON)
-              _ewPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy EventsWatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/FreeBusy/Query.hs b/gen/Network/Google/Resource/Calendar/FreeBusy/Query.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/FreeBusy/Query.hs
+++ /dev/null
@@ -1,87 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.FreeBusy.Query
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns free\/busy information for a set of calendars.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.freebusy.query@.
-module Network.Google.Resource.Calendar.FreeBusy.Query
-    (
-    -- * REST Resource
-      FreeBusyQueryResource
-
-    -- * Creating a Request
-    , freeBusyQuery
-    , FreeBusyQuery
-
-    -- * Request Lenses
-    , fbqPayload
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.freebusy.query@ method which the
--- 'FreeBusyQuery' request conforms to.
-type FreeBusyQueryResource =
-     "calendar" :>
-       "v3" :>
-         "freeBusy" :>
-           QueryParam "alt" AltJSON :>
-             ReqBody '[JSON] FreeBusyRequest :>
-               Post '[JSON] FreeBusyResponse
-
--- | Returns free\/busy information for a set of calendars.
---
--- /See:/ 'freeBusyQuery' smart constructor.
-newtype FreeBusyQuery =
-  FreeBusyQuery'
-    { _fbqPayload :: FreeBusyRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FreeBusyQuery' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fbqPayload'
-freeBusyQuery
-    :: FreeBusyRequest -- ^ 'fbqPayload'
-    -> FreeBusyQuery
-freeBusyQuery pFbqPayload_ = FreeBusyQuery' {_fbqPayload = pFbqPayload_}
-
-
--- | Multipart request metadata.
-fbqPayload :: Lens' FreeBusyQuery FreeBusyRequest
-fbqPayload
-  = lens _fbqPayload (\ s a -> s{_fbqPayload = a})
-
-instance GoogleRequest FreeBusyQuery where
-        type Rs FreeBusyQuery = FreeBusyResponse
-        type Scopes FreeBusyQuery =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
-        requestClient FreeBusyQuery'{..}
-          = go (Just AltJSON) _fbqPayload appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy FreeBusyQueryResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Settings/Get.hs b/gen/Network/Google/Resource/Calendar/Settings/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Settings/Get.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Settings.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a single user setting.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.get@.
-module Network.Google.Resource.Calendar.Settings.Get
-    (
-    -- * REST Resource
-      SettingsGetResource
-
-    -- * Creating a Request
-    , settingsGet
-    , SettingsGet
-
-    -- * Request Lenses
-    , sgSetting
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.settings.get@ method which the
--- 'SettingsGet' request conforms to.
-type SettingsGetResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "settings" :>
-               Capture "setting" Text :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Setting
-
--- | Returns a single user setting.
---
--- /See:/ 'settingsGet' smart constructor.
-newtype SettingsGet =
-  SettingsGet'
-    { _sgSetting :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SettingsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sgSetting'
-settingsGet
-    :: Text -- ^ 'sgSetting'
-    -> SettingsGet
-settingsGet pSgSetting_ = SettingsGet' {_sgSetting = pSgSetting_}
-
-
--- | The id of the user setting.
-sgSetting :: Lens' SettingsGet Text
-sgSetting
-  = lens _sgSetting (\ s a -> s{_sgSetting = a})
-
-instance GoogleRequest SettingsGet where
-        type Rs SettingsGet = Setting
-        type Scopes SettingsGet =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly",
-               "https://www.googleapis.com/auth/calendar.settings.readonly"]
-        requestClient SettingsGet'{..}
-          = go _sgSetting (Just AltJSON) appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy SettingsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Settings/List.hs b/gen/Network/Google/Resource/Calendar/Settings/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Settings/List.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Settings.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns all user settings for the authenticated user.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.list@.
-module Network.Google.Resource.Calendar.Settings.List
-    (
-    -- * REST Resource
-      SettingsListResource
-
-    -- * Creating a Request
-    , settingsList
-    , SettingsList
-
-    -- * Request Lenses
-    , slSyncToken
-    , slPageToken
-    , slMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.settings.list@ method which the
--- 'SettingsList' request conforms to.
-type SettingsListResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "settings" :>
-               QueryParam "syncToken" Text :>
-                 QueryParam "pageToken" Text :>
-                   QueryParam "maxResults" (Textual Int32) :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Settings
-
--- | Returns all user settings for the authenticated user.
---
--- /See:/ 'settingsList' smart constructor.
-data SettingsList =
-  SettingsList'
-    { _slSyncToken  :: !(Maybe Text)
-    , _slPageToken  :: !(Maybe Text)
-    , _slMaxResults :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SettingsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slSyncToken'
---
--- * 'slPageToken'
---
--- * 'slMaxResults'
-settingsList
-    :: SettingsList
-settingsList =
-  SettingsList'
-    {_slSyncToken = Nothing, _slPageToken = Nothing, _slMaxResults = Nothing}
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. If the
--- syncToken expires, the server will respond with a 410 GONE response code
--- and the client should clear its storage and perform a full
--- synchronization without any syncToken. Learn more about incremental
--- synchronization. Optional. The default is to return all entries.
-slSyncToken :: Lens' SettingsList (Maybe Text)
-slSyncToken
-  = lens _slSyncToken (\ s a -> s{_slSyncToken = a})
-
--- | Token specifying which result page to return. Optional.
-slPageToken :: Lens' SettingsList (Maybe Text)
-slPageToken
-  = lens _slPageToken (\ s a -> s{_slPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-slMaxResults :: Lens' SettingsList (Maybe Int32)
-slMaxResults
-  = lens _slMaxResults (\ s a -> s{_slMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest SettingsList where
-        type Rs SettingsList = Settings
-        type Scopes SettingsList =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly",
-               "https://www.googleapis.com/auth/calendar.settings.readonly"]
-        requestClient SettingsList'{..}
-          = go _slSyncToken _slPageToken _slMaxResults
-              (Just AltJSON)
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy SettingsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Calendar/Settings/Watch.hs b/gen/Network/Google/Resource/Calendar/Settings/Watch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Calendar/Settings/Watch.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Calendar.Settings.Watch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Watch for changes to Settings resources.
---
--- /See:/ <https://developers.google.com/google-apps/calendar/firstapp Calendar API Reference> for @calendar.settings.watch@.
-module Network.Google.Resource.Calendar.Settings.Watch
-    (
-    -- * REST Resource
-      SettingsWatchResource
-
-    -- * Creating a Request
-    , settingsWatch
-    , SettingsWatch
-
-    -- * Request Lenses
-    , swSyncToken
-    , swPayload
-    , swPageToken
-    , swMaxResults
-    ) where
-
-import           Network.Google.AppsCalendar.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @calendar.settings.watch@ method which the
--- 'SettingsWatch' request conforms to.
-type SettingsWatchResource =
-     "calendar" :>
-       "v3" :>
-         "users" :>
-           "me" :>
-             "settings" :>
-               "watch" :>
-                 QueryParam "syncToken" Text :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Int32) :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Channel :> Post '[JSON] Channel
-
--- | Watch for changes to Settings resources.
---
--- /See:/ 'settingsWatch' smart constructor.
-data SettingsWatch =
-  SettingsWatch'
-    { _swSyncToken  :: !(Maybe Text)
-    , _swPayload    :: !Channel
-    , _swPageToken  :: !(Maybe Text)
-    , _swMaxResults :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SettingsWatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'swSyncToken'
---
--- * 'swPayload'
---
--- * 'swPageToken'
---
--- * 'swMaxResults'
-settingsWatch
-    :: Channel -- ^ 'swPayload'
-    -> SettingsWatch
-settingsWatch pSwPayload_ =
-  SettingsWatch'
-    { _swSyncToken = Nothing
-    , _swPayload = pSwPayload_
-    , _swPageToken = Nothing
-    , _swMaxResults = Nothing
-    }
-
-
--- | Token obtained from the nextSyncToken field returned on the last page of
--- results from the previous list request. It makes the result of this list
--- request contain only entries that have changed since then. If the
--- syncToken expires, the server will respond with a 410 GONE response code
--- and the client should clear its storage and perform a full
--- synchronization without any syncToken. Learn more about incremental
--- synchronization. Optional. The default is to return all entries.
-swSyncToken :: Lens' SettingsWatch (Maybe Text)
-swSyncToken
-  = lens _swSyncToken (\ s a -> s{_swSyncToken = a})
-
--- | Multipart request metadata.
-swPayload :: Lens' SettingsWatch Channel
-swPayload
-  = lens _swPayload (\ s a -> s{_swPayload = a})
-
--- | Token specifying which result page to return. Optional.
-swPageToken :: Lens' SettingsWatch (Maybe Text)
-swPageToken
-  = lens _swPageToken (\ s a -> s{_swPageToken = a})
-
--- | Maximum number of entries returned on one result page. By default the
--- value is 100 entries. The page size can never be larger than 250
--- entries. Optional.
-swMaxResults :: Lens' SettingsWatch (Maybe Int32)
-swMaxResults
-  = lens _swMaxResults (\ s a -> s{_swMaxResults = a})
-      . mapping _Coerce
-
-instance GoogleRequest SettingsWatch where
-        type Rs SettingsWatch = Channel
-        type Scopes SettingsWatch =
-             '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly",
-               "https://www.googleapis.com/auth/calendar.settings.readonly"]
-        requestClient SettingsWatch'{..}
-          = go _swSyncToken _swPageToken _swMaxResults
-              (Just AltJSON)
-              _swPayload
-              appsCalendarService
-          where go
-                  = buildClient (Proxy :: Proxy SettingsWatchResource)
-                      mempty
diff --git a/gogol-apps-calendar.cabal b/gogol-apps-calendar.cabal
--- a/gogol-apps-calendar.cabal
+++ b/gogol-apps-calendar.cabal
@@ -1,82 +1,97 @@
-name:                  gogol-apps-calendar
-version:               0.5.0
-synopsis:              Google Calendar SDK.
-homepage:              https://github.com/brendanhay/gogol
-bug-reports:           https://github.com/brendanhay/gogol/issues
-license:               OtherLicense
-license-file:          LICENSE
-author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015-2016 Brendan Hay
-category:              Network, Google, Cloud
-build-type:            Simple
-cabal-version:         >= 1.10
-extra-source-files:    README.md src/.gitkeep
+cabal-version:      2.2
+name:               gogol-apps-calendar
+version:            1.0.0
+synopsis:           Google Calendar SDK.
+homepage:           https://github.com/brendanhay/gogol
+bug-reports:        https://github.com/brendanhay/gogol/issues
+license:            MPL-2.0
+license-file:       LICENSE
+author:             Brendan Hay
+maintainer:
+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com>
 
+copyright:          Copyright (c) 2015-2025 Brendan Hay
+category:           Google
+build-type:         Simple
+extra-source-files:
+  README.md
+  src/.gitkeep
+
 description:
-    Manipulates events and other calendar data.
-    .
-    /Warning:/ This is an experimental prototype/preview release which is still
-    under exploratory development and not intended for public use, caveat emptor!
-    .
-    This library is compatible with version @v3@
-    of the API.
+  Manipulates events and other calendar data.
+  .
+  /Warning:/ This is an experimental prototype/preview release which is still
+  under exploratory development and not intended for public use, caveat emptor!
+  .
+  This library is compatible with version @v3@
+  of the API.
 
 source-repository head
-    type:     git
-    location: git://github.com/brendanhay/gogol.git
+  type:     git
+  location: git://github.com/brendanhay/gogol.git
+  subdir:   gogol-apps-calendar
 
+flag field-selectors
+  description:
+    If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.
+
+  default:     False
+  manual:      True
+
 library
-    default-language:  Haskell2010
-    hs-source-dirs:    src gen
+  default-language: GHC2021
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
+    -fwarn-unused-packages
 
-    ghc-options:       -Wall
+  if (!flag(field-selectors) && impl(ghc >=9.2))
+    default-extensions: NoFieldSelectors
 
-    exposed-modules:
-          Network.Google.AppsCalendar
-        , Network.Google.AppsCalendar.Types
-        , Network.Google.Resource.Calendar.ACL.Delete
-        , Network.Google.Resource.Calendar.ACL.Get
-        , Network.Google.Resource.Calendar.ACL.Insert
-        , Network.Google.Resource.Calendar.ACL.List
-        , Network.Google.Resource.Calendar.ACL.Patch
-        , Network.Google.Resource.Calendar.ACL.Update
-        , Network.Google.Resource.Calendar.ACL.Watch
-        , Network.Google.Resource.Calendar.CalendarList.Delete
-        , Network.Google.Resource.Calendar.CalendarList.Get
-        , Network.Google.Resource.Calendar.CalendarList.Insert
-        , Network.Google.Resource.Calendar.CalendarList.List
-        , Network.Google.Resource.Calendar.CalendarList.Patch
-        , Network.Google.Resource.Calendar.CalendarList.Update
-        , Network.Google.Resource.Calendar.CalendarList.Watch
-        , Network.Google.Resource.Calendar.Calendars.Clear
-        , Network.Google.Resource.Calendar.Calendars.Delete
-        , Network.Google.Resource.Calendar.Calendars.Get
-        , Network.Google.Resource.Calendar.Calendars.Insert
-        , Network.Google.Resource.Calendar.Calendars.Patch
-        , Network.Google.Resource.Calendar.Calendars.Update
-        , Network.Google.Resource.Calendar.Channels.Stop
-        , Network.Google.Resource.Calendar.Colors.Get
-        , Network.Google.Resource.Calendar.Events.Delete
-        , Network.Google.Resource.Calendar.Events.Get
-        , Network.Google.Resource.Calendar.Events.Import
-        , Network.Google.Resource.Calendar.Events.Insert
-        , Network.Google.Resource.Calendar.Events.Instances
-        , Network.Google.Resource.Calendar.Events.List
-        , Network.Google.Resource.Calendar.Events.Move
-        , Network.Google.Resource.Calendar.Events.Patch
-        , Network.Google.Resource.Calendar.Events.QuickAdd
-        , Network.Google.Resource.Calendar.Events.Update
-        , Network.Google.Resource.Calendar.Events.Watch
-        , Network.Google.Resource.Calendar.FreeBusy.Query
-        , Network.Google.Resource.Calendar.Settings.Get
-        , Network.Google.Resource.Calendar.Settings.List
-        , Network.Google.Resource.Calendar.Settings.Watch
+  exposed-modules:
+    Gogol.AppsCalendar
+    Gogol.AppsCalendar.Calendar.Acl.Delete
+    Gogol.AppsCalendar.Calendar.Acl.Get
+    Gogol.AppsCalendar.Calendar.Acl.Insert
+    Gogol.AppsCalendar.Calendar.Acl.List
+    Gogol.AppsCalendar.Calendar.Acl.Patch
+    Gogol.AppsCalendar.Calendar.Acl.Update
+    Gogol.AppsCalendar.Calendar.Acl.Watch
+    Gogol.AppsCalendar.Calendar.CalendarList.Delete
+    Gogol.AppsCalendar.Calendar.CalendarList.Get
+    Gogol.AppsCalendar.Calendar.CalendarList.Insert
+    Gogol.AppsCalendar.Calendar.CalendarList.List
+    Gogol.AppsCalendar.Calendar.CalendarList.Patch
+    Gogol.AppsCalendar.Calendar.CalendarList.Update
+    Gogol.AppsCalendar.Calendar.CalendarList.Watch
+    Gogol.AppsCalendar.Calendar.Calendars.Clear
+    Gogol.AppsCalendar.Calendar.Calendars.Delete
+    Gogol.AppsCalendar.Calendar.Calendars.Get
+    Gogol.AppsCalendar.Calendar.Calendars.Insert
+    Gogol.AppsCalendar.Calendar.Calendars.Patch
+    Gogol.AppsCalendar.Calendar.Calendars.Update
+    Gogol.AppsCalendar.Calendar.Channels.Stop
+    Gogol.AppsCalendar.Calendar.Colors.Get
+    Gogol.AppsCalendar.Calendar.Events.Delete
+    Gogol.AppsCalendar.Calendar.Events.Get
+    Gogol.AppsCalendar.Calendar.Events.Import
+    Gogol.AppsCalendar.Calendar.Events.Insert
+    Gogol.AppsCalendar.Calendar.Events.Instances
+    Gogol.AppsCalendar.Calendar.Events.List
+    Gogol.AppsCalendar.Calendar.Events.Move
+    Gogol.AppsCalendar.Calendar.Events.Patch
+    Gogol.AppsCalendar.Calendar.Events.QuickAdd
+    Gogol.AppsCalendar.Calendar.Events.Update
+    Gogol.AppsCalendar.Calendar.Events.Watch
+    Gogol.AppsCalendar.Calendar.Freebusy.Query
+    Gogol.AppsCalendar.Calendar.Settings.Get
+    Gogol.AppsCalendar.Calendar.Settings.List
+    Gogol.AppsCalendar.Calendar.Settings.Watch
+    Gogol.AppsCalendar.Types
 
-    other-modules:
-          Network.Google.AppsCalendar.Types.Product
-        , Network.Google.AppsCalendar.Types.Sum
+  other-modules:
+    Gogol.AppsCalendar.Internal.Product
+    Gogol.AppsCalendar.Internal.Sum
 
-    build-depends:
-          gogol-core == 0.5.0.*
-        , base       >= 4.7 && < 5
+  build-depends:    gogol-core ^>=1.0.0
