No description
Find a file
2023-10-29 23:26:19 +01:00
.github/workflows Add zip in release bundle 2023-08-19 02:09:33 +02:00
materials Project ID refactor 2023-10-29 23:26:19 +01:00
src Project ID refactor 2023-10-29 23:26:19 +01:00
.base64Media.json custom pattern ban 2023-10-29 23:07:31 +01:00
.editorconfig initial commit 2023-07-31 17:29:53 +02:00
.eslintignore initial commit 2023-07-31 17:29:53 +02:00
.eslintrc Linting 2023-08-25 01:33:09 +02:00
.gitignore Project ID refactor 2023-10-28 22:22:09 +02:00
.nosync Implement date highlighting 2023-08-03 21:02:42 +02:00
.noun_patterns.txt Improve NLP module: Implement better adjacent attribute recognition 2023-08-23 17:21:55 +02:00
.npmrc initial commit 2023-07-31 17:29:53 +02:00
.proper_name_patterns.txt Improve NLP module: Fix noun/proper name overlap 2023-08-23 19:38:14 +02:00
esbuild.config.mjs Fix google date timezone issue 2023-09-05 00:56:46 +02:00
LICENSE.md Update release workflow and manifest. Add license 2023-08-19 00:42:47 +02:00
manifest.json Project ID refactor 2023-10-28 22:22:09 +02:00
package-lock.json Implement oauth cred external service 2023-10-28 20:40:40 +02:00
package.json Project ID refactor 2023-10-28 22:22:09 +02:00
README.md Project ID refactor 2023-10-29 23:26:19 +01:00
styles.css Project ID refactor 2023-10-29 23:26:19 +01:00
tsconfig.json Continue implementing drag and drop 2023-09-12 00:01:09 +02:00
version-bump.mjs initial commit 2023-07-31 17:29:53 +02:00
versions.json initial commit 2023-07-31 17:29:53 +02:00

MagicCalendar

This Obsidian plugin allows to synchronize your calendar of choice with Obsidian. The plugin is still in beta and at the moment the supported calendars are:

  • Apple Calendar
  • Google Calendar

Getting started

Installation

Currently, this plugin is not registered as a standard community plugin for downloading or updating within Obsidian.
To install it:

  • Check the latest release
  • Download magic-calendar.zip
  • Unzip the file and move the magic-calendar folder into your Obsidian plugin folder
  • Enable the plugin from your Obsidian settings.

Log-in

To interact with Apple Calendar you'll need to log-in into your iCloud account. Your credentials will be stored exclusively in your local device (encrypted).
Check the How it works section for more informations.
Google, on the other hand, supports OAuth2 authentication. Just click on the calendar ribbon icon to select your calendar provider and log-in.

Just sync it

That's it. Just write an event and the plugin will try its best to identify it.

How it works

NLP module

The plugin works on top of a NLP library (NLP wink).
First, the sentence is split into tokens, entities and Part-of-Speeches. Once the sentence has been broken down into understandable components, it's time to filter them following common patterns that include dates, times, durations, event-related nouns and purposes. In order to keep iCalSync lightweight, the number of patterns is not huge, nevertheless the recognition process scores high levels of precision.

iCloud module

The communication with iCloud wouldn't be possible without the help of iCloud.js. The library has been opportunely modified to support POST requests and bypass CORS policies.
Since Apple doesn't support OAuth, it's necessary to login with email and password. These inserted credentials are stored exclusively in your local device (AES encrypted) in order to avoid a manual login everytime a token refresh is needed. The encryption key is randomly generated when the plugin is installed. It can be manually changed in the settings section (not recommended).

What's new?

v.1.1.3

  • Inline event view beta
  • Bugfix: non-editable widget bug
  • NPL module improvements:
    1. Fine-tuning

v.1.1.2

  • Implement internal counter to keep track of the number of cumulative synchronizations
  • Community review adjustments

v.1.1.1

  • Bugfix: date parsing

v.1.1.0

  • No need for a CORS proxy anymore
  • NPL module improvements:
    1. Entity-related attributes identification
    2. Event purpose recognition
    3. Bugfix: entity overlap

Currently in development phase

  • Event inline view: From version v.1.2.0 will be possible to embed calendar events in your notes. The user will be able to interact with the events directly and automatically synchronize the event with their calendar

  • Google calendar integration: Project refactor to support multiple calendars