Skip to content
Skillv1.0.0

evernote-hello-world

Create a minimal working Evernote example. Use when starting a new Evernote integration, testing your setup, or learning basic Evernote API patterns. Trigger with phrases like "evernote hello world",

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (skills/.curated/evernote-hello-world/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill evernote-hello-world. Copyright stays with the author (MIT).

Evernote Hello World

Overview

Create your first Evernote note using the Cloud API, demonstrating ENML format and NoteStore operations.

Prerequisites

  • Completed evernote-install-auth setup
  • Valid access token (OAuth or Developer Token for sandbox)
  • Development environment ready

Instructions

Step 1: Create Entry File

Initialize an authenticated Evernote client. Use a Developer Token for sandbox or an OAuth access token for production.

// hello-evernote.js
const Evernote = require('evernote');

const client = new Evernote.Client({
  token: process.env.EVERNOTE_ACCESS_TOKEN,
  sandbox: true // false for production
});

Step 2: Understand ENML Format

Evernote uses ENML (Evernote Markup Language), a restricted XHTML subset. Every note must include the XML declaration, DOCTYPE, and <en-note> root element. Forbidden elements include <script>, <form>, <iframe>. Only inline styles are allowed (no class or id attributes).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note>
  <h1>Note Title</h1>
  <p>Content goes here</p>
  <en-todo checked="false"/> A task item
</en-note>

Step 3: Create Your First Note

Build ENML content and call noteStore.createNote(). The returned object contains the guid, title, and created timestamp.

async function createHelloWorldNote() {
  const noteStore = client.getNoteStore();

  const content = `<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
<en-note>
  <h1>Hello from Claude Code!</h1>
  <p>Created at: ${new Date().toISOString()}</p>
</en-note>`;

  const note = new Evernote.Types.Note();
  note.title = 'Hello World - Evernote API';
  note.content = content;

  const createdNote = await noteStore.createNote(note);
  console.log('Note GUID:', createdNote.guid);
  return createdNote;
}

Step 4: List Notebooks and Retrieve Notes

Use listNotebooks() to enumerate notebooks and getNote() with boolean flags to control what data is returned (content, resources, recognition, alternate data).

const noteStore = client.getNoteStore();

// List all notebooks
const notebooks = await noteStore.listNotebooks();
notebooks.forEach(nb => console.log(`- ${nb.name} (${nb.guid})`));

// Retrieve a note with content
const note = await noteStore.getNote(noteGuid, true, false, false, false);
console.log('Title:', note.title);

For the complete working example with Python SDK, todo lists, and a combined workflow, see Implementation Guide.

Output

  • Working code file with Evernote client initialization
  • Successfully created note in your Evernote account
  • Console output with note GUID and confirmation

Error Handling

Error Cause Solution
EDAMUserException: BAD_DATA_FORMAT Invalid ENML content Validate against ENML DTD; ensure XML declaration and DOCTYPE
EDAMNotFoundException Note or notebook not found Check GUID is correct and note is not in trash
EDAMSystemException: RATE_LIMIT_REACHED Too many requests Wait for rateLimitDuration seconds before retrying
Missing DOCTYPE ENML missing required header Add <?xml ...?> and <!DOCTYPE ...> before <en-note>

Resources

Next Steps

Proceed to evernote-local-dev-loop for development workflow setup.

Examples

Sandbox test: Create a note using a Developer Token with sandbox: true, verify it appears in your sandbox account at sandbox.evernote.com.

Production note: Switch to OAuth access token, set sandbox: false, create a note in a specific notebook using note.notebookGuid.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-evernote-hello-world/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-evernote-hello-world.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-evernote-hello-world",
  "kind": "skill",
  "name": "evernote-hello-world",
  "description": "Create a minimal working Evernote example. Use when starting a new Evernote integration, testing your setup, or learning basic Evernote API patterns. Trigger with phrases like \"evernote hello world\", \"evernote example\", \"evernote quick start\", \"simple evernote code\", \"create first note\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding",
      "general_chat"
    ],
    "tags": [
      "skill-md",
      "saas",
      "evernote",
      "api",
      "testing",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Create a minimal working Evernote example. Use when starting a new Evernote integration, testing your setup, or learning basic Evernote API patterns. Trigger with phrases like \"evernote hello world\", \"evernote example\", \"evernote quick start\", \"simple evernote code\", \"create first note\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "skills/.curated/evernote-hello-world/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/skills/.curated/evernote-hello-world/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/skills/.curated/evernote-hello-world/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit"
    ],
    "license": "MIT"
  },
  "instructions": "# Evernote Hello World\n\n## Overview\n\nCreate your first Evernote note using the Cloud API, demonstrating ENML format and NoteStore operations.\n\n## Prerequisites\n\n- Completed `evernote-install-auth` setup\n- Valid access token (OAuth or Developer Token for sandbox)\n- Development environment ready\n\n## Instructions\n\n### Step 1: Create Entry File\n\nInitialize an authenticated Evernote client. Use a Developer Token for sandbox or an OAuth access token for production.\n\n```javascript\n// hello-evernote.js\nconst Evernote = require('evernote');\n\nconst client = new Evernote.Client({\n  token: process.env.EVE",
  "cost": {
    "context_tokens": 1014
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-evernote-hello-world/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.