Notes on Simplenote Import / Export Formats

Last Updated: Sept. 8, 2011


The purpose of this document is to provide an overview of the formats the Simplenote Import and Export tools support, and a brief explanation of the syntax and formatting for each.

For the examples, we’ll be exporting all notes for this account (2 notes total). The import formats mirror the output generated during export.

Formats:


Plain Text Format

Note Created: [note creation date]

Note Updated: [note updated date]

Note Tags: [tags for notes, separated by commas]

Note Contents: [new line character]

[contents of note]

----


Plain Text Example

Note Created: Dec. 11 2010 02:19:08

Note Updated: Dec. 11 2010 02:19:56

Note Tags: Ideas

Note Contents: Million Dollar Ideas:

A watch that tells you when you're going to die.

How it works: You put it on your wrist.

----
Note Created: Dec. 11 2010 02:16:48

Note Updated: Dec. 11 2010 02:18:58

Note Tags: List,Food

Note Contents:

Grocery List for John Q. Public:

- Apples

- Soda

- Bread

- Blank Tapes

- Cookies

- Crayons

- Eggs

- Gravy

----

  • Notes imported as plain text will be tagged with txt_import.
  • For creation and updated timestamps, months are represented in AP’s Style for abbreviated month names without periods. See Appendix A for more information.

CSV (Comma Separated Values) Format

Please note that CSV is more of a 'medium' than a standardized file format. Exporting to CSV without custom configuration will not work in the majority of cases.

[New line][Creation Date],[Updated Date],[Note Content],[Tags - optional, separated by ' ']


CSV Example

Dec 11 2010 02:19:08,Dec 11 2010 02:19:56,"Million Dollar Ideas:

A watch that tells you when you're going to die.

How it works: You put it on your wrist.",Ideas

Dec 11 2010 02:16:48,Dec 11 2010 02:18:58,"Grocery List for John Q. Public:

- Apples - Soda - Bread - Blank Tapes - Cookies - Crayons - Eggs - Gravy

",List Food

  • CSV is generated using Python’s csv module.
  • Notes imported as CSV will be tagged with csv_import.
  • For creation and updated timestamps, months are represented in AP’s Style for abbreviated month names. See Appendix A for more information.
  • To escape double quotes (“) in note content, use two double quotes (“”).

JSON (JavaScript Object Notation) Format

  • Notes are exported as a list ([ ]).
  • Each note is contained inside {}, and contains the following attributes:
  • modifydate - date of the format MMM DD YYYY HH:MM:SS
  • createdate - date of the format MMM DD YYYY HH:MM:SS
  • tags - a list of strings
  • systemtags - a list of strings
  • content - a string
  • key - a string

JSON Example:

[{"modifydate": "Dec 11 2010 02:19:56", "tags": ["Ideas"], "createdate": "Dec 11 2010 02:19:08", "systemtags": [], "content": "Million Dollar Ideas:\n\nA watch that tells you when you're going to die.\n\nHow it works: You put it on your wrist.", "key": "agtzaW1wbGUtbm90ZXINCxIETm90ZRjw0KUFDA"}, {"modifydate": "Dec 11 2010 02:18:58", "tags": ["List", "Food"], "createdate": "Dec 11 2010 02:16:48", "systemtags": [], "content": "Grocery List for John Q. Public:\n\n- Apples\n- Soda\n- Bread\n- Blank Tapes\n- Cookies\n- Crayons\n- Eggs\n- Gravy\n", "key": "agtzaW1wbGUtbm90ZXINCxIETm90ZRiTwKgFDA"}]

  • JSON is generated using Python’s simplejson module.
  • Notes imported as JSON will be tagged with json_import.

XML (eXtensible Markup Language) Format

  • <notes> is the top level tag, and contains 0 or more <note> tags, each of which contains a single note.
  • each <note> tag contains the following tags:
  • <key> - the key for the note
  • <created> - creation date for the note, in ISO 8601 combined format.
  • <modified> - modification date for the note, in ISO 8601 combined format.
  • <tags> - contains 0 or more tag elements, i.e.: <tag> ‘myTagName’ </tag>
  • <content> - contains the note content

XML Example:

<?xml version="1.0" encoding="UTF-8"?> <notes>

<note> <key>agtzaW1wbGUtbm90ZXINCxIETm90ZRjw0KUFDA</key> <created>2010-12-11T02:19:08</created> <modified>2010-12-11T02:19:56</modified> <tags> <tag>Ideas</tag> </tags> <content>Million Dollar Ideas:

A watch that tells you when you&apos;re going to die.

How it works: You put it on your wrist.</content> </note>

<note> <key>agtzaW1wbGUtbm90ZXINCxIETm90ZRiTwKgFDA</key> <created>2010-12-11T02:16:48</created> <modified>2010-12-11T02:18:58</modified> <tags> <tag>List</tag> <tag>Food</tag> </tags> <content>Grocery List for John Q. Public:

- Apples - Soda - Bread - Blank Tapes - Cookies - Crayons - Eggs - Gravy </content> </note>

</notes>

  • Notes imported as XML will be tagged with xml_import.

YAML (YAML Ain’t Markup Language) Format

-key: content: [ note content ] createdate: [date and time note was created ] modifydate: [ date and time note was modified ] tags: - [ a tag ]

  • Implementation notes: JSON is generated using Python’s yaml module.
  • Notes imported as yaml will be tagged with yaml_import.

Evernote (ENEX) Format

Details of the Evernote (ENEX) format can be found in the ENEX DTD

  • As Simplenote notes do not contain titles, the export operation infers one from the first four words of your note (if possible).
  • The exporting application is labelled as “Simplenote” and its version: “Simplenote Export”.
  • The Simplenote exporter makes its best effort to preserve spacing and newlines in your notes when translating to Evernote’s XHTML format.
  • As Evernote supports spaces in tags, the import will replace all spaces in tags with underscores (_).
  • Notes imported as Evernote ENEX will be tagged with enex_import.

ENEX Example:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export.dtd"> <en-export export-date="20101211T032742Z" application="Simplenote" version="Simplenote Export">

<note> <title>Million Dollar Ideas: A ...</title> <content><![CDATA[<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml.dtd"><en-note style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Million Dollar Ideas:<div><br/></div><div>A watch that tells you when you're going to die.</div><div><br/></div><div>How it works: You put it on your wrist.</div></en-note>]]></content> <created>20101211T021908Z</created> <updated>20101211T021956Z</updated> <tag>Ideas</tag> <author>asimpleuser@simperium.com</author> <note-attributes/> </note>

<note> <title>Grocery List for John ...</title> <content><![CDATA[<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml.dtd"><en-note style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">Grocery List for John Q. Public:<div><br/></div><div>- Apples</div><div>- Soda</div><div>- Bread</div><div>- Blank Tapes</div><div>- Cookies</div><div>- Crayons</div><div>- Eggs</div><div>- Gravy</div><div><br/></div></en-note>]]></content> <created>20101211T021648Z</created> <updated>20101211T021858Z</updated> <tag>List</tag><tag>Food</tag> <author>asimpleuser@simperium.com</author> <note-attributes/> </note>

</en-export>


Google Notes (Atom) Format (Import only)

  • Support for Atom is provide for import only.
  • Notes will be tagged with atom_import and the name of the exported Google notebook.

The import process parses the following elements.

  • entry - an individual note.
  • updated - last modification time.
  • content - note contents.
  • category - specifying scheme of http://schemas.google.com/g/2005/label will specify a tag.

Appendices

Appendix A

  • AP Style Month Abbreviations:
  • January -- Jan.
  • February -- Feb.
  • March -- March
  • April -- April
  • May -- May
  • June -- June
  • July -- July
  • August -- Aug.
  • September -- Sept.
  • October -- Oct.
  • November -- Nov.
  • December -- Dec.

AP Style Guide


Revision History:

  • Sept. 8th, 2011 - Markdown Conversion
  • Sept. 7th, 2011 - Addition of Google Notes (atom)
  • August 23rd, 2011 - Clarified a few formatting issues.
  • December 21st, 2010 - Updated to add notes about tagging of imports.
  • December 20th, 2010 - Initial publication.