calendar selection

@KniazidisR For my Environment on Ventura I receive the same error for your code:

Parse error near line 2: no such table: zcalendaritem

I was not requested for any permissions missing for your code running directly from Scripteditor (Scripteditor was granted enough rights usually)

What I found out so far is a fundamental change of the sqlite3 database filename, location and fieldnames used in the query (not to mention maybe actual data formats).

Old Database Location

The old sqlite3 Database until Catalina and early Monterey was stored in a file path with no file extension at: /Users/[userid]/Library/Calendars/Calendar Cache (the path used in the old non working code).

Remark: The old name Calendar Cache is a bit misleading. It is actually the working database and copy of all calendars for the UI and Reminders etc. and fed additionally from the externally subscribed calendars. In this intention the database caches these calendars when you are offline.

On Ventura

  • The old Database exists on full path /Users/[userid]/Library/Calendars/Calendar Cache , as an empty file (shown in Catalina to Ventua as a folder!)
  • The new Database lives in /Users/[userid]/Library/Calendars/Calendar.sqlitedb.

Getting UUIDs from Selection seems OK

The shell command to figure out the UUIDs of selected calendar items still works:
defaults read com.apple.ical SelectedEvents

I suppose the parsing into a list of UUID is working as well.

How to update the SQL Query?
The challenge is now (if AppleScript can still access the database via sqlite shell command!):

  • understand the old query (almost, but not yet)
  • Try to get a copy of an old database from Catalina Backups handy (for Understanding)
  • use a tool like DB Browser for SQLite from https://sqlitebrowser.org/ to inspect the databases
    • I could open both files successfuly as a copy residing on the desktop. The in place database on Ventura cannot be opened due to file lock)
  • find the corresponding fields in the new database
  • update the SQL query to figure out the eventID and calendarID needed to call the functions to create new alerts.

Due to poor documentation of abbreviated variable names, I ca understand the coarse concept but still lacking final confidence about the SQL statement parts (I am not an SQL expert).

Maybe that helps other to go further…