No writing rights for Calendar on Google agenda
No writing rights for Calendar on Google agenda
Summary
Calendar (Etar) app can only perform 1-way synchronization of my Google agenda: remote event updates are received on the phone, but every time I make a change locally (event creation, update or removal), it fails to update the remote.
Steps to reproduce
- Add a Google (davdroid) account (OAuth authentication requests writing permission, see screenshots below)
- Open Calendar, make sure the Google agenda is loaded
- Create an event on the phone
Running latest e-0.1-201901112531 on Samsung Galaxy S4, but issue has always been there since my first install in November 2018
What is the current behavior?
Event is added locally to the phone, but cannot be synchronized, it is not present on the remote agenda.
A notification from Account manager pops, telling that
Authentication failed (check login credentials)
Of course, I retried authenticating and credentials are OK... besides, remote changes are successfully synchronized, only local changes can't be pushed.
Relevant logs and/or screenshots
Google account configuration
Details on requested permissions
Synchronization log
01-12 21:03:34.946 14992 21907 I davdroid: [syncadapter.GoogleCalendarsSyncAdapterService] Synchronizing calendar #23, URL: https://apidata.googleusercontent.com/caldav/v2/xxxxxx@gmail.com/events/
01-12 21:03:34.949 14992 21907 W ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.bindService:1421 android.content.ContextWrapper.bindService:636 at.bitfire.cert4android.CustomCertManager.<init>:99 at.bitfire.davdroid.HttpClient$Builder.<init>:111 at.bitfire.davdroid.HttpClient$Builder.<init>:72
01-12 21:03:34.990 14992 21907 I davdroid: [syncadapter.SyncManager] Preparing synchronization
01-12 21:03:35.008 14992 21907 I davdroid: [resource.LocalCalendar] Processing deleted exceptions
01-12 21:03:35.024 14992 21907 I davdroid: [resource.LocalCalendar] Processing dirty exceptions
01-12 21:03:35.045 14992 21907 I davdroid: [syncadapter.SyncManager] Querying server capabilities
01-12 21:03:35.331 14992 21907 I davdroid: [syncadapter.CalendarSyncManager] Server supports Collection Sync: true
01-12 21:03:35.334 14992 21907 I davdroid: [syncadapter.SyncManager] Sending local deletes/updates to server
01-12 21:03:35.364 14992 21907 I davdroid: [syncadapter.SyncManager] Removed 0 record(s) from server
01-12 21:03:35.673 14992 21907 I davdroid: [syncadapter.SyncManager] Uploading new record 40d6e73a-7651-4e26-8c16-a3783bd6a67e.ics
01-12 21:03:35.691 1960 21875 D AlertService: Beginning updateAlertNotification
01-12 21:03:35.719 1960 21875 D AlertService: No fired or scheduled alerts
01-12 21:03:35.734 14992 21907 E davdroid: [syncadapter.SyncManager] Not authorized anymore
01-12 21:03:35.734 14992 21907 E davdroid: EXCEPTION at.bitfire.dav4android.exception.UnauthorizedException: HTTP 401
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.dav4android.DavResource.checkStatus(DavResource.kt:406)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.dav4android.DavResource.checkStatus(DavResource.kt:392)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.dav4android.DavResource.put(DavResource.kt:284)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1.invoke(SyncManager.kt:327)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1.invoke(SyncManager.kt:59)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager.useRemote(SyncManager.kt:781)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1.invoke(SyncManager.kt:314)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1.invoke(SyncManager.kt:59)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager.useLocal(SyncManager.kt:767)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:305)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$performSync$1.invoke(SyncManager.kt:127)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager$performSync$1.invoke(SyncManager.kt:59)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager.unwrapExceptions(SyncManager.kt:807)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.kt:113)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.GoogleCalendarsSyncAdapterService$CalendarsSyncAdapter.sync(GoogleCalendarsSyncAdapterService.kt:83)
01-12 21:03:35.734 14992 21907 E davdroid: at at.bitfire.davdroid.syncadapter.SyncAdapterService$SyncAdapter.onPerformSync(SyncAdapterService.kt:84)
01-12 21:03:35.734 14992 21907 E davdroid: at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:272)
01-12 21:03:35.752 14992 21907 I davdroid: [syncadapter.GoogleCalendarsSyncAdapterService] Calendar sync complete
01-12 21:03:35.758 1960 21875 D AlertService: Scheduling next alarm with AlarmScheduler. sEventReminderReceived: null
01-12 21:03:35.761 14992 21907 I davdroid: [syncadapter.SyncAdapterService] Sync for (com.android.calendar, Account {name=xxxxxx@gmail.com, type=bitfire.at.davdroid.google}) finished