diff --git a/components/evernote/actions/create-note/create-note.mjs b/components/evernote/actions/create-note/create-note.mjs
new file mode 100644
index 0000000000000..43caeded0f6cd
--- /dev/null
+++ b/components/evernote/actions/create-note/create-note.mjs
@@ -0,0 +1,107 @@
+import { ConfigurationError } from "@pipedream/platform";
+import { parseObject } from "../../common/utils.mjs";
+import evernote from "../../evernote.app.mjs";
+
+export default {
+  key: "evernote-create-note",
+  name: "Create Note",
+  description: "Creates a new note in Evernote. [See the documentation](https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_createNote)",
+  version: "0.0.1",
+  type: "action",
+  props: {
+    evernote,
+    title: {
+      type: "string",
+      label: "Title",
+      description: "The subject of the note. Can't begin or end with a space.",
+    },
+    content: {
+      type: "string",
+      label: "Content",
+      description: "The XHTML block that makes up the note. This is the canonical form of the note's contents, so will include abstract Evernote tags for internal resource references. A client may create a separate transformed version of this content for internal presentation, but the same canonical bytes should be used for transmission and comparison unless the user chooses to modify their content.",
+      default: "",
+      optional: true,
+    },
+    active: {
+      type: "boolean",
+      label: "Active",
+      description: "If the note is available for normal actions and viewing",
+      optional: true,
+    },
+    notebookGuid: {
+      propDefinition: [
+        evernote,
+        "notebookGuid",
+      ],
+      optional: true,
+    },
+    tagGuids: {
+      propDefinition: [
+        evernote,
+        "tagGuids",
+      ],
+      optional: true,
+    },
+    attributes: {
+      type: "object",
+      label: "Attributes",
+      description: "A list of the attributes for this note. [See the documentation](https://dev.evernote.com/doc/reference/Types.html#Struct_NoteAttributes) for further details.",
+      optional: true,
+    },
+    noUpdateTitle: {
+      type: "boolean",
+      label: "No Update Title",
+      description: "The client may not update the note's title.",
+      optional: true,
+    },
+    noUpdateContent: {
+      type: "boolean",
+      label: "No Update Content",
+      description: "The client may not update the note's content. Content includes `content` and `resources`, as well as the related fields `contentHash` and `contentLength`.",
+      optional: true,
+    },
+    noUpdateEmail: {
+      type: "boolean",
+      label: "No Update Email",
+      description: "The client may not email the note.",
+      optional: true,
+    },
+    noUpdateShare: {
+      type: "boolean",
+      label: "No Update Share",
+      description: "The client may not share the note with specific recipients.",
+      optional: true,
+    },
+    noUpdateSharePublicly: {
+      type: "boolean",
+      label: "No Update Share Publicly",
+      description: "The client may not make the note public.",
+      optional: true,
+    },
+  },
+  async run({ $ }) {
+    try {
+      const note = await this.evernote.createNote({
+        title: this.title,
+        content: this.content,
+        active: this.active,
+        notebookGuid: this.notebookGuid,
+        tagGuids: this.tagGuids,
+        resources: this.resources,
+        attributes: parseObject(this.attributes),
+        restrictions: {
+          noUpdateTitle: this.noUpdateTitle,
+          noUpdateContent: this.noUpdateContent,
+          noUpdateEmail: this.noUpdateEmail,
+          noUpdateShare: this.noUpdateShare,
+          noUpdateSharePublicly: this.noUpdateSharePublicly,
+        },
+      });
+
+      $.export("$summary", `Created note "${note.title}" with ID ${note.guid}`);
+      return note;
+    } catch ({ parameter }) {
+      throw new ConfigurationError(parameter);
+    }
+  },
+};
diff --git a/components/evernote/actions/create-notebook/create-notebook.mjs b/components/evernote/actions/create-notebook/create-notebook.mjs
new file mode 100644
index 0000000000000..56d6c8d83373a
--- /dev/null
+++ b/components/evernote/actions/create-notebook/create-notebook.mjs
@@ -0,0 +1,69 @@
+import { ConfigurationError } from "@pipedream/platform";
+import { parseObject } from "../../common/utils.mjs";
+import evernote from "../../evernote.app.mjs";
+
+export default {
+  key: "evernote-create-notebook",
+  name: "Create Notebook",
+  description: "Creates a new notebook in Evernote. [See the documentation](https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_createNotebook)",
+  version: "0.0.1",
+  type: "action",
+  props: {
+    evernote,
+    name: {
+      type: "string",
+      label: "Name",
+      description: "The name of the notebook.",
+    },
+    defaultNotebook: {
+      type: "boolean",
+      label: "Default Notebook",
+      description: "If true, this notebook should be used for new notes whenever the user has not (or cannot) specify a desired target notebook.",
+      optional: true,
+    },
+    published: {
+      type: "boolean",
+      label: "Published",
+      description: "If this is set to true, then the Notebook will be accessible either to the public, or for business users to their business, via the 'publishing' or 'businessNotebook' specifications, which must also be set. If this is set to false, the Notebook will not be available to the public (or business).",
+      optional: true,
+      reloadProps: true,
+    },
+    publishing: {
+      type: "object",
+      label: "Publishing",
+      description: "If the Notebook has been opened for public access, then this will point to the set of publishing information for the Notebook (URI, description, etc.). A Notebook cannot be published without providing this information, but it will persist for later use if publishing is ever disabled on the Notebook. [See the documentation](https://dev.evernote.com/doc/reference/Types.html#Struct_Publishing) for further details.",
+      hidden: true,
+    },
+    stack: {
+      type: "string",
+      label: "Stack",
+      description: "If this is set, then the notebook is visually contained within a stack of notebooks with this name. All notebooks in the same account with the same 'stack' field are considered to be in the same stack. Notebooks with no stack set are \"top level\" and not contained within a stack.",
+      optional: true,
+    },
+  },
+  async additionalProps(props) {
+    props.publishing.hidden = !this.published;
+
+    return {};
+  },
+  async run({ $ }) {
+    try {
+      const data = {
+        name: this.name,
+        defaultNotebook: this.defaultNotebook,
+        published: this.published,
+        stack: this.stack,
+      };
+      const publishing = parseObject(this.publishing);
+      if (publishing) data.publishing = publishing;
+      const response = await this.evernote.createNotebook({
+        ...data,
+      });
+
+      $.export("$summary", `Created notebook ${response.name} with ID: ${response.guid}`);
+      return response;
+    } catch ({ parameter }) {
+      throw new ConfigurationError(parameter);
+    }
+  },
+};
diff --git a/components/evernote/actions/update-note/update-note.mjs b/components/evernote/actions/update-note/update-note.mjs
new file mode 100644
index 0000000000000..73578363de24b
--- /dev/null
+++ b/components/evernote/actions/update-note/update-note.mjs
@@ -0,0 +1,116 @@
+import { ConfigurationError } from "@pipedream/platform";
+import { parseObject } from "../../common/utils.mjs";
+import evernote from "../../evernote.app.mjs";
+
+export default {
+  key: "evernote-update-note",
+  name: "Update Note",
+  description: "Updates an existing note in Evernote. [See the documentation](https://dev.evernote.com/doc/reference/NoteStore.html#Fn_NoteStore_updateNote)",
+  version: "0.0.1",
+  type: "action",
+  props: {
+    evernote,
+    noteId: {
+      propDefinition: [
+        evernote,
+        "noteId",
+      ],
+    },
+    title: {
+      type: "string",
+      label: "Title",
+      description: "The subject of the note. Can't begin or end with a space.",
+      optional: true,
+    },
+    content: {
+      type: "string",
+      label: "Content",
+      description: "The XHTML block that makes up the note. This is the canonical form of the note's contents, so will include abstract Evernote tags for internal resource references. A client may create a separate transformed version of this content for internal presentation, but the same canonical bytes should be used for transmission and comparison unless the user chooses to modify their content.",
+      default: "",
+      optional: true,
+    },
+    active: {
+      type: "boolean",
+      label: "Active",
+      description: "If the note is available for normal actions and viewing",
+      optional: true,
+    },
+    notebookGuid: {
+      propDefinition: [
+        evernote,
+        "notebookGuid",
+      ],
+      optional: true,
+    },
+    tagGuids: {
+      propDefinition: [
+        evernote,
+        "tagGuids",
+      ],
+      optional: true,
+    },
+    attributes: {
+      type: "object",
+      label: "Attributes",
+      description: "A list of the attributes for this note. [See the documentation](https://dev.evernote.com/doc/reference/Types.html#Struct_NoteAttributes) for further details.",
+      optional: true,
+    },
+    noUpdateTitle: {
+      type: "boolean",
+      label: "No Update Title",
+      description: "The client may not update the note's title.",
+      optional: true,
+    },
+    noUpdateContent: {
+      type: "boolean",
+      label: "No Update Content",
+      description: "The client may not update the note's content. Content includes `content` and `resources`, as well as the related fields `contentHash` and `contentLength`.",
+      optional: true,
+    },
+    noUpdateEmail: {
+      type: "boolean",
+      label: "No Update Email",
+      description: "The client may not email the note.",
+      optional: true,
+    },
+    noUpdateShare: {
+      type: "boolean",
+      label: "No Update Share",
+      description: "The client may not share the note with specific recipients.",
+      optional: true,
+    },
+    noUpdateSharePublicly: {
+      type: "boolean",
+      label: "No Update Share Publicly",
+      description: "The client may not make the note public.",
+      optional: true,
+    },
+  },
+  async run({ $ }) {
+    try {
+      const response = await this.evernote.updateNote({
+        guid: this.noteId,
+        title: this.title,
+        content: this.content,
+        active: this.active,
+        notebookGuid: this.notebookGuid,
+        tagGuids: this.tagGuids,
+        resources: this.resources,
+        attributes: parseObject(this.attributes),
+        restrictions: {
+          noUpdateTitle: this.noUpdateTitle,
+          noUpdateContent: this.noUpdateContent,
+          noUpdateEmail: this.noUpdateEmail,
+          noUpdateShare: this.noUpdateShare,
+          noUpdateSharePublicly: this.noUpdateSharePublicly,
+        },
+      });
+      $.export("$summary", `Note ${this.noteId} updated successfully.`);
+      return response;
+    } catch ({
+      parameter, message,
+    }) {
+      throw new ConfigurationError(message || parameter);
+    }
+  },
+};
diff --git a/components/evernote/common/constants.mjs b/components/evernote/common/constants.mjs
new file mode 100644
index 0000000000000..ea830c15a04cb
--- /dev/null
+++ b/components/evernote/common/constants.mjs
@@ -0,0 +1 @@
+export const LIMIT = 100;
diff --git a/components/evernote/common/utils.mjs b/components/evernote/common/utils.mjs
new file mode 100644
index 0000000000000..dcc9cc61f6f41
--- /dev/null
+++ b/components/evernote/common/utils.mjs
@@ -0,0 +1,24 @@
+export const parseObject = (obj) => {
+  if (!obj) return undefined;
+
+  if (Array.isArray(obj)) {
+    return obj.map((item) => {
+      if (typeof item === "string") {
+        try {
+          return JSON.parse(item);
+        } catch (e) {
+          return item;
+        }
+      }
+      return item;
+    });
+  }
+  if (typeof obj === "string") {
+    try {
+      return JSON.parse(obj);
+    } catch (e) {
+      return obj;
+    }
+  }
+  return obj;
+};
diff --git a/components/evernote/evernote.app.mjs b/components/evernote/evernote.app.mjs
index 419af9191f9e3..cdb68588f1186 100644
--- a/components/evernote/evernote.app.mjs
+++ b/components/evernote/evernote.app.mjs
@@ -1,11 +1,126 @@
+import Evernote from "evernote";
+import { LIMIT } from "./common/constants.mjs";
+
 export default {
   type: "app",
   app: "evernote",
-  propDefinitions: {},
+  propDefinitions: {
+    noteId: {
+      type: "string",
+      label: "Note ID",
+      description: "ID of the note to update",
+      async options({ page }) {
+        const { notes } = await this.listNotes({
+          offset: LIMIT * page,
+          maxNotes: LIMIT,
+        });
+        return notes.map((note) => ({
+          label: note.title,
+          value: note.guid,
+        }));
+      },
+    },
+    notebookGuid: {
+      type: "string",
+      label: "Notebook ID",
+      description: "The notebook ID that contains this note. If no Notebook ID is provided, the default notebook will be used instead.",
+      async options() {
+        const notebooks = await this.listNotebooks();
+        return notebooks.map((notebook) => ({
+          label: notebook.name,
+          value: notebook.guid,
+        }));
+      },
+    },
+    tagGuids: {
+      type: "string[]",
+      label: "Tag IDs",
+      description: "A list of tag IDs that are applied to this note.",
+      async options() {
+        const tags = await this.listTags();
+        return tags.map((tag) => ({
+          label: tag.name,
+          value: tag.guid,
+        }));
+      },
+    },
+  },
   methods: {
-    // this.$auth contains connected account data
-    authKeys() {
-      console.log(Object.keys(this.$auth));
+    _baseUrl() {
+      return "https://api.evernote.com/v1";
+    },
+    client() {
+      const client = new Evernote.Client({
+        token: this.$auth.developer_token,
+        sandbox: false,
+      });
+      return client.getNoteStore();
+    },
+    async list({ method }) {
+      const noteStore = await this.client();
+      return await noteStore[method]();
+    },
+    async post({
+      method, ...opts
+    }) {
+      const noteStore = await this.client();
+      return await noteStore[method]({
+        ...opts,
+      });
+    },
+    async listNotes({
+      maxNotes, offset,
+    }) {
+      const noteStore = await this.client();
+      return await noteStore.findNotesMetadata(
+        new Evernote.NoteStore.NoteFilter({
+          order: "created",
+          ascending: false,
+        }),
+        offset,
+        maxNotes,
+        new Evernote.NoteStore.NotesMetadataResultSpec({
+          includeTitle: true,
+          includeContentLength: true,
+          includeCreated: true,
+          includeUpdated: true,
+          includeDeleted: true,
+          includeUpdateSequenceNum: true,
+          includeNotebookGuid: true,
+          includeTagGuids: true,
+          includeAttributes: true,
+          includeLargestResourceMime: true,
+          includeLargestResourceSize: true,
+        }),
+      );
+    },
+    listNotebooks() {
+      return this.list({
+        method: "listNotebooks",
+      });
+    },
+    listTags() {
+      return this.list({
+        method: "listTags",
+      });
+    },
+    createNote(opts = {}) {
+      return this.post({
+        method: "createNote",
+        ...opts,
+      });
+    },
+    createNotebook(opts = {}) {
+      return this.post({
+        method: "createNotebook",
+        ...opts,
+      });
+    },
+    updateNote(opts = {}) {
+      return this.post({
+        method: "updateNote",
+        ...opts,
+      });
     },
   },
-};
\ No newline at end of file
+};
diff --git a/components/evernote/package.json b/components/evernote/package.json
index bfcbd790d5563..e72b4526779a6 100644
--- a/components/evernote/package.json
+++ b/components/evernote/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@pipedream/evernote",
-  "version": "0.0.1",
+  "version": "0.1.0",
   "description": "Pipedream Evernote Components",
   "main": "evernote.app.mjs",
   "keywords": [
@@ -11,5 +11,8 @@
   "author": "Pipedream  (https://pipedream.com/)",
   "publishConfig": {
     "access": "public"
+  },
+  "dependencies": {
+    "evernote": "^2.0.5"
   }
-}
\ No newline at end of file
+}
diff --git a/components/evernote/sources/common/base.mjs b/components/evernote/sources/common/base.mjs
new file mode 100644
index 0000000000000..9b56544b87eba
--- /dev/null
+++ b/components/evernote/sources/common/base.mjs
@@ -0,0 +1,58 @@
+import { DEFAULT_POLLING_SOURCE_TIMER_INTERVAL } from "@pipedream/platform";
+import evernote from "../../evernote.app.mjs";
+
+export default {
+  props: {
+    evernote,
+    db: "$.service.db",
+    timer: {
+      type: "$.interface.timer",
+      default: {
+        intervalSeconds: DEFAULT_POLLING_SOURCE_TIMER_INTERVAL,
+      },
+    },
+  },
+  methods: {
+    _getLastData() {
+      return this.db.get("lastData") || this.getDefaultData();
+    },
+    _setLastData(lastData) {
+      this.db.set("lastData", lastData);
+    },
+    getDefaultData() {
+      return 0;
+    },
+    checkBreak() {
+      return false;
+    },
+    prepareResults(responseArray) {
+      return responseArray;
+    },
+    async emitEvent(maxResults = false) {
+      const lastData = this._getLastData();
+      let responseArray = await this.getData(lastData);
+
+      responseArray = this.prepareResults(responseArray, lastData, maxResults);
+
+      if (responseArray.length) {
+        this._setLastData(this.lastData(responseArray));
+      }
+
+      for (const item of responseArray) {
+        this.$emit(item, {
+          id: item.guid,
+          summary: this.getSummary(item),
+          ts: Date.parse(item.created || item.serviceCreated || new Date()),
+        });
+      }
+    },
+  },
+  hooks: {
+    async deploy() {
+      await this.emitEvent(25);
+    },
+  },
+  async run() {
+    await this.emitEvent();
+  },
+};
diff --git a/components/evernote/sources/new-note/new-note.mjs b/components/evernote/sources/new-note/new-note.mjs
new file mode 100644
index 0000000000000..5d943271758f2
--- /dev/null
+++ b/components/evernote/sources/new-note/new-note.mjs
@@ -0,0 +1,51 @@
+import { LIMIT } from "../../common/constants.mjs";
+import common from "../common/base.mjs";
+import sampleEmit from "./test-event.mjs";
+
+export default {
+  ...common,
+  key: "evernote-new-note",
+  name: "New Note Created",
+  description: "Emit new event when a note is created in Evernote.",
+  version: "0.0.1",
+  type: "source",
+  dedupe: "unique",
+  methods: {
+    ...common.methods,
+    getSummary(item) {
+      return `New note created: ${item.title || item.guid}`;
+    },
+    async getData(lastData) {
+      const responseArray = [];
+      let hasMore = true;
+      let page = 0;
+
+      do {
+        const { notes } = await this.evernote.listNotes({
+          offset: LIMIT * page,
+          maxNotes: LIMIT,
+        });
+        for (const note of notes) {
+          if (note.created <= lastData) break;
+          responseArray.push(note);
+        }
+        page++;
+        hasMore = notes.length;
+      } while (hasMore);
+
+      return responseArray;
+    },
+    prepareResults(results, maxResults) {
+      if (results.length) {
+        if (maxResults && (results.length > maxResults)) {
+          results.length = maxResults;
+        }
+      }
+      return results.reverse();
+    },
+    lastData(results) {
+      return results.map((item) => item.guid);
+    },
+  },
+  sampleEmit,
+};
diff --git a/components/evernote/sources/new-note/test-event.mjs b/components/evernote/sources/new-note/test-event.mjs
new file mode 100644
index 0000000000000..6c4f7457f87bf
--- /dev/null
+++ b/components/evernote/sources/new-note/test-event.mjs
@@ -0,0 +1,46 @@
+export default {
+  "course_title": "Class title",
+  "course_subject": "Course subject",
+  "course_level": "Course level",
+  "school_id": 16385,
+  "start_date": "2024-10-21",
+  "end_date": "2024-10-28",
+  "recurrence": "weekly",
+  "payment_frequency": "free",
+  "id": 153319,
+  "photo": null,
+  "payment_fee": "0",
+  "course_description": "",
+  "course_full_title": "Class title [Online Lesson]",
+  "created": "2024-10-17 18:20:13",
+  "modified": "2024-10-17 18:20:15",
+  "color": "color1",
+  "course_started": false,
+  "course_ended": false,
+  "course_status": 1,
+  "num_enrolled_students": 0,
+  "teachers": "66792",
+  "classrooms": "39627",
+  "billing_month_start_date": "2024-10-01",
+  "billing_month_end_date": "2024-10-01",
+  "custom_payments": null,
+  "archived": false,
+  "awarding_body": "",
+  "course_code": "",
+  "book_code": "",
+  "total_lessons": 2,
+  "total_lessons_hrs": "02:00",
+  "skype_meeting_link": "",
+  "year": null,
+  "credit_hours": "",
+  "class_type": "",
+  "is_ended": null,
+  "teacher_hourly_fees": null,
+  "is_booking_class": false,
+  "subscription_plan_id": null,
+  "is_stripe_sub_allow": 0,
+  "created_by": 66114,
+  "modified_by": 66114,
+  "exception_dates": null,
+  "removed_exception_dates": null
+}
\ No newline at end of file
diff --git a/components/evernote/sources/new-notebook/new-notebook.mjs b/components/evernote/sources/new-notebook/new-notebook.mjs
new file mode 100644
index 0000000000000..d8e525ba9c820
--- /dev/null
+++ b/components/evernote/sources/new-notebook/new-notebook.mjs
@@ -0,0 +1,37 @@
+import common from "../common/base.mjs";
+import sampleEmit from "./test-event.mjs";
+
+export default {
+  ...common,
+  key: "evernote-new-notebook",
+  name: "New Notebook Created",
+  description: "Emit new event when a notebook is created in Evernote.",
+  version: "0.0.1",
+  type: "source",
+  dedupe: "unique",
+  methods: {
+    ...common.methods,
+    getSummary(item) {
+      return `New notebook created: ${item.name}`;
+    },
+    getData() {
+      return this.evernote.listNotebooks();
+    },
+    prepareResults(results, lastData, maxResults) {
+      results = results
+        .filter((item) => item.serviceCreated > lastData)
+        .sort((a, b) => b.serviceCreated - a.serviceCreated);
+
+      if (results.length) {
+        if (maxResults && (results.length > maxResults)) {
+          results.length = maxResults;
+        }
+      }
+      return results.reverse();
+    },
+    lastData(results) {
+      return results[results.length - 1].serviceCreated;
+    },
+  },
+  sampleEmit,
+};
diff --git a/components/evernote/sources/new-notebook/test-event.mjs b/components/evernote/sources/new-notebook/test-event.mjs
new file mode 100644
index 0000000000000..7886065264f26
--- /dev/null
+++ b/components/evernote/sources/new-notebook/test-event.mjs
@@ -0,0 +1,45 @@
+export default {
+  guid: 'c0c123ca-4ec7-08a4-b6bb-9a68ce4c321a',
+  name: 'Notebook Name',
+  updateSequenceNum: 11,
+  defaultNotebook: false,
+  serviceCreated: 1742321666000,
+  serviceUpdated: 1742321666000,
+  publishing: null,
+  published: null,
+  stack: null,
+  sharedNotebookIds: null,
+  sharedNotebooks: null,
+  businessNotebook: null,
+  contact: null,
+  restrictions: {
+    noReadNotes: null,
+    noCreateNotes: null,
+    noUpdateNotes: null,
+    noExpungeNotes: null,
+    noShareNotes: null,
+    noEmailNotes: null,
+    noSendMessageToRecipients: null,
+    noUpdateNotebook: null,
+    noExpungeNotebook: null,
+    noSetDefaultNotebook: null,
+    noSetNotebookStack: null,
+    noPublishToPublic: null,
+    noPublishToBusinessLibrary: true,
+    noCreateTags: null,
+    noUpdateTags: null,
+    noExpungeTags: null,
+    noSetParentTag: null,
+    noCreateSharedNotebooks: null,
+    updateWhichSharedNotebookRestrictions: null,
+    expungeWhichSharedNotebookRestrictions: null,
+    noShareNotesWithBusiness: true,
+    noRenameNotebook: null
+  },
+  recipientSettings: {
+    reminderNotifyEmail: true,
+    reminderNotifyInApp: true,
+    inMyList: true,
+    stack: null
+  }
+}
\ No newline at end of file
diff --git a/components/evernote/sources/new-tag/new-tag.mjs b/components/evernote/sources/new-tag/new-tag.mjs
new file mode 100644
index 0000000000000..34e5b11d44ea1
--- /dev/null
+++ b/components/evernote/sources/new-tag/new-tag.mjs
@@ -0,0 +1,38 @@
+import common from "../common/base.mjs";
+import sampleEmit from "./test-event.mjs";
+
+export default {
+  ...common,
+  key: "evernote-new-tag",
+  name: "New Tag Created",
+  description: "Emit new event when a new tag is created in Evernote. Useful for tracking new organizational labels.",
+  version: "0.0.1",
+  type: "source",
+  dedupe: "unique",
+  methods: {
+    ...common.methods,
+    getSummary(item) {
+      return `New tag created: ${item.name}`;
+    },
+    getData() {
+      return this.evernote.listTags();
+    },
+    getDefaultData() {
+      return [];
+    },
+    prepareResults(results, lastData, maxResults) {
+      results = results.filter((item) => !lastData.includes(item.guid));
+
+      if (results.length) {
+        if (maxResults && (results.length > maxResults)) {
+          results.length = maxResults;
+        }
+      }
+      return results;
+    },
+    lastData(results) {
+      return results[results.length - 1].created;
+    },
+  },
+  sampleEmit,
+};
diff --git a/components/evernote/sources/new-tag/test-event.mjs b/components/evernote/sources/new-tag/test-event.mjs
new file mode 100644
index 0000000000000..84df8cc815506
--- /dev/null
+++ b/components/evernote/sources/new-tag/test-event.mjs
@@ -0,0 +1,6 @@
+export default {
+  "guid": "c6a42313-443c-907d-975c-444323291f0a",
+  "name": "Tag Name",
+  "parentGuid": null,
+  "updateSequenceNum": 43
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 94cfeaf239cd4..833950bff214b 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4166,7 +4166,11 @@ importers:
         specifier: ^3.0.3
         version: 3.0.3
 
-  components/evernote: {}
+  components/evernote:
+    dependencies:
+      evernote:
+        specifier: ^2.0.5
+        version: 2.0.5
 
   components/eversign:
     dependencies:
@@ -22353,6 +22357,9 @@ packages:
     resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==}
     engines: {node: '>=0.8.x'}
 
+  evernote@2.0.5:
+    resolution: {integrity: sha512-DuOk3t9HKwkxZBaZU1Mz8vmZSEM2LVI3eLdML90Is3+8WlPwpYcLeo4z+eklT8NUGD3GA6oOnlP+6e0z0rDX1Q==}
+
   execa@1.0.0:
     resolution: {integrity: sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==}
     engines: {node: '>=6'}
@@ -25641,6 +25648,9 @@ packages:
   oauth4webapi@3.1.4:
     resolution: {integrity: sha512-eVfN3nZNbok2s/ROifO0UAc5G8nRoLSbrcKJ09OqmucgnhXEfdIQOR4gq1eJH1rN3gV7rNw62bDEgftsgFtBEg==}
 
+  oauth@0.9.15:
+    resolution: {integrity: sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA==}
+
   object-assign@4.1.1:
     resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
     engines: {node: '>=0.10.0'}
@@ -39485,6 +39495,10 @@ snapshots:
 
   events@3.3.0: {}
 
+  evernote@2.0.5:
+    dependencies:
+      oauth: 0.9.15
+
   execa@1.0.0:
     dependencies:
       cross-spawn: 6.0.6
@@ -44047,6 +44061,8 @@ snapshots:
 
   oauth4webapi@3.1.4: {}
 
+  oauth@0.9.15: {}
+
   object-assign@4.1.1: {}
 
   object-hash@3.0.0: {}