'How can I access calendars on my Mac with Java?

I want to read data stored locally by the Apple Calendar app on my Mac (12.1 Monterey). The data is stored in subdirectories of ~/Library/Calendars/ with one subdirectory per calendar. The problem: When I try to get a list of files from there, Java returns null:

String userHomeDir = System.getProperty("user.home");
File calendarRoot = new File(userHomeDir + "/Library/Calendars/");
File[] calendars = calendarRoot.listFiles();
System.out.println("Number of files: " + calendars.length); // NPE thrown here

File permissions are as follows:

  • ~/Library: drwx------+ (owner: my user)
  • ~/Library/Calendars: drwxr-xr-x@ (owner: my user)

Listing files in Library works fine.

How can I access that folder?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source