IPhone – Moving iOS Notes into OS X Notes

iphonenotes.app

I'd like to do a few things, either:

  1. Safely move my iOS notes to the OS X Notes app

    That is, sync my existing notes with the OSX Notes app and then delete the couple of thousand notes from the iOS app. I assume this would be done via iCloud, but I'm not sure how to save my notes permanently on my Mac and subsequently delete them off my iPhone.

  2. Mass email my existing notes into Evernote

    I've found plenty of suggestions on how to sync any new notes with Evernote or the OS X Notes app, but nothing about moving existing notes.

(I've tried exporting them with iExplorer and CopyTrans but I instantly noticed that a lot of notes were missing, so it's not the most reliable option. And given that since iOS 7 you can't even see your notes count, I have no way of knowing if the number of notes that other exporting apps – such as PhoneView – show the real amount.)

The majority of them are important academic notes and I absolutely need to get them off my iPhone onto my Mac, but it seems a lot more difficult than it should be.

Any suggestions?

Best Answer

I just realised I have the same issue.

But using the new Dropbox feature to save app documents to your Dropbox.

What's New in Version 3.7 • New Action Extension for iOS 8: save files straight to Dropbox from your favorite apps

I can now get all my iPhone notes over and into Notes.app on the Mac. Which has my icloud account as the default account

This Answer shows how to do it with Automator folder actions. As everyone should have that.

I will be using Hazel.app As I find that works better than Automator folder actions.


First on my Mac.

  1. create a folder in dropbox name notes.
  2. create a folder in my Macs documents folder named htmlNotes.
  3. Create a Automator Folder Action workflow :

    • Select the notes for the folder that receives the files.
    • Add a Move finder Items action
    • set the Move finder Items action's to: htmlNotes
    • Add a Run Applescript action
    • set the applescript code to:

on run {input, parameters}
    set bodyText to (do shell script "cat " & quoted form of (POSIX path of (item 1 of input as string)))
    set theName to paragraph 1 of (do shell script "cat " & quoted form of (POSIX path of (item 1 of input as string)) & " |textutil -format html -convert txt -stdin -stdout")
    tell application "Notes"
        activate
        set theContainerFolder to container of first note
        make new note at theContainerFolder with properties {body:bodyText, name:theName}
    end tell    
end run

Save it.

enter image description here


Now in the Notes app on the iPhone I have the latest Dropbox update which gives me the ability to save a note to dropbox using the share icon.

(If you cannot see the Dropbox extension in your share list. the click the More button and activate it.)

enter image description here

Once you are in Dropbox , choose the folder you want the files to be saved into.

enter image description here

Dropbox will remember you last selection.

Lastly save the file.

The script should run on the make and move the file from notes to htmlNotes.

I did this moving because I originally found that if Dropbox did any updates to the folder the files would be added more than once to notes.

The files saved into dropbox are formatted in html tags. This is really handy because it allows us to keep most of the formatting from the original notes. The reason I do the conversion from html to text in the script is just to cleanly get the first paragraph, which will be used for the notes name.

Hope this helps. And note that this can be adapted to be used with any other way you choose to get the note text file onto your Mac, i.e email rule, Script Editor.app or like me Hazel as I find it is more responsive than the built in folder actions.


Here is the adapted script for Hazel:

set bodyText to (do shell script "cat " & quoted form of (POSIX path of theFile))
set theName to paragraph 1 of (do shell script "cat " & quoted form of (POSIX path of theFile) & " |textutil -format html -convert txt -stdin -stdout")
tell application "Notes"
    activate
    set theContainerFolder to container of first note
    make new note at theContainerFolder with properties {body:bodyText, name:theName}
end tell