@rfc2822
Thanks, that fixed it.
I found this issue in etar from July 2019: Reminders in read-only calendars #523
unfortunately no response so far…
Hello,
Firstly, thank you for developing and maintaining DAVx⁵ and all other apps and libs from Bitfire!
I have to use Google Calendar for work and I use DAVx⁵ to access calendar events from my phone. It works very well except one detail: when I mark an event as “declined”, it is not marked as such on my phone. It’s a detail but I would prefer not to get reminders when I am not supposed to work
To be more precise, my calendar app (Etar) shows my email address in the “NO” section but for the “attending” bit, nothing is checked: not Yes/Maybe/No:
I quickly looked at Etar’s source code and it seems they look at the “Attendee Status”: https://developer.android.com/reference/android/provider/CalendarContract.Attendees
From DavX⁵ logs, I can see that the iCal downloaded for the test event I created is properly retrieved:
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
X-WR-CALNAME:MY@EMAIL.ADDRESS
X-WR-TIMEZONE:Europe/Brussels
BEGIN:VTIMEZONE
TZID:Europe/Brussels
X-LIC-LOCATION:Europe/Brussels
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
DTSTART;TZID=Europe/Brussels:20200721T164500
DTEND;TZID=Europe/Brussels:20200721T170000
DTSTAMP:20200721T144144Z
ORGANIZER;CN=MY@EMAIL.ADDRESS:mailto:MY@EMAIL.ADDRE
SS
UID:0nd7m6abt7p5mn55ijo5j8unat@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=OT
HER@EMAIL.ADDRESS;X-NUM-GUESTS=0:mailto:OTHER@EMAIL.ADDRESS
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=MY@EMA
IL.ADDRESS;X-NUM-GUESTS=0:mailto:MY@EMAIL.ADDRESS
CREATED:20200721T144137Z
DESCRIPTION:
LAST-MODIFIED:20200721T144144Z
LOCATION:
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test5
TRANSP:OPAQUE
BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-P0DT0H2M0S
END:VALARM
END:VEVENT
END:VCALENDAR
(I replaced my email addresses and the invited one: I need at least two people to decline an event without cancelling it)
Later, we can see the event is added to the local calendar but with availability=0
: I guess it means ATTENDEE_STATUS_NONE, no?
2020-07-21 16:42:10 1073 [syncadapter.CalendarSyncManager] Adding 0nd7m6abt7p5mn55ijo5j8unat@google.com.ics to local calendar
PARAMETER #0 = Event=[alarms=[BEGIN:VALARM
ACTION:DISPLAY
DESCRIPTION:This is an event reminder
TRIGGER:-PT2M
END:VALARM
], attendees=[ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=OTHER@EMAIL.ADDRESS;X-NUM-GUESTS=0:mailto:OTHER@EMAIL.ADDRESS
, ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=MY@EMAIL.ADDRESS;X-NUM-GUESTS=0:mailto:MY@EMAIL.ADDRESS
], categories=[], classification=null, color=null, description=, dtEnd=DTEND;TZID=Europe/Brussels:20200721T170000, dtStart=DTSTART;TZID=Europe/Brussels:20200721T164500, duration=null, exDates=[], exRules=[], exceptions=[], lastModified=LAST-MODIFIED:20200721T144144Z, location=, opaque=true, organizer=ORGANIZER;CN=MY@EMAIL.ADDRESS:mailto:MY@EMAIL.ADDRESS, rDates=[], rRules=[], recurrenceId=null, status=STATUS:CONFIRMED, summary=test5, unknownProperties=[CREATED:20200721T144137Z
], userAgents=[], sequence=0, uid=0nd7m6abt7p5mn55ijo5j8unat@google.com]
2020-07-21 16:42:10 1073 [AndroidEvent] Built event object
PARAMETER #0 = mType: 1, mUri: content://com.android.calendar/events?caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid&caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid, mSelection: null, mExpectedCount: null, mYieldAllowed: false, mValues: organizer=MY@EMAIL.ADDRESS description= allDay=0 accessLevel=3 hasAttendeeData=1 eventLocation= dtend=1595343600000 eventStatus=1 title=test5 eventEndTimezone=Europe/Brussels eventTimezone=Europe/Brussels calendar_id=5 dtstart=1595342700000 availability=0, mValuesBackReferences: null, mSelectionArgsBackReferences: null
2020-07-21 16:42:10 1073 [AndroidEvent] Built alarm 2 minutes before event
PARAMETER #0 = mType: 1, mUri: content://com.android.calendar/reminders?caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid, mSelection: null, mExpectedCount: null, mYieldAllowed: false, mValues: method=1 minutes=2, mValuesBackReferences: null, mSelectionArgsBackReferences: null
2020-07-21 16:42:10 1073 [AndroidEvent] Built attendee
PARAMETER #0 = mType: 1, mUri: content://com.android.calendar/attendees?caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid, mSelection: null, mExpectedCount: null, mYieldAllowed: false, mValues: attendeeEmail=OTHER@EMAIL.ADDRESS attendeeName=OTHER@EMAIL.ADDRESS attendeeType=1 attendeeRelationship=1 attendeeStatus=3, mValuesBackReferences: null, mSelectionArgsBackReferences: null
2020-07-21 16:42:10 1073 [AndroidEvent] Built attendee
PARAMETER #0 = mType: 1, mUri: content://com.android.calendar/attendees?caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid, mSelection: null, mExpectedCount: null, mYieldAllowed: false, mValues: attendeeEmail=MY@EMAIL.ADDRESS attendeeName=MY@EMAIL.ADDRESS attendeeType=1 attendeeRelationship=1 attendeeStatus=2, mValuesBackReferences: null, mSelectionArgsBackReferences: null
2020-07-21 16:42:10 1073 [AndroidEvent] Built unknown property: CREATED
(again I replaced email addresses)
Do you think it would be possible to set the attendee status to Accepted / Declined / Tentative by looking at the ATTENDEE
list from the iCal file and matching on the email address of the account? Or is it a configuration issue somewhere
Have a good day!
Matt
I just quickly looked at the code of ical4android and I see that availability=0
means “Busy” (vs. “Free”), that’s not linked to the the attending status.
I don’t know exactly what is missing. When looking at the doc for the events (CalendarContract.Events), I don’t what is missing. Maybe SELF_ATTENDEE_STATUS?
I am really not familiar to this, I trust you for that
Hello,
I have tested this with our test server and got a similar result as in your logs, and its working as expected. From your logs:
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=DECLINED;CN=MY@EMAIL.ADDRESS;X-NUM-GUESTS=0:mailto:MY@EMAIL.ADDRESS
→
2020-07-21 16:42:10 1073 [AndroidEvent] Built attendee
PARAMETER #0 = mType: 1, mUri: content://com.android.calendar/attendees?caller_is_syncadapter=true&account_name=Calendar%20Work&account_type=bitfire.at.davdroid, mSelection: null, mExpectedCount: null, mYieldAllowed: false, mValues: attendeeEmail=MY@EMAIL.ADDRESS attendeeName=MY@EMAIL.ADDRESS attendeeType=1 attendeeRelationship=1 attendeeStatus=2, mValuesBackReferences: null, mSelectionArgsBackReferences: null
attendeeStatus=2 is ATTENDEE_STATUS_DECLINED. In Etar, such events are greyed out and shown as “Attending? No”. (Assuming that your account name is MY@EMAIL.ADDRESS
.)
Only when there is no ATTENDEE
row for the organizer, no value is selected like in your screenshot (which seems correct, because there’s no known status).
So, please provide exact steps how I can reproduce your problem (we have a mailbox.org test account), and what you would expect and what the actual result is.
Also, please always provide the DAVx5 debug info, too, because it contains information like the account name, which is important.
Update: I have just found this in your logs:
account_name=Calendar%20Work
The account name must be the same as the email address used for scheduling (in your case, MY@EMAIL.ADDRESS). This is shown when creating an account. Otherwise, the Android calendar provider doesn’t know that MY@EMAIL.ADDRESS
is you and doesn’t update SELF_ATTENDEE_STATUS
, and then you don’t see the status.
Does it work when you rename the account to MY@EMAIL.ADDRESS?
Hi @rfc2822
Thank you for your quick answer!
The account name must be the same as the email address used for scheduling (in your case, MY@EMAIL.ADDRESS). This is shown when creating an account. Otherwise, the Android calendar provider doesn’t know that MY@EMAIL.ADDRESS is you and doesn’t update SELF_ATTENDEE_STATUS, and then you don’t see the status.
My bad, I missed this. In my case, to sync both contacts and the calendar with Google, I had to set two accounts. That’s why I picked two different names. I now see I should have only change the account name for the CardDAV only one.
(by chance, for the others that would do the same mistake as me, if the name is not an email address, is it not possible to get the email address from somewhere else? Or ask for the email address if it is not picked for the account?)
I tried to rename my account but I got this error:
--- BEGIN DEBUG INFO ---
EXCEPTION:
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: service.accountName, service.type (code 2067 SQLITE_CONSTRAINT_UNIQUE)
at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:831)
at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:756)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:66)
at androidx.sqlite.db.framework.FrameworkSQLiteStatement.executeUpdateDelete(FrameworkSQLiteStatement.java:1)
at at.bitfire.davdroid.model.ServiceDao_Impl.renameAccount(ServiceDao_Impl.java:12)
at at.bitfire.davdroid.ui.account.RenameAccountFragment$Model.onAccountRenamed(RenameAccountFragment.kt:7)
at at.bitfire.davdroid.ui.account.RenameAccountFragment$Model$renameAccount$1$1.invokeSuspend(RenameAccountFragment.kt:2)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:2)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:18)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:1)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:15)
SOFTWARE INFORMATION
* DAVx⁵ 3.2.1.1-ose (at.bitfire.davdroid 302010100) from F-Droid Privileged Extension (org.fdroid.fdroid.privileged)
* OpenTasks 1.2.4 (org.dmfs.tasks 78500) from F-Droid Privileged Extension (org.fdroid.fdroid.privileged)
* Contacts Storage 10 (com.android.providers.contacts 29)
* Calendar Storage 10 (com.android.providers.calendar 29)
* Contacts 1.7.31 (com.android.contacts 10731)
* Calendar 6.9.3 (com.simplemobiletools.calendar.pro 176)
* Etar 1.0.22 (ws.xsoh.etar 24) from F-Droid Privileged Extension (org.fdroid.fdroid.privileged)
CONNECTIVITY (at the moment)
- [ Transports: WIFI Capabilities: NOT_METERED&INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN&VALIDATED&NOT_ROAMING&FOREGROUND&NOT_CONGESTED&NOT_SUSPENDED LinkUpBandwidth>=1048576Kbps LinkDnBandwidth>=1048576Kbps SignalStrength: -54]
Data saver: disabled
CONFIGURATION
Power saving disabled: yes
Notifications (not blocked):
[group] sync isBlocked=false
syncProblems: importance=3
syncIoErrors: importance=1
syncWarnings: importance=2
general: importance=3
debug: importance=4
Permissions:
READ_CONTACTS: granted
WRITE_CONTACTS: granted
READ_CALENDAR: granted
WRITE_CALENDAR: granted
READ_TASKS: granted
WRITE_TASKS: granted
ACCESS_COARSE_LOCATION: denied
System-wide synchronization: automatically
APP SETTINGS
Distrust system certs: false
Override system proxy: false
ACCOUNTS
Account: PERSONAL@EMAIL.ADDRESS
Address book sync. interval: 1440 min
Calendar sync. interval: 120 min
OpenTasks sync. interval: 60 min
WiFi only: false
getIsSyncable(CalendarContract): 1
getIsSyncable(OpenTasks): 1
[CardDAV] Contact group method: GROUP_VCARDS
[CalDAV] Time range (past days): 90
Default alarm (min before): null
Manage calendar colors: true
Use event colors: false
Account: Contact Work
Address book sync. interval: 1440 min
Calendar sync. interval: —
OpenTasks sync. interval: —
WiFi only: false
getIsSyncable(CalendarContract): 0
getIsSyncable(OpenTasks): 0
[CardDAV] Contact group method: GROUP_VCARDS
[CalDAV] Time range (past days): 90
Default alarm (min before): null
Manage calendar colors: true
Use event colors: false
Account: WORK@EMAIL.ADDRESS
Address book sync. interval: —
Calendar sync. interval: —
OpenTasks sync. interval: 240 min
WiFi only: false
getIsSyncable(CalendarContract): -1
getIsSyncable(OpenTasks): 1
[CardDAV] Contact group method: GROUP_VCARDS
[CalDAV] Time range (past days): 90
Default alarm (min before): null
Manage calendar colors: true
Use event colors: false
Address book account: Contacts (PERSONAL@EMAIL.ADDRESS kQ)
Main account: Account {name=PERSONAL@EMAIL.ADDRESS, type=bitfire.at.davdroid}
URL: https://<NEXTCLOUD>/remote.php/dav/addressbooks/users/USER/contacts/
isSyncable(com.android.contacts): 1
Sync automatically: true
Address book account: Address Book (Contact Work DA)
Main account: Account {name=Contact Work, type=bitfire.at.davdroid}
URL: https://www.googleapis.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/default/
isSyncable(com.android.contacts): 1
Sync automatically: true
SQLITE DUMP
android_metadata
| locale |
| en_US |
----------
service
| id | accountName | type | principal |
| 23 | WORK@EMAIL.ADDRESS | carddav | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS |
| 24 | WORK@EMAIL.ADDRESS | caldav | <null> |
| 25 | PERSONAL@EMAIL.ADDRESS | carddav | https://<NEXTCLOUD>/remote.php/dav/principals/users/USER/ |
| 26 | PERSONAL@EMAIL.ADDRESS | caldav | https://<NEXTCLOUD>/remote.php/dav/principals/users/USER/ |
| 27 | Contact Work | carddav | https://www.googleapis.com/carddav/v1/principals/WORK@EMAIL.ADDRESS |
| 28 | Calendar Work | carddav | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS |
| 29 | Calendar Work | caldav | <null> |
----------
sqlite_sequence
| name | seq |
| service | 29 |
| homeset | 30 |
| collection | 71 |
----------
homeset
| id | serviceId | url | privBind | displayName |
| 24 | 23 | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/ | 1 | <null> |
| 27 | 26 | https://<NEXTCLOUD>/remote.php/dav/calendars/USER/ | 1 | <null> |
| 28 | 25 | https://<NEXTCLOUD>/remote.php/dav/addressbooks/users/USER/ | 1 | <null> |
| 29 | 27 | https://www.googleapis.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/ | 1 | Homeset |
| 30 | 28 | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/ | 1 | Homeset |
----------
collection
| id | serviceId | type | url | privWriteContent | privUnbind | forceReadOnly | displayName | description | color | timezone | supportsVEVENT | supportsVTODO | supportsVJOURNAL | source | sync |
| 57 | 23 | ADDRESS_BOOK | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/default/ | 1 | 1 | 0 | Address Book | My Contacts | <null> | <null> | <null> | <null> | <null> | <null> | 1 |
| 58 | 24 | CALENDAR | https://www.google.com/calendar/dav/WORK@EMAIL.ADDRESS/events/ | 1 | 1 | 0 | WORK@EMAIL.ADDRESS | WORK@EMAIL.ADDRESS | -21178 | BEGIN:VCALENDAR<LF>PRODID:-//Google Inc//Google Calendar 70.9054//EN<LF>VERSION:2.0<LF>CALSCALE:GREGORIAN<LF>X-WR-CALNAME:WORK@EMAIL.ADDRESS<LF>X-WR-TIMEZONE:Europe/Brussels<LF>BEGIN:VTIMEZONE<LF>TZID:Europe/Brussels<LF>X-LIC-LOCATION:Europe/Brussels<LF>BEGIN:DAYLIGHT<LF>TZOFFSETFROM:+0100<LF>TZOFFSETTO:+0200<LF>TZNAME:CEST<LF>DTSTART:19700329T020000<LF>RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<LF>END:DAYLIGHT<LF>BEGIN:STANDARD<LF>TZOFFSETFROM:+0200<LF>TZOFFSETTO:+0100<LF>TZNAME:CET<LF>DTSTART:19701025T030000<LF>RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<LF>END:STANDARD<LF>END:VTIMEZONE<LF>END:VCALENDAR<LF> | 1 | 0 | <null> | <null> | 1 |
| 64 | 26 | CALENDAR | https://<NEXTCLOUD>/remote.php/dav/calendars/USER/personal/ | 1 | 1 | 0 | Personal | <null> | -22784 | <null> | 1 | 1 | 0 | <null> | 1 |
| 65 | 26 | CALENDAR | https://<NEXTCLOUD>/remote.php/dav/calendars/USER/contact_birthdays/ | 0 | 0 | 0 | Contact birthdays | <null> | -54 | <null> | 1 | 0 | 0 | <null> | 1 |
| 66 | 26 | CALENDAR | https://<NEXTCLOUD>/remote.php/dav/calendars/USER/SHARED-USER/ | 1 | 1 | 0 | SHARED-USER | <null> | -16757063 | <null> | 1 | 1 | 0 | <null> | 1 |
| 67 | 26 | CALENDAR | https://<NEXTCLOUD>/remote.php/dav/calendars/USER/bins/ | 1 | 1 | 0 | Bins | <null> | -13513604 | <null> | 1 | 1 | 0 | <null> | 1 |
| 68 | 25 | ADDRESS_BOOK | https://<NEXTCLOUD>/remote.php/dav/addressbooks/users/USER/contacts/ | 1 | 1 | 0 | Contacts | <null> | <null> | <null> | <null> | <null> | <null> | <null> | 1 |
| 69 | 27 | ADDRESS_BOOK | https://www.googleapis.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/default/ | 1 | 1 | 0 | Address Book | My Contacts | <null> | <null> | <null> | <null> | <null> | <null> | 1 |
| 70 | 29 | CALENDAR | https://www.google.com/calendar/dav/WORK@EMAIL.ADDRESS/events/ | 1 | 1 | 0 | WORK@EMAIL.ADDRESS | WORK@EMAIL.ADDRESS | -21178 | BEGIN:VCALENDAR<LF>PRODID:-//Google Inc//Google Calendar 70.9054//EN<LF>VERSION:2.0<LF>CALSCALE:GREGORIAN<LF>X-WR-CALNAME:WORK@EMAIL.ADDRESS<LF>X-WR-TIMEZONE:Europe/Brussels<LF>BEGIN:VTIMEZONE<LF>TZID:Europe/Brussels<LF>X-LIC-LOCATION:Europe/Brussels<LF>BEGIN:DAYLIGHT<LF>TZOFFSETFROM:+0100<LF>TZOFFSETTO:+0200<LF>TZNAME:CEST<LF>DTSTART:19700329T020000<LF>RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU<LF>END:DAYLIGHT<LF>BEGIN:STANDARD<LF>TZOFFSETFROM:+0200<LF>TZOFFSETTO:+0100<LF>TZNAME:CET<LF>DTSTART:19701025T030000<LF>RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU<LF>END:STANDARD<LF>END:VTIMEZONE<LF>END:VCALENDAR<LF> | 1 | 0 | 0 | <null> | 1 |
| 71 | 28 | ADDRESS_BOOK | https://www.google.com/carddav/v1/principals/WORK@EMAIL.ADDRESS/lists/default/ | 1 | 1 | 0 | Address Book | My Contacts | <null> | <null> | <null> | <null> | <null> | <null> | 0 |
----------
room_master_table
| id | identity_hash |
| 42 | <HASH> |
----------
SYSTEM INFORMATION
Android version: 10 (QQ3A.200705.002)
Device: DEVICE
--- END DEBUG INFO ---
(with some hidden info: now MY@EMAIL.ADDRESS
is WORK@EMAIL.ADDRESS
).
It seems I had a previous account with this email account in the DB. Do you think I can continue or should I wipe data? I think I will have to, I don’t see any events related to my work calendar.
I have some meetings, I will try this afternoon.
Thanks for the help!
Hi @rfc2822
I just deleted the work calendar account – it cleaned the old previous entries in the DB – and recreated it.
Indeed, it seems working fine when using the email address as account name! I created my account a while ago and I certainly missed the info about the account name that has to be the email address
I wanted to check the debug info but it seems that when you turn the debug on, export them in a file, turn off and repeat that, from the second time, this no longer works: the exported file is empty while the first export was OK. Do you want me to open a new topic for this small issue?
Have a good day,
Matt
My bad, I missed this. In my case, to sync both contacts and the calendar with Google, I had to set two accounts. That’s why I picked two different names. I now see I should have only change the account name for the CardDAV only one.
Yes, at the moment, this is the best solution, but:
(by chance, for the others that would do the same mistake as me, if the name is not an email address, is it not possible to get the email address from somewhere else? Or ask for the email address if it is not picked for the account?)
Indeed, it’s technically possible to tell the Calendar API a different email address than the account name (default is account name). We’re planning to make an “email address” CalDAV account setting in DAVx5 for this purpose. However, at the moment, the account name will be used as email address.
I tried to rename my account but I got this error:
android.database.sqlite.SQLiteConstraintException: UNIQUE constraint failed: service.accountName, service.type (code 2067 SQLITE_CONSTRAINT_UNIQUE)
You have renamed the account to a name that’s already existing. DAVx5 didn’t handle this error properly, but it should now be fixed (show an error message instead of crashing).
Indeed, it seems working fine when using the email address as account name!
Perfect, so I’ll set this as solved.
I wanted to check the debug info but it seems that when you turn the debug on, export them in a file, turn off and repeat that, from the second time, this no longer works: the exported file is empty while the first export was OK. Do you want me to open a new topic for this small issue?
Absolutely. We hear this from time to time, and I have often tried to reproduce it, but never succeeded. If you find a way to reproduce this, please let us know in a new thread.
@rfc2822 said in Declined events are not marked as ATTENDEE_STATUS_DECLINED:
Indeed, it’s technically possible to tell the Calendar API a different email address than the account name (default is account name). We’re planning to make an “email address” CalDAV account setting in DAVx5 for this purpose. However, at the moment, the account name will be used as email address.
That would be great, thanks for planning that!
You have renamed the account to a name that’s already existing. DAVx5 didn’t handle this error properly, but it should now be fixed (show an error message instead of crashing).
It is likely possible these entries 23 and 24 in the service DB came from an old backup that failed. I didn’t have an account listed in the app with that name already.
Thank you for having improved that!
Perfect, so I’ll set this as solved.
Absolutely. We hear this from time to time, and I have often tried to reproduce it, but never succeeded. If you find a way to reproduce this, please let us know in a new thread.
I can create a new topic, no problem
Thanks for you help!