Dr Fragen in the operating room

Don’t Send iCal Replies

·

I came across a great hint in Mac OS X Hints today. It seems that there’s an easy way to interrupt the process of sending an email reply when accepting iCal invites. As I tend to play around with iCal invites a lot (adding and deleting the same event ad nauseum) — I love this.
I wrote up a modified script like in the example and bundled it with a shell script, to install and uninstall the modification. You have to run this shell script using sudo from the CLI (Command Line Interface aka Terminal.app).
The zip file contains the shell script, the modified Mail.scpt AppleScript, and the original Mail.scpt AppleScript.
To install run sudo /path/to/iCal_Reply_Send.sh install
To uninstall run sudo /path/to/iCal_Reply_Send.sh revert
To check usage and status, run /path/to/iCal_Reply_Send.sh
If you don’t like messing with the CLI then there’s a great little shareware app, iCal Reply Checker that does it all, and more.
It seems that neither method interferes with the code signing of iCal as the script in question is not code signed.
Update
It appears that if you’re using an Exchange account in Mail.app that this script is being bypassed and this hint won’t work for you. 🙁

Comments

15 responses to “Don’t Send iCal Replies”

  1. Victor Trac Avatar

    So I originally tried editing the file by hand and restarting Mail.app, but it behaived exactly the same – clicking accept or deny would immediate shoot an email response back to the sender. I then tried your script to no avail either. What version are you running? I’m on 10.6.3 and Mail.app 4.2 (1078).

    Any other ideas that I should check?

    1. Andy Avatar

      @victor – I’m running same versions of OS X and Mail.app. If you tried editing original Mail.scpt, do you have the original file backed up? I just uploaded and tested a newer version of the script that makes the choices more explicit as well as automatically sending if no response for 10 seconds.

      Try reverting and installing again? Does the dialog show? Button choices are now “Don’t Send” and “Send” with default “Send”.

      Let me know.

  2. Andy Avatar

    Oops, not fixed here. Give me a few, I’ll be right back.

  3. Andy Avatar

    @victor – OK, it’s now working again. Download, revert and install again.

    Dialog should put up buttons “Cancel” and “Send”. HItting “Cancel” within the 10 second timeout should result in no confirmation mail being sent.

    Let me know if this is now working

  4. Victor Trac Avatar

    Thanks for following up. Unfortunately it seems like this is due to me using Exchange, which seems to use a different code path altogether. Oh well.. I’ll just continue waiting for the official Apple fix.

  5. Paul Avatar

    It seems to be working with CalDav which is excellent! Is there anyway in iCal that once you edit a calendar entry you can cancel changes, as once you start editing you either have to continue ‘Editing’ or ‘Send’ with this script ?

    1. Andy Fragen Avatar
      Andy Fragen

      @paul, the script only intercepts the normal flow of iCal wanting to send out an update when iCal notices the event is new or has changed, and allows the user to not do this if desired. There’s nothing in the script about having to do with editing of events. That’s all inside of iCal. The script is either ‘Send’ or ‘Don’t Send’.

  6. Paul Avatar

    Yes my apologies, I was mixing another issue in my comment!

    Any chance this works with Lion iCal ?

    1. Andy Fragen Avatar
      Andy Fragen

      I just checked and the Mail.scpt in Lion iCal is identical to the one in Snow Leopard. The script should work.

  7. Alan Avatar

    I tried to run your script, but it kept telling me that the command was not found. Granted, I’m not terribly familiar with Terminal – so I may have been doing something wrong. Following the Mac OS X Hints’ directions I tried to manually edit the Mail.scpt, but was unable to find it.

    I’m using OS X Lion. I saw that you said above that the scpt file is the same….but has something else changed where it’s located in a different place?

    I did Show Contents on the Mail.app, went to the Resources folder…but I don’t see a Scripts folder in there at all – and when I tried to search for the file, or folder, it could not find it either.

  8. Andy Fragen Avatar
    Andy Fragen

    @Alan – Try opening a terminal window and type sudo then drag the iCal_Reply_Send.sh file to the terminal window. Then from within the terminal window add install to the end of the command. It will ask for an administrator’s password.

  9. Mark Alhadeff Avatar
    Mark Alhadeff

    This did not work for iCloud Calendars. No dialog box shows up. iCloud event changes must be sending notification directly from iCloud. Darn!

  10. Rob Avatar

    I installed this, but when I go to delete an event, it still only asks me to either cancel or delete (and notify). Am I misunderstanding how this works?

    1. Andy Fragen Avatar
      Andy Fragen

      I think you misunderstand how this works. The script intercepts the command to always send an email response. If you answer ‘Delete & Notify’ the default behavior, sending an email, occurs. If you ‘Cancel’, no email response to the person whose event it is will be sent. The event will be deleted regardless of which option is chosen.