diff --git a/gen/Network/Google/AppsCalendar.hs b/gen/Network/Google/AppsCalendar.hs
--- a/gen/Network/Google/AppsCalendar.hs
+++ b/gen/Network/Google/AppsCalendar.hs
@@ -24,6 +24,9 @@
     -- * OAuth Scopes
     , calendarScope
     , calendarReadOnlyScope
+    , calendarEventsScope
+    , calendarSettingsReadOnlyScope
+    , calendarEventsReadOnlyScope
 
     -- * API Declaration
     , AppsCalendarAPI
@@ -147,6 +150,7 @@
     , CalendarListEntry
     , calendarListEntry
     , cleSummary
+    , cleConferenceProperties
     , cleEtag
     , cleLocation
     , cleKind
@@ -165,6 +169,11 @@
     , cleTimeZone
     , cleDescription
 
+    -- ** ConferenceParameters
+    , ConferenceParameters
+    , conferenceParameters
+    , cpAddOnParameters
+
     -- ** Event
     , Event
     , event
@@ -186,6 +195,7 @@
     , eStart
     , ePrivateCopy
     , eEndTimeUnspecified
+    , eConferenceData
     , eExtendedProperties
     , eVisibility
     , eGuestsCanInviteOthers
@@ -211,6 +221,21 @@
     , calendarListEntryNotificationSettings
     , clensNotifications
 
+    -- ** ConferenceProperties
+    , ConferenceProperties
+    , conferenceProperties
+    , cpAllowedConferenceSolutionTypes
+
+    -- ** ConferenceSolution
+    , ConferenceSolution
+    , conferenceSolution
+    , csIconURI
+    , csKey
+    , csName
+
+    -- ** EventsPatchSendUpdates
+    , EventsPatchSendUpdates (..)
+
     -- ** ACLRuleScope
     , ACLRuleScope
     , aclRuleScope
@@ -222,6 +247,9 @@
     , colorsEvent
     , ceAddtional
 
+    -- ** EventsQuickAddSendUpdates
+    , EventsQuickAddSendUpdates (..)
+
     -- ** Settings
     , Settings
     , settings
@@ -245,12 +273,37 @@
     , 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
@@ -274,6 +327,9 @@
     -- ** EventsListOrderBy
     , EventsListOrderBy (..)
 
+    -- ** EventsDeleteSendUpdates
+    , EventsDeleteSendUpdates (..)
+
     -- ** Channel
     , Channel
     , channel
@@ -288,12 +344,28 @@
     , cId
     , cType
 
+    -- ** ConferenceRequestStatus
+    , ConferenceRequestStatus
+    , conferenceRequestStatus
+    , crsStatusCode
+
     -- ** FreeBusyCalendar
     , FreeBusyCalendar
     , freeBusyCalendar
     , fbcBusy
     , fbcErrors
 
+    -- ** ConferenceData
+    , ConferenceData
+    , conferenceData
+    , cdSignature
+    , cdConferenceSolution
+    , cdCreateRequest
+    , cdConferenceId
+    , cdParameters
+    , cdNotes
+    , cdEntryPoints
+
     -- ** Setting
     , Setting
     , setting
@@ -307,6 +379,9 @@
     , freeBusyResponseGroups
     , fbrgAddtional
 
+    -- ** EventsInsertSendUpdates
+    , EventsInsertSendUpdates (..)
+
     -- ** EventReminders
     , EventReminders
     , eventReminders
@@ -318,6 +393,11 @@
     , colorsCalendar
     , ccAddtional
 
+    -- ** ConferenceParametersAddOnParametersParameters
+    , ConferenceParametersAddOnParametersParameters
+    , conferenceParametersAddOnParametersParameters
+    , cpaoppAddtional
+
     -- ** CalendarNotification
     , CalendarNotification
     , calendarNotification
@@ -367,6 +447,7 @@
     , Calendar
     , calendar
     , calSummary
+    , calConferenceProperties
     , calEtag
     , calLocation
     , calKind
@@ -461,6 +542,13 @@
     -- ** EventsWatchOrderBy
     , EventsWatchOrderBy (..)
 
+    -- ** CreateConferenceRequest
+    , CreateConferenceRequest
+    , createConferenceRequest
+    , ccrStatus
+    , ccrRequestId
+    , ccrConferenceSolutionKey
+
     -- ** EventExtendedPropertiesShared
     , EventExtendedPropertiesShared
     , eventExtendedPropertiesShared
@@ -496,6 +584,11 @@
     , freeBusyGroup
     , fbgCalendars
     , fbgErrors
+
+    -- ** ConferenceParametersAddOnParameters
+    , ConferenceParametersAddOnParameters
+    , conferenceParametersAddOnParameters
+    , cpaopParameters
 
     -- ** EventSource
     , EventSource
diff --git a/gen/Network/Google/AppsCalendar/Types.hs b/gen/Network/Google/AppsCalendar/Types.hs
--- a/gen/Network/Google/AppsCalendar/Types.hs
+++ b/gen/Network/Google/AppsCalendar/Types.hs
@@ -22,11 +22,15 @@
     -- * OAuth Scopes
     , calendarScope
     , calendarReadOnlyScope
+    , calendarEventsScope
+    , calendarSettingsReadOnlyScope
+    , calendarEventsReadOnlyScope
 
     -- * CalendarListEntry
     , CalendarListEntry
     , calendarListEntry
     , cleSummary
+    , cleConferenceProperties
     , cleEtag
     , cleLocation
     , cleKind
@@ -45,6 +49,11 @@
     , cleTimeZone
     , cleDescription
 
+    -- * ConferenceParameters
+    , ConferenceParameters
+    , conferenceParameters
+    , cpAddOnParameters
+
     -- * Event
     , Event
     , event
@@ -66,6 +75,7 @@
     , eStart
     , ePrivateCopy
     , eEndTimeUnspecified
+    , eConferenceData
     , eExtendedProperties
     , eVisibility
     , eGuestsCanInviteOthers
@@ -91,6 +101,21 @@
     , calendarListEntryNotificationSettings
     , clensNotifications
 
+    -- * ConferenceProperties
+    , ConferenceProperties
+    , conferenceProperties
+    , cpAllowedConferenceSolutionTypes
+
+    -- * ConferenceSolution
+    , ConferenceSolution
+    , conferenceSolution
+    , csIconURI
+    , csKey
+    , csName
+
+    -- * EventsPatchSendUpdates
+    , EventsPatchSendUpdates (..)
+
     -- * ACLRuleScope
     , ACLRuleScope
     , aclRuleScope
@@ -102,6 +127,9 @@
     , colorsEvent
     , ceAddtional
 
+    -- * EventsQuickAddSendUpdates
+    , EventsQuickAddSendUpdates (..)
+
     -- * Settings
     , Settings
     , settings
@@ -125,12 +153,37 @@
     , 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
@@ -154,6 +207,9 @@
     -- * EventsListOrderBy
     , EventsListOrderBy (..)
 
+    -- * EventsDeleteSendUpdates
+    , EventsDeleteSendUpdates (..)
+
     -- * Channel
     , Channel
     , channel
@@ -168,12 +224,28 @@
     , cId
     , cType
 
+    -- * ConferenceRequestStatus
+    , ConferenceRequestStatus
+    , conferenceRequestStatus
+    , crsStatusCode
+
     -- * FreeBusyCalendar
     , FreeBusyCalendar
     , freeBusyCalendar
     , fbcBusy
     , fbcErrors
 
+    -- * ConferenceData
+    , ConferenceData
+    , conferenceData
+    , cdSignature
+    , cdConferenceSolution
+    , cdCreateRequest
+    , cdConferenceId
+    , cdParameters
+    , cdNotes
+    , cdEntryPoints
+
     -- * Setting
     , Setting
     , setting
@@ -187,6 +259,9 @@
     , freeBusyResponseGroups
     , fbrgAddtional
 
+    -- * EventsInsertSendUpdates
+    , EventsInsertSendUpdates (..)
+
     -- * EventReminders
     , EventReminders
     , eventReminders
@@ -198,6 +273,11 @@
     , colorsCalendar
     , ccAddtional
 
+    -- * ConferenceParametersAddOnParametersParameters
+    , ConferenceParametersAddOnParametersParameters
+    , conferenceParametersAddOnParametersParameters
+    , cpaoppAddtional
+
     -- * CalendarNotification
     , CalendarNotification
     , calendarNotification
@@ -247,6 +327,7 @@
     , Calendar
     , calendar
     , calSummary
+    , calConferenceProperties
     , calEtag
     , calLocation
     , calKind
@@ -341,6 +422,13 @@
     -- * EventsWatchOrderBy
     , EventsWatchOrderBy (..)
 
+    -- * CreateConferenceRequest
+    , CreateConferenceRequest
+    , createConferenceRequest
+    , ccrStatus
+    , ccrRequestId
+    , ccrConferenceSolutionKey
+
     -- * EventExtendedPropertiesShared
     , EventExtendedPropertiesShared
     , eventExtendedPropertiesShared
@@ -377,6 +465,11 @@
     , fbgCalendars
     , fbgErrors
 
+    -- * ConferenceParametersAddOnParameters
+    , ConferenceParametersAddOnParameters
+    , conferenceParametersAddOnParameters
+    , cpaopParameters
+
     -- * EventSource
     , EventSource
     , eventSource
@@ -394,10 +487,23 @@
   = defaultService (ServiceId "calendar:v3")
       "www.googleapis.com"
 
--- | Manage your calendars
+-- | 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
--- a/gen/Network/Google/AppsCalendar/Types/Product.hs
+++ b/gen/Network/Google/AppsCalendar/Types/Product.hs
@@ -24,6 +24,7 @@
 -- /See:/ 'calendarListEntry' smart constructor.
 data CalendarListEntry = CalendarListEntry'
     { _cleSummary              :: !(Maybe Text)
+    , _cleConferenceProperties :: !(Maybe ConferenceProperties)
     , _cleEtag                 :: !(Maybe Text)
     , _cleLocation             :: !(Maybe Text)
     , _cleKind                 :: !Text
@@ -49,6 +50,8 @@
 --
 -- * 'cleSummary'
 --
+-- * 'cleConferenceProperties'
+--
 -- * 'cleEtag'
 --
 -- * 'cleLocation'
@@ -87,6 +90,7 @@
 calendarListEntry =
     CalendarListEntry'
     { _cleSummary = Nothing
+    , _cleConferenceProperties = Nothing
     , _cleEtag = Nothing
     , _cleLocation = Nothing
     , _cleKind = "calendar#calendarListEntry"
@@ -111,6 +115,13 @@
 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})
@@ -232,8 +243,9 @@
           = withObject "CalendarListEntry"
               (\ o ->
                  CalendarListEntry' <$>
-                   (o .:? "summary") <*> (o .:? "etag") <*>
-                     (o .:? "location")
+                   (o .:? "summary") <*> (o .:? "conferenceProperties")
+                     <*> (o .:? "etag")
+                     <*> (o .:? "location")
                      <*> (o .:? "kind" .!= "calendar#calendarListEntry")
                      <*> (o .:? "notificationSettings")
                      <*> (o .:? "backgroundColor")
@@ -255,6 +267,8 @@
           = object
               (catMaybes
                  [("summary" .=) <$> _cleSummary,
+                  ("conferenceProperties" .=) <$>
+                    _cleConferenceProperties,
                   ("etag" .=) <$> _cleEtag,
                   ("location" .=) <$> _cleLocation,
                   Just ("kind" .= _cleKind),
@@ -274,6 +288,42 @@
                   ("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)
@@ -294,6 +344,7 @@
     , _eStart                   :: !(Maybe EventDateTime)
     , _ePrivateCopy             :: !Bool
     , _eEndTimeUnspecified      :: !Bool
+    , _eConferenceData          :: !(Maybe ConferenceData)
     , _eExtendedProperties      :: !(Maybe EventExtendedProperties)
     , _eVisibility              :: !Text
     , _eGuestsCanInviteOthers   :: !Bool
@@ -355,6 +406,8 @@
 --
 -- * 'eEndTimeUnspecified'
 --
+-- * 'eConferenceData'
+--
 -- * 'eExtendedProperties'
 --
 -- * 'eVisibility'
@@ -414,6 +467,7 @@
     , _eStart = Nothing
     , _ePrivateCopy = False
     , _eEndTimeUnspecified = False
+    , _eConferenceData = Nothing
     , _eExtendedProperties = Nothing
     , _eVisibility = "default"
     , _eGuestsCanInviteOthers = True
@@ -441,7 +495,9 @@
 
 -- | 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. Immutable.
+-- 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
@@ -454,7 +510,28 @@
 -- | 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.
+-- 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})
 
@@ -514,9 +591,11 @@
       mapping _DateTime
 
 -- | Whether the event blocks time on the calendar. Optional. Possible values
--- are: - \"opaque\" - The event blocks time on the calendar. This is the
--- default value. - \"transparent\" - The event does not block time on the
--- calendar.
+-- 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
@@ -549,6 +628,16 @@
   = 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
@@ -713,6 +802,7 @@
                      <*> (o .:? "start")
                      <*> (o .:? "privateCopy" .!= False)
                      <*> (o .:? "endTimeUnspecified" .!= False)
+                     <*> (o .:? "conferenceData")
                      <*> (o .:? "extendedProperties")
                      <*> (o .:? "visibility" .!= "default")
                      <*> (o .:? "guestsCanInviteOthers" .!= True)
@@ -755,6 +845,7 @@
                   ("start" .=) <$> _eStart,
                   Just ("privateCopy" .= _ePrivateCopy),
                   Just ("endTimeUnspecified" .= _eEndTimeUnspecified),
+                  ("conferenceData" .=) <$> _eConferenceData,
                   ("extendedProperties" .=) <$> _eExtendedProperties,
                   Just ("visibility" .= _eVisibility),
                   Just
@@ -819,6 +910,103 @@
               (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.
@@ -1053,7 +1241,7 @@
 
 -- | 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.
+-- the Drive API. Required when adding an attachment.
 eaFileURL :: Lens' EventAttachment (Maybe Text)
 eaFileURL
   = lens _eaFileURL (\ s a -> s{_eaFileURL = a})
@@ -1098,6 +1286,182 @@
                   ("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')
@@ -1143,6 +1507,43 @@
               (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.
@@ -1189,7 +1590,7 @@
   = lens _ecDisplayName
       (\ s a -> s{_ecDisplayName = a})
 
--- | The creator\'s Profile ID, if available. It corresponds to theid field
+-- | 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})
@@ -1440,6 +1841,45 @@
                   ("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])
@@ -1491,6 +1931,131 @@
                   ("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)
@@ -1681,6 +2246,44 @@
         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)
@@ -1703,10 +2306,13 @@
     }
 
 -- | The method used to deliver the notification. Possible values are: -
--- \"email\" - Reminders are sent via email. - \"sms\" - Reminders are sent
--- via SMS. This value is read-only and is ignored on inserts and updates.
--- SMS reminders are only available for Google Apps for Work, Education,
--- and Government customers.
+-- \"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})
 
@@ -1714,9 +2320,9 @@
 -- 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 event is changed. -
--- \"agenda\" - An agenda with the events of the day (sent out in the
--- morning).
+-- \"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})
 
@@ -2031,7 +2637,7 @@
 
 -- | 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.
+-- RFC5322. Required when adding an attendee.
 eaEmail :: Lens' EventAttendee (Maybe Text)
 eaEmail = lens _eaEmail (\ s a -> s{_eaEmail = a})
 
@@ -2050,7 +2656,9 @@
 eaSelf :: Lens' EventAttendee Bool
 eaSelf = lens _eaSelf (\ s a -> s{_eaSelf = a})
 
--- | Whether the attendee is a resource. Read-only. The default is False.
+-- | 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})
@@ -2068,7 +2676,7 @@
   = lens _eaDisplayName
       (\ s a -> s{_eaDisplayName = a})
 
--- | The attendee\'s Profile ID, if available. It corresponds to theid field
+-- | 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})
@@ -2121,13 +2729,14 @@
 --
 -- /See:/ 'calendar' smart constructor.
 data Calendar = Calendar'
-    { _calSummary     :: !(Maybe Text)
-    , _calEtag        :: !(Maybe Text)
-    , _calLocation    :: !(Maybe Text)
-    , _calKind        :: !Text
-    , _calId          :: !(Maybe Text)
-    , _calTimeZone    :: !(Maybe Text)
-    , _calDescription :: !(Maybe Text)
+    { _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.
@@ -2136,6 +2745,8 @@
 --
 -- * 'calSummary'
 --
+-- * 'calConferenceProperties'
+--
 -- * 'calEtag'
 --
 -- * 'calLocation'
@@ -2152,6 +2763,7 @@
 calendar =
     Calendar'
     { _calSummary = Nothing
+    , _calConferenceProperties = Nothing
     , _calEtag = Nothing
     , _calLocation = Nothing
     , _calKind = "calendar#calendar"
@@ -2165,6 +2777,13 @@
 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})
@@ -2200,8 +2819,9 @@
           = withObject "Calendar"
               (\ o ->
                  Calendar' <$>
-                   (o .:? "summary") <*> (o .:? "etag") <*>
-                     (o .:? "location")
+                   (o .:? "summary") <*> (o .:? "conferenceProperties")
+                     <*> (o .:? "etag")
+                     <*> (o .:? "location")
                      <*> (o .:? "kind" .!= "calendar#calendar")
                      <*> (o .:? "id")
                      <*> (o .:? "timeZone")
@@ -2212,6 +2832,8 @@
           = object
               (catMaybes
                  [("summary" .=) <$> _calSummary,
+                  ("conferenceProperties" .=) <$>
+                    _calConferenceProperties,
                   ("etag" .=) <$> _calEtag,
                   ("location" .=) <$> _calLocation,
                   Just ("kind" .= _calKind), ("id" .=) <$> _calId,
@@ -2321,15 +2943,19 @@
     }
 
 -- | The method used by this reminder. Possible values are: - \"email\" -
--- Reminders are sent via email. - \"sms\" - Reminders are sent via SMS.
--- These are only available for Google Apps for Work, Education, and
--- Government customers. Requests to set SMS reminders for other account
--- types are ignored. - \"popup\" - Reminders are sent via a UI popup.
+-- 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}) .
@@ -2513,8 +3139,8 @@
   = lens _eoDisplayName
       (\ s a -> s{_eoDisplayName = a})
 
--- | The organizer\'s Profile ID, if available. It corresponds to theid field
--- in the People collection of the Google+ API
+-- | 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})
 
@@ -2807,14 +3433,14 @@
     }
 
 -- | Maximal number of calendars for which FreeBusy information is to be
--- provided. Optional.
+-- 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.
+-- | 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}) .
@@ -2827,8 +3453,8 @@
       _Coerce
 
 -- | Maximal number of calendar identifiers to be provided for a single
--- group. Optional. An error will be returned for a group with more members
--- than this value.
+-- 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
@@ -2840,7 +3466,7 @@
 fTimeZone
   = lens _fTimeZone (\ s a -> s{_fTimeZone = a})
 
--- | The end of the interval for the query.
+-- | 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}) .
@@ -2950,6 +3576,67 @@
                   ("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.
 --
@@ -3229,6 +3916,43 @@
               (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
diff --git a/gen/Network/Google/AppsCalendar/Types/Sum.hs b/gen/Network/Google/AppsCalendar/Types/Sum.hs
--- a/gen/Network/Google/AppsCalendar/Types/Sum.hs
+++ b/gen/Network/Google/AppsCalendar/Types/Sum.hs
@@ -16,8 +16,156 @@
 --
 module Network.Google.AppsCalendar.Types.Sum where
 
-import           Network.Google.Prelude
+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
@@ -47,6 +195,79 @@
     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.
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Insert.hs b/gen/Network/Google/Resource/Calendar/ACL/Insert.hs
--- a/gen/Network/Google/Resource/Calendar/ACL/Insert.hs
+++ b/gen/Network/Google/Resource/Calendar/ACL/Insert.hs
@@ -35,6 +35,7 @@
     -- * Request Lenses
     , aiCalendarId
     , aiPayload
+    , aiSendNotifications
     ) where
 
 import           Network.Google.AppsCalendar.Types
@@ -48,15 +49,17 @@
          "calendars" :>
            Capture "calendarId" Text :>
              "acl" :>
-               QueryParam "alt" AltJSON :>
-                 ReqBody '[JSON] ACLRule :> Post '[JSON] ACLRule
+               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
+    { _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.
@@ -66,6 +69,8 @@
 -- * 'aiCalendarId'
 --
 -- * 'aiPayload'
+--
+-- * 'aiSendNotifications'
 aclInsert
     :: Text -- ^ 'aiCalendarId'
     -> ACLRule -- ^ 'aiPayload'
@@ -74,6 +79,7 @@
     ACLInsert'
     { _aiCalendarId = pAiCalendarId_
     , _aiPayload = pAiPayload_
+    , _aiSendNotifications = Nothing
     }
 
 -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
@@ -88,12 +94,21 @@
 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 (Just AltJSON) _aiPayload
+          = go _aiCalendarId _aiSendNotifications
+              (Just AltJSON)
+              _aiPayload
               appsCalendarService
           where go
                   = buildClient (Proxy :: Proxy ACLInsertResource)
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Patch.hs b/gen/Network/Google/Resource/Calendar/ACL/Patch.hs
--- a/gen/Network/Google/Resource/Calendar/ACL/Patch.hs
+++ b/gen/Network/Google/Resource/Calendar/ACL/Patch.hs
@@ -36,6 +36,7 @@
     , apCalendarId
     , apRuleId
     , apPayload
+    , apSendNotifications
     ) where
 
 import           Network.Google.AppsCalendar.Types
@@ -50,16 +51,18 @@
            Capture "calendarId" Text :>
              "acl" :>
                Capture "ruleId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ACLRule :> Patch '[JSON] ACLRule
+                 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
+    { _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.
@@ -71,6 +74,8 @@
 -- * 'apRuleId'
 --
 -- * 'apPayload'
+--
+-- * 'apSendNotifications'
 aclPatch
     :: Text -- ^ 'apCalendarId'
     -> Text -- ^ 'apRuleId'
@@ -81,6 +86,7 @@
     { _apCalendarId = pApCalendarId_
     , _apRuleId = pApRuleId_
     , _apPayload = pApPayload_
+    , _apSendNotifications = Nothing
     }
 
 -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
@@ -99,12 +105,21 @@
 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 (Just AltJSON)
+          = go _apCalendarId _apRuleId _apSendNotifications
+              (Just AltJSON)
               _apPayload
               appsCalendarService
           where go
diff --git a/gen/Network/Google/Resource/Calendar/ACL/Update.hs b/gen/Network/Google/Resource/Calendar/ACL/Update.hs
--- a/gen/Network/Google/Resource/Calendar/ACL/Update.hs
+++ b/gen/Network/Google/Resource/Calendar/ACL/Update.hs
@@ -36,6 +36,7 @@
     , auCalendarId
     , auRuleId
     , auPayload
+    , auSendNotifications
     ) where
 
 import           Network.Google.AppsCalendar.Types
@@ -50,16 +51,18 @@
            Capture "calendarId" Text :>
              "acl" :>
                Capture "ruleId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ACLRule :> Put '[JSON] ACLRule
+                 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
+    { _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.
@@ -71,6 +74,8 @@
 -- * 'auRuleId'
 --
 -- * 'auPayload'
+--
+-- * 'auSendNotifications'
 aclUpdate
     :: Text -- ^ 'auCalendarId'
     -> Text -- ^ 'auRuleId'
@@ -81,6 +86,7 @@
     { _auCalendarId = pAuCalendarId_
     , _auRuleId = pAuRuleId_
     , _auPayload = pAuPayload_
+    , _auSendNotifications = Nothing
     }
 
 -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
@@ -99,12 +105,21 @@
 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 (Just AltJSON)
+          = go _auCalendarId _auRuleId _auSendNotifications
+              (Just AltJSON)
               _auPayload
               appsCalendarService
           where go
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/Delete.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Deletes an entry on the user\'s calendar list.
+-- 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
@@ -50,7 +50,7 @@
                Capture "calendarId" Text :>
                  QueryParam "alt" AltJSON :> Delete '[JSON] ()
 
--- | Deletes an entry on the user\'s calendar list.
+-- | Removes a calendar from the user\'s calendar list.
 --
 -- /See:/ 'calendarListDelete' smart constructor.
 newtype CalendarListDelete = CalendarListDelete'
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/Get.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns an entry on the user\'s calendar list.
+-- 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
@@ -51,7 +51,7 @@
                  QueryParam "alt" AltJSON :>
                    Get '[JSON] CalendarListEntry
 
--- | Returns an entry on the user\'s calendar list.
+-- | Returns a calendar from the user\'s calendar list.
 --
 -- /See:/ 'calendarListGet' smart constructor.
 newtype CalendarListGet = CalendarListGet'
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/Insert.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Adds an entry to the user\'s calendar list.
+-- 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
@@ -53,7 +53,7 @@
                    ReqBody '[JSON] CalendarListEntry :>
                      Post '[JSON] CalendarListEntry
 
--- | Adds an entry to the user\'s calendar list.
+-- | Inserts an existing calendar into the user\'s calendar list.
 --
 -- /See:/ 'calendarListInsert' smart constructor.
 data CalendarListInsert = CalendarListInsert'
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/List.hs b/gen/Network/Google/Resource/Calendar/CalendarList/List.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/List.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/List.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Returns entries on the user\'s calendar list.
+-- 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
@@ -62,7 +62,7 @@
                          QueryParam "maxResults" (Textual Int32) :>
                            QueryParam "alt" AltJSON :> Get '[JSON] CalendarList
 
--- | Returns entries on the user\'s calendar list.
+-- | Returns the calendars on the user\'s calendar list.
 --
 -- /See:/ 'calendarListList' smart constructor.
 data CalendarListList = CalendarListList'
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/Patch.hs
@@ -20,8 +20,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates an entry on the user\'s calendar list. This method supports
--- patch semantics.
+-- 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
@@ -56,8 +56,8 @@
                      ReqBody '[JSON] CalendarListEntry :>
                        Patch '[JSON] CalendarListEntry
 
--- | Updates an entry on the user\'s calendar list. This method supports
--- patch semantics.
+-- | Updates an existing calendar on the user\'s calendar list. This method
+-- supports patch semantics.
 --
 -- /See:/ 'calendarListPatch' smart constructor.
 data CalendarListPatch = CalendarListPatch'
diff --git a/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs b/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs
--- a/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs
+++ b/gen/Network/Google/Resource/Calendar/CalendarList/Update.hs
@@ -20,7 +20,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Updates an entry on the user\'s calendar list.
+-- 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
@@ -55,7 +55,7 @@
                      ReqBody '[JSON] CalendarListEntry :>
                        Put '[JSON] CalendarListEntry
 
--- | Updates an entry on the user\'s calendar list.
+-- | Updates an existing calendar on the user\'s calendar list.
 --
 -- /See:/ 'calendarListUpdate' smart constructor.
 data CalendarListUpdate = CalendarListUpdate'
diff --git a/gen/Network/Google/Resource/Calendar/Channels/Stop.hs b/gen/Network/Google/Resource/Calendar/Channels/Stop.hs
--- a/gen/Network/Google/Resource/Calendar/Channels/Stop.hs
+++ b/gen/Network/Google/Resource/Calendar/Channels/Stop.hs
@@ -78,7 +78,10 @@
         type Rs ChannelsStop = ()
         type Scopes ChannelsStop =
              '["https://www.googleapis.com/auth/calendar",
-               "https://www.googleapis.com/auth/calendar.readonly"]
+               "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
diff --git a/gen/Network/Google/Resource/Calendar/Events/Delete.hs b/gen/Network/Google/Resource/Calendar/Events/Delete.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Delete.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Delete.hs
@@ -35,6 +35,7 @@
     -- * Request Lenses
     , edCalendarId
     , edSendNotifications
+    , edSendUpdates
     , edEventId
     ) where
 
@@ -51,7 +52,8 @@
              "events" :>
                Capture "eventId" Text :>
                  QueryParam "sendNotifications" Bool :>
-                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
+                   QueryParam "sendUpdates" EventsDeleteSendUpdates :>
+                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
 
 -- | Deletes an event.
 --
@@ -59,6 +61,7 @@
 data EventsDelete = EventsDelete'
     { _edCalendarId        :: !Text
     , _edSendNotifications :: !(Maybe Bool)
+    , _edSendUpdates       :: !(Maybe EventsDeleteSendUpdates)
     , _edEventId           :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -70,6 +73,8 @@
 --
 -- * 'edSendNotifications'
 --
+-- * 'edSendUpdates'
+--
 -- * 'edEventId'
 eventsDelete
     :: Text -- ^ 'edCalendarId'
@@ -79,6 +84,7 @@
     EventsDelete'
     { _edCalendarId = pEdCalendarId_
     , _edSendNotifications = Nothing
+    , _edSendUpdates = Nothing
     , _edEventId = pEdEventId_
     }
 
@@ -89,13 +95,21 @@
 edCalendarId
   = lens _edCalendarId (\ s a -> s{_edCalendarId = a})
 
--- | Whether to send notifications about the deletion of the event. Optional.
--- The default is False.
+-- | 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
@@ -104,9 +118,11 @@
 instance GoogleRequest EventsDelete where
         type Rs EventsDelete = ()
         type Scopes EventsDelete =
-             '["https://www.googleapis.com/auth/calendar"]
+             '["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
diff --git a/gen/Network/Google/Resource/Calendar/Events/Get.hs b/gen/Network/Google/Resource/Calendar/Events/Get.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Get.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Get.hs
@@ -136,6 +136,8 @@
         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
diff --git a/gen/Network/Google/Resource/Calendar/Events/Import.hs b/gen/Network/Google/Resource/Calendar/Events/Import.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Import.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Import.hs
@@ -34,6 +34,7 @@
     , EventsImport
 
     -- * Request Lenses
+    , eiConferenceDataVersion
     , eiCalendarId
     , eiPayload
     , eiSupportsAttachments
@@ -51,24 +52,28 @@
            Capture "calendarId" Text :>
              "events" :>
                "import" :>
-                 QueryParam "supportsAttachments" Bool :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Event :> Post '[JSON] Event
+                 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'
-    { _eiCalendarId          :: !Text
-    , _eiPayload             :: !Event
-    , _eiSupportsAttachments :: !(Maybe Bool)
+    { _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'
@@ -80,11 +85,23 @@
     -> EventsImport
 eventsImport pEiCalendarId_ pEiPayload_ =
     EventsImport'
-    { _eiCalendarId = pEiCalendarId_
+    { _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.
@@ -107,9 +124,11 @@
 instance GoogleRequest EventsImport where
         type Rs EventsImport = Event
         type Scopes EventsImport =
-             '["https://www.googleapis.com/auth/calendar"]
+             '["https://www.googleapis.com/auth/calendar",
+               "https://www.googleapis.com/auth/calendar.events"]
         requestClient EventsImport'{..}
-          = go _eiCalendarId _eiSupportsAttachments
+          = go _eiCalendarId _eiConferenceDataVersion
+              _eiSupportsAttachments
               (Just AltJSON)
               _eiPayload
               appsCalendarService
diff --git a/gen/Network/Google/Resource/Calendar/Events/Insert.hs b/gen/Network/Google/Resource/Calendar/Events/Insert.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Insert.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Insert.hs
@@ -33,11 +33,13 @@
     , EventsInsert
 
     -- * Request Lenses
+    , eveConferenceDataVersion
     , eveCalendarId
     , evePayload
     , eveMaxAttendees
     , eveSendNotifications
     , eveSupportsAttachments
+    , eveSendUpdates
     ) where
 
 import           Network.Google.AppsCalendar.Types
@@ -51,27 +53,33 @@
          "calendars" :>
            Capture "calendarId" Text :>
              "events" :>
-               QueryParam "maxAttendees" (Textual Int32) :>
-                 QueryParam "sendNotifications" Bool :>
-                   QueryParam "supportsAttachments" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Event :> Post '[JSON] Event
+               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'
-    { _eveCalendarId          :: !Text
-    , _evePayload             :: !Event
-    , _eveMaxAttendees        :: !(Maybe (Textual Int32))
-    , _eveSendNotifications   :: !(Maybe Bool)
-    , _eveSupportsAttachments :: !(Maybe Bool)
+    { _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'
@@ -81,19 +89,34 @@
 -- * 'eveSendNotifications'
 --
 -- * 'eveSupportsAttachments'
+--
+-- * 'eveSendUpdates'
 eventsInsert
     :: Text -- ^ 'eveCalendarId'
     -> Event -- ^ 'evePayload'
     -> EventsInsert
 eventsInsert pEveCalendarId_ pEvePayload_ =
     EventsInsert'
-    { _eveCalendarId = pEveCalendarId_
+    { _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.
@@ -116,8 +139,10 @@
       (\ s a -> s{_eveMaxAttendees = a})
       . mapping _Coerce
 
--- | Whether to send notifications about the creation of the new event.
--- Optional. The default is False.
+-- | 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
@@ -130,14 +155,24 @@
   = 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",
+               "https://www.googleapis.com/auth/calendar.events"]
         requestClient EventsInsert'{..}
-          = go _eveCalendarId _eveMaxAttendees
+          = go _eveCalendarId _eveConferenceDataVersion
+              _eveMaxAttendees
               _eveSendNotifications
               _eveSupportsAttachments
+              _eveSendUpdates
               (Just AltJSON)
               _evePayload
               appsCalendarService
diff --git a/gen/Network/Google/Resource/Calendar/Events/Instances.hs b/gen/Network/Google/Resource/Calendar/Events/Instances.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Instances.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Instances.hs
@@ -215,6 +215,8 @@
         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
diff --git a/gen/Network/Google/Resource/Calendar/Events/List.hs b/gen/Network/Google/Resource/Calendar/Events/List.hs
--- a/gen/Network/Google/Resource/Calendar/Events/List.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/List.hs
@@ -205,6 +205,7 @@
 -- The default is not to filter by end time. Must be an RFC3339 timestamp
 -- with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00,
 -- 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.
+-- If timeMax is set, timeMin must be smaller than timeMax.
 elTimeMin :: Lens' EventsList (Maybe UTCTime)
 elTimeMin
   = lens _elTimeMin (\ s a -> s{_elTimeMin = a}) .
@@ -302,9 +303,12 @@
   = lens _elShowHiddenInvitations
       (\ s a -> s{_elShowHiddenInvitations = 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.
+-- | 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})
@@ -325,7 +329,8 @@
 -- Optional. The default is not to filter by start time. Must be an RFC3339
 -- timestamp with mandatory time zone offset, e.g.,
 -- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be
--- provided but will be ignored.
+-- provided but will be ignored. If timeMin is set, timeMax must be greater
+-- than timeMin.
 elTimeMax :: Lens' EventsList (Maybe UTCTime)
 elTimeMax
   = lens _elTimeMax (\ s a -> s{_elTimeMax = a}) .
@@ -335,6 +340,8 @@
         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
diff --git a/gen/Network/Google/Resource/Calendar/Events/Move.hs b/gen/Network/Google/Resource/Calendar/Events/Move.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Move.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Move.hs
@@ -36,6 +36,7 @@
     , emDestination
     , emCalendarId
     , emSendNotifications
+    , emSendUpdates
     , emEventId
     ) where
 
@@ -54,7 +55,8 @@
                  "move" :>
                    QueryParam "destination" Text :>
                      QueryParam "sendNotifications" Bool :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Event
+                       QueryParam "sendUpdates" EventsMoveSendUpdates :>
+                         QueryParam "alt" AltJSON :> Post '[JSON] Event
 
 -- | Moves an event to another calendar, i.e. changes an event\'s organizer.
 --
@@ -63,6 +65,7 @@
     { _emDestination       :: !Text
     , _emCalendarId        :: !Text
     , _emSendNotifications :: !(Maybe Bool)
+    , _emSendUpdates       :: !(Maybe EventsMoveSendUpdates)
     , _emEventId           :: !Text
     } deriving (Eq,Show,Data,Typeable,Generic)
 
@@ -76,6 +79,8 @@
 --
 -- * 'emSendNotifications'
 --
+-- * 'emSendUpdates'
+--
 -- * 'emEventId'
 eventsMove
     :: Text -- ^ 'emDestination'
@@ -87,6 +92,7 @@
     { _emDestination = pEmDestination_
     , _emCalendarId = pEmCalendarId_
     , _emSendNotifications = Nothing
+    , _emSendUpdates = Nothing
     , _emEventId = pEmEventId_
     }
 
@@ -103,13 +109,22 @@
 emCalendarId
   = lens _emCalendarId (\ s a -> s{_emCalendarId = a})
 
--- | Whether to send notifications about the change of the event\'s
--- organizer. Optional. The default is False.
+-- | 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
@@ -118,10 +133,12 @@
 instance GoogleRequest EventsMove where
         type Rs EventsMove = Event
         type Scopes EventsMove =
-             '["https://www.googleapis.com/auth/calendar"]
+             '["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
diff --git a/gen/Network/Google/Resource/Calendar/Events/Patch.hs b/gen/Network/Google/Resource/Calendar/Events/Patch.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Patch.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Patch.hs
@@ -33,11 +33,13 @@
     , EventsPatch
 
     -- * Request Lenses
+    , epConferenceDataVersion
     , epCalendarId
     , epPayload
     , epMaxAttendees
     , epSendNotifications
     , epSupportsAttachments
+    , epSendUpdates
     , epAlwaysIncludeEmail
     , epEventId
     ) where
@@ -54,30 +56,36 @@
            Capture "calendarId" Text :>
              "events" :>
                Capture "eventId" Text :>
-                 QueryParam "maxAttendees" (Textual Int32) :>
-                   QueryParam "sendNotifications" Bool :>
-                     QueryParam "supportsAttachments" Bool :>
-                       QueryParam "alwaysIncludeEmail" Bool :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Event :> Patch '[JSON] Event
+                 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'
-    { _epCalendarId          :: !Text
-    , _epPayload             :: !Event
-    , _epMaxAttendees        :: !(Maybe (Textual Int32))
-    , _epSendNotifications   :: !(Maybe Bool)
-    , _epSupportsAttachments :: !(Maybe Bool)
-    , _epAlwaysIncludeEmail  :: !(Maybe Bool)
-    , _epEventId             :: !Text
+    { _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'
@@ -88,6 +96,8 @@
 --
 -- * 'epSupportsAttachments'
 --
+-- * 'epSendUpdates'
+--
 -- * 'epAlwaysIncludeEmail'
 --
 -- * 'epEventId'
@@ -98,15 +108,28 @@
     -> EventsPatch
 eventsPatch pEpCalendarId_ pEpPayload_ pEpEventId_ =
     EventsPatch'
-    { _epCalendarId = pEpCalendarId_
+    { _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.
@@ -128,8 +151,10 @@
       (\ s a -> s{_epMaxAttendees = a})
       . mapping _Coerce
 
--- | Whether to send notifications about the event update (e.g. attendee\'s
--- responses, title changes, etc.). Optional. The default is False.
+-- | 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
@@ -142,6 +167,13 @@
   = 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
@@ -161,11 +193,15 @@
 instance GoogleRequest EventsPatch where
         type Rs EventsPatch = Event
         type Scopes EventsPatch =
-             '["https://www.googleapis.com/auth/calendar"]
+             '["https://www.googleapis.com/auth/calendar",
+               "https://www.googleapis.com/auth/calendar.events"]
         requestClient EventsPatch'{..}
-          = go _epCalendarId _epEventId _epMaxAttendees
+          = go _epCalendarId _epEventId
+              _epConferenceDataVersion
+              _epMaxAttendees
               _epSendNotifications
               _epSupportsAttachments
+              _epSendUpdates
               _epAlwaysIncludeEmail
               (Just AltJSON)
               _epPayload
diff --git a/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs b/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs
--- a/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/QuickAdd.hs
@@ -36,6 +36,7 @@
     , eqaCalendarId
     , eqaText
     , eqaSendNotifications
+    , eqaSendUpdates
     ) where
 
 import           Network.Google.AppsCalendar.Types
@@ -52,7 +53,8 @@
                "quickAdd" :>
                  QueryParam "text" Text :>
                    QueryParam "sendNotifications" Bool :>
-                     QueryParam "alt" AltJSON :> Post '[JSON] Event
+                     QueryParam "sendUpdates" EventsQuickAddSendUpdates :>
+                       QueryParam "alt" AltJSON :> Post '[JSON] Event
 
 -- | Creates an event based on a simple text string.
 --
@@ -61,6 +63,7 @@
     { _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.
@@ -72,6 +75,8 @@
 -- * 'eqaText'
 --
 -- * 'eqaSendNotifications'
+--
+-- * 'eqaSendUpdates'
 eventsQuickAdd
     :: Text -- ^ 'eqaCalendarId'
     -> Text -- ^ 'eqaText'
@@ -81,6 +86,7 @@
     { _eqaCalendarId = pEqaCalendarId_
     , _eqaText = pEqaText_
     , _eqaSendNotifications = Nothing
+    , _eqaSendUpdates = Nothing
     }
 
 -- | Calendar identifier. To retrieve calendar IDs call the calendarList.list
@@ -95,20 +101,31 @@
 eqaText :: Lens' EventsQuickAdd Text
 eqaText = lens _eqaText (\ s a -> s{_eqaText = a})
 
--- | Whether to send notifications about the creation of the event. Optional.
--- The default is False.
+-- | 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",
+               "https://www.googleapis.com/auth/calendar.events"]
         requestClient EventsQuickAdd'{..}
           = go _eqaCalendarId (Just _eqaText)
               _eqaSendNotifications
+              _eqaSendUpdates
               (Just AltJSON)
               appsCalendarService
           where go
diff --git a/gen/Network/Google/Resource/Calendar/Events/Update.hs b/gen/Network/Google/Resource/Calendar/Events/Update.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Update.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Update.hs
@@ -33,11 +33,13 @@
     , EventsUpdate
 
     -- * Request Lenses
+    , euConferenceDataVersion
     , euCalendarId
     , euPayload
     , euMaxAttendees
     , euSendNotifications
     , euSupportsAttachments
+    , euSendUpdates
     , euAlwaysIncludeEmail
     , euEventId
     ) where
@@ -54,30 +56,36 @@
            Capture "calendarId" Text :>
              "events" :>
                Capture "eventId" Text :>
-                 QueryParam "maxAttendees" (Textual Int32) :>
-                   QueryParam "sendNotifications" Bool :>
-                     QueryParam "supportsAttachments" Bool :>
-                       QueryParam "alwaysIncludeEmail" Bool :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Event :> Put '[JSON] Event
+                 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'
-    { _euCalendarId          :: !Text
-    , _euPayload             :: !Event
-    , _euMaxAttendees        :: !(Maybe (Textual Int32))
-    , _euSendNotifications   :: !(Maybe Bool)
-    , _euSupportsAttachments :: !(Maybe Bool)
-    , _euAlwaysIncludeEmail  :: !(Maybe Bool)
-    , _euEventId             :: !Text
+    { _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'
@@ -88,6 +96,8 @@
 --
 -- * 'euSupportsAttachments'
 --
+-- * 'euSendUpdates'
+--
 -- * 'euAlwaysIncludeEmail'
 --
 -- * 'euEventId'
@@ -98,15 +108,28 @@
     -> EventsUpdate
 eventsUpdate pEuCalendarId_ pEuPayload_ pEuEventId_ =
     EventsUpdate'
-    { _euCalendarId = pEuCalendarId_
+    { _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.
@@ -128,8 +151,10 @@
       (\ s a -> s{_euMaxAttendees = a})
       . mapping _Coerce
 
--- | Whether to send notifications about the event update (e.g. attendee\'s
--- responses, title changes, etc.). Optional. The default is False.
+-- | 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
@@ -142,6 +167,13 @@
   = 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
@@ -161,11 +193,15 @@
 instance GoogleRequest EventsUpdate where
         type Rs EventsUpdate = Event
         type Scopes EventsUpdate =
-             '["https://www.googleapis.com/auth/calendar"]
+             '["https://www.googleapis.com/auth/calendar",
+               "https://www.googleapis.com/auth/calendar.events"]
         requestClient EventsUpdate'{..}
-          = go _euCalendarId _euEventId _euMaxAttendees
+          = go _euCalendarId _euEventId
+              _euConferenceDataVersion
+              _euMaxAttendees
               _euSendNotifications
               _euSupportsAttachments
+              _euSendUpdates
               _euAlwaysIncludeEmail
               (Just AltJSON)
               _euPayload
diff --git a/gen/Network/Google/Resource/Calendar/Events/Watch.hs b/gen/Network/Google/Resource/Calendar/Events/Watch.hs
--- a/gen/Network/Google/Resource/Calendar/Events/Watch.hs
+++ b/gen/Network/Google/Resource/Calendar/Events/Watch.hs
@@ -215,6 +215,7 @@
 -- The default is not to filter by end time. Must be an RFC3339 timestamp
 -- with mandatory time zone offset, e.g., 2011-06-03T10:00:00-07:00,
 -- 2011-06-03T10:00:00Z. Milliseconds may be provided but will be ignored.
+-- If timeMax is set, timeMin must be smaller than timeMax.
 ewTimeMin :: Lens' EventsWatch (Maybe UTCTime)
 ewTimeMin
   = lens _ewTimeMin (\ s a -> s{_ewTimeMin = a}) .
@@ -317,9 +318,12 @@
   = lens _ewShowHiddenInvitations
       (\ s a -> s{_ewShowHiddenInvitations = 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.
+-- | 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})
@@ -340,7 +344,8 @@
 -- Optional. The default is not to filter by start time. Must be an RFC3339
 -- timestamp with mandatory time zone offset, e.g.,
 -- 2011-06-03T10:00:00-07:00, 2011-06-03T10:00:00Z. Milliseconds may be
--- provided but will be ignored.
+-- provided but will be ignored. If timeMin is set, timeMax must be greater
+-- than timeMin.
 ewTimeMax :: Lens' EventsWatch (Maybe UTCTime)
 ewTimeMax
   = lens _ewTimeMax (\ s a -> s{_ewTimeMax = a}) .
@@ -350,6 +355,8 @@
         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
diff --git a/gen/Network/Google/Resource/Calendar/Settings/Get.hs b/gen/Network/Google/Resource/Calendar/Settings/Get.hs
--- a/gen/Network/Google/Resource/Calendar/Settings/Get.hs
+++ b/gen/Network/Google/Resource/Calendar/Settings/Get.hs
@@ -79,7 +79,8 @@
         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.readonly",
+               "https://www.googleapis.com/auth/calendar.settings.readonly"]
         requestClient SettingsGet'{..}
           = go _sgSetting (Just AltJSON) appsCalendarService
           where go
diff --git a/gen/Network/Google/Resource/Calendar/Settings/List.hs b/gen/Network/Google/Resource/Calendar/Settings/List.hs
--- a/gen/Network/Google/Resource/Calendar/Settings/List.hs
+++ b/gen/Network/Google/Resource/Calendar/Settings/List.hs
@@ -109,7 +109,8 @@
         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.readonly",
+               "https://www.googleapis.com/auth/calendar.settings.readonly"]
         requestClient SettingsList'{..}
           = go _slSyncToken _slPageToken _slMaxResults
               (Just AltJSON)
diff --git a/gen/Network/Google/Resource/Calendar/Settings/Watch.hs b/gen/Network/Google/Resource/Calendar/Settings/Watch.hs
--- a/gen/Network/Google/Resource/Calendar/Settings/Watch.hs
+++ b/gen/Network/Google/Resource/Calendar/Settings/Watch.hs
@@ -122,7 +122,8 @@
         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.readonly",
+               "https://www.googleapis.com/auth/calendar.settings.readonly"]
         requestClient SettingsWatch'{..}
           = go _swSyncToken _swPageToken _swMaxResults
               (Just AltJSON)
diff --git a/gogol-apps-calendar.cabal b/gogol-apps-calendar.cabal
--- a/gogol-apps-calendar.cabal
+++ b/gogol-apps-calendar.cabal
@@ -1,5 +1,5 @@
 name:                  gogol-apps-calendar
-version:               0.3.0
+version:               0.4.0
 synopsis:              Google Calendar SDK.
 homepage:              https://github.com/brendanhay/gogol
 bug-reports:           https://github.com/brendanhay/gogol/issues
@@ -78,5 +78,5 @@
         , Network.Google.AppsCalendar.Types.Sum
 
     build-depends:
-          gogol-core == 0.3.0.*
+          gogol-core == 0.4.0.*
         , base       >= 4.7 && < 5
