Calendar permission is not requested on MacOS (Ventura)

Steps to reproduce

I’m using Templater to create notes with icalBuddy shell command. It used to work well (with a few tweaks mentioned in thread here), and after I upgraded to v1.0 and Ventura, it stopped working.

Shell command in Templater:
/usr/local/bin/icalBuddy -npn -nc -ps “/: /” -iep “datetime,title” -po “datetime, title” -b "\n\n### " -tf “%H%M” -ic “Calendar” eventsToday

It works in shell window (Terminal) and other tools (SwiftBar).

Obsidian didn’t request permission for Calendar and is not added to the Calendar permission list under Privacy & Security setting.

Have not tried uninstall and reinstall Obsidian as I don’t want to lose current settings.

Expected result

Obsidian should request Calendar permission to access user calendar.

Actual result

No calendar access.

Environment

  • Operating system: macOS Ventura
  • Debug info:

Additional information

3 Likes

we haven’t changed anything and this looks like a FR, please open one.

Thanks for the response. I can open an FR for it, however since it was working before with previous versions of macOS, it seems like a bug to me (the user) when it stopped working after system upgrade. I’ll follow the process but just want to let you know. Thanks!

Same issue here. Updated to MacOS Ventura yesterday and icalBuddy refuses to work. Was not working in the terminal either. I reinstalled iCalBuddy. Now works fine in the terminal but I get what seems to be a permission error in Obsidian using Templater. “error: No calendars”.
Updated to Obsidian v1 few days ago and it was fine.

1 Like

FR created: Obsidian should request Calendar permission to access user calendar.

I also included a PR that SwiftBar did a few days ago to fix similar issue on their side, hope it may help the Obsidian folks: Add Reminders permissions promt, this fixes usage of tools like icalB… · swiftbar/SwiftBar@2ff1a5a · GitHub

I’ve updated the entitlements for Obsidian app and it solved the problem by requesting calendar access when icalbuddy is called.

This the entitlement xml that I used (extracted from existing Obsidian entitlement and added a key for com.apple.security.personal-information.calendars):

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>com.apple.security.cs.allow-jit</key>
		<true/>
		<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
		<true/>
		<key>com.apple.security.cs.disable-library-validation</key>
		<true/>
		<key>com.apple.security.device.audio-input</key>
		<true/>
		<key>com.apple.security.personal-information.calendars</key>
		<true/>
	</dict>
</plist>

Tested on Obsidian v1.0.3.

1 Like

Hi @lielu, would you mind explaining the steps you followed to make it work? Having the same issue, and not seeing how to modify the App bundle to add those new permissions.

1 Like

Same problem, would like more detailed instructions because I’m not sure how to do this. Thanks!

1 Like

Hi @pvillega @Cat,

Here are my steps (but do it with caution, back up your files):

  1. Save the XML in my previous reply in a file (say, ~/Downloads/entitlements-ob.xml).
  2. You need to use codegen to resign the Obsidian app using the xml. If you don’t have a signing certificate, you can follow this post to generate a code signing certificate with a certificate name (say, “My code signing cert”). You may need a CA if you don’t already have one, and the steps to create one are similar.
  3. Run in shell:
$ cd /Applications
$ codesign --entitlements ~/Downloads/entitlements-ob.xml -f -s "My code signing cert" Obsidian.app/

Re-launch the app, and it should now request Calendar permission when icalbuddy is first run.

HTH.

2 Likes

Ran into the same issue running icalBuddy in Keyboard Maestro. Just created my trusted CA cert and about to patch the obsidian app. How do you run icalBuddy in Templater? Thanks!

Hi, Thanks for your efforts. I have tried patching Obsidian and get the following error when executing codesign:

/Users/username/Downloads/entitlements-ob.xml: unrecognized blob type (accepting blindly)
/Users/username/Downloads/entitlements-ob.xml: invalid length in entitlement blob

Can you help?

entitlements-ob.xml.zip (833 Bytes)
You can try the xml I attached here.

I mostly followed this blog: How I Import My Meetings Into My Obsidian Daily Note | by Ben Newton | Medium

An earlier thread in Obsidian forum: Outlook agenda in Obsidian - #35 by Kataboy

I used the latest icalbuddy build from: Releases · dkaluta/icalBuddy64 · GitHub

Thanks for your help! I tried the steps and now could successfully patch with the xml file. However, the console in Obsidian still shows No Calendars as error and it also doesn’t work in Terminal. What can I do to make it work?

Can you post your Terminal output when you execute icalbuddy? If it doesn’t work in Terminal, it won’t work in Obsidian. Please make sure you’re running one of the latest versions of icalbuddy from Releases · dkaluta/icalBuddy64 · GitHub.

Attached the output, incl the version of iCalBuddy I am running.

@skylin3 I observed the same behavior as you, but was able to get it to work when ran the homebrew version of iCalBuddy:

/opt/homebrew/bin/icalBuddy -npn -nc -ps "/: /" -iep "datetime,title" -po "datetime, title" -b "\n\n### " -tf "%I:%M %p" -eed  eventsToday

Thanks, @lielu, for providing this workaround!

Hi thombehrens and lielu, The installation via homebrew worked and permission for calendars was asked for terminal. Same for Obsidian. So the solution with homebrew worked for me on macOS Ventura (13.0) and Apple M1. Thanks again for your help!