MIT License

项目介绍

Vaccarini-Lorenzo/MagicCalendar 是一个托管在 GitHub 上的开源项目,主要使用 TypeScript 编写,采用 MIT License 许可证,目前获得 108 个 Star、0 次 Fork。

仓库全名
Vaccarini-Lorenzo/MagicCalendar
开源许可证
MIT License
Star 数
108
未关闭 Issue
8

README 摘要

MagicCalendar AI-Powered Obsidian plugin that leverages natural language processing techniques to find calendar events in Markdown notes, seamlessly synchronizing them with a calendar of choice. The plugin is still in beta and at the moment the supported calendars are: Apple Calendar Google Calendar Functionalities NLP calendar events recognition Just write your events and seamlessly synchronize them with your…

完整内容见 GitHub 原始 README 或本页 。

常见问题

MagicCalendar 用什么语言开发?

主要使用 TypeScript 编写,采用 MIT License 许可证,目前有 108 个 Star。

MagicCalendar 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 MagicCalendar 的源码?

可以直接克隆仓库:git clone https://github.com/Vaccarini-Lorenzo/MagicCalendar.git,默认分支为 main;安装与运行步骤见仓库 README。

MagicCalendar 最近还在维护吗?

仓库最近一次更新为 2023年11月19日,当前有 8 个未关闭 Issue;Star 数为 108,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

An obsidian plugin that exploit a natural language processing engine to find potential events and sync them with iCalendar

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
111
价值分
64
活跃状态
活跃

语言占比

CSS
JavaScript
TypeScript

Release

README

MagicCalendar

AI-Powered Obsidian plugin that leverages natural language processing techniques to find calendar events in Markdown notes, seamlessly synchronizing them with a calendar of choice.
The plugin is still in beta and at the moment the supported calendars are:

  • Apple Calendar
  • Google Calendar

Functionalities

NLP calendar events recognition

Just write your events and seamlessly synchronize them with your calendar

It might happen that some patterns are incorrectly recognized as calendar events. Just ban them!

On the other hand, it could be possible that some patterns are not recognized. You can use your custom delimitators to define an event:

Inline event view

Embed your events in your notes with a simple syntax.
The Inline event view is two-way synchronized (at the moment supported only by Apple Calendar. Google Calendar push notification need an HTTPS server).

Getting started

Automatic installation

Browse the community plugins and look for “MagicCalendar”.

Manual installation

  • 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 log-in just click on the calendar ribbon icon to select your calendar provider. Unfortunately, Apple doesn’t provide an OAuth2 authentication and 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. At the moment, the application is being reviewed by Google Trust & Safety team, therefore a security page will be presented.

Enjoy

That’s it. Just write an event and the plugin will try its best to identify it.
To embed your calendar in your notes just use the following syntax in a code block:
<magic> from:YYYY/MM/DD to:YYYY/MM/DD

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.6

  • Major project refactor
  • Google Calendar integration
  • Inline event view features development

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

评论

暂无评论