Package: orgassist
What is it?==========="orgassist" is a bot - an assistant who handles your appointments, tasks andnote-taking when you're away from your computer. It can integrate multiplesources of notifications and use multiple different communication interfaces -by default XMPP.Currently working functions include:- Bidirectional communication over XMPP.- Notifying in advance about planned appointments.- Generating and sending an agenda for the current day.- Reading events from org-mode tree (schedules, deadlines, appointments)- Reading events from Exchange calendar.- Taking notes and storing in an org-mode inbox file.It's architected to be easily expandable, currently planned features:- other bot-interfaces: irc interface, email interface, web interface,android push-notification interface,- caldav integration,- rescheduling tasks and snoozing notifications using remote commands,- intelligent capturing which handles tags and dates,- changing task state,- incremental search,- etc.But why?===========* Do you love your org-mode, but still struggle to get the agenda ornotifications on your two mobile devices?* You have two org-mode trees - one for work, one for private planning?* And appointments in Outlook or Google Calendar?* And sticky notes or notepad to gather notes on the run?* Or maybe a mobile app to gather notes (orgzly?)* Taking notes on the run requires you to later integrate them?* You treat your org-mode as private notes and dislike keeping them decryptedeverywhere, but at the same time would like to use it remotely?I had most of those problems and decided this would be an elegant way to solveall of them without dropping org-mode or using cloud-sync solutions.Plugins===========OrgAssist is split into plugins with a well-defined API.Calendar-----------"Core" plugin - required by org and exchange plugin.It manages a list of dated events with a state (TODO, DONE, etc.) in a commonformat. For this events, it generates notifications and agenda views.Planned: Incremental search over events.Org-----------Reads org files and feeds events into the calendar. Handles command to takenotes.Planned: changing state of tasks, rescheduling, smarter capture.Exchange-----------Fills calendar with events from your company's Exchange. Detects those set byyou, and with your required and optional attendance.Planned: detecting new events.Planned: Shell-----------Execute a configured shell command on request. Enable/disable alarms, controlmusic, etc.Setup===========Tested with Python 3.5 and 3.6.1. pip3 install orgassist2. assist.py --generate-config3. emacs/vim ~/.org/orgassist.yml - configure XMPP accounts, boss JID, org-modedirectory, etc. See comments in the config file for ideas.3. Run bot: $ assist.py --config ~/.org/orgassist.ymlDeveloping own plugins==========See `example_plugin.py` for an example and showcase of the API. You can developplugins using the PyPI version of orgassist by specifying config parameters`plugins_path` and `plugins`.Architecture-------Single orgassist instance can have multiple interfaces (xmpp, irc) with multipleassistants connected to them. Each assistant handles a single "boss" -identified by JID or irc nick/realname. Each assistant can have differentplugins enabled, with different configuration and state./- Calendar PluginInterfaces  --> | Assistant 1 (Boss JID 1) -+(xmpp, irc)     | state, config              \- Org plugin||                            /- Calendar plugin| Assistant 2 (JID 2) ------+|                            \- Org plugin, OWA Plugin| Assistant 3 ---> etc.License=======License: MIT License.Author: Tomasz Fortuna, 2019.Contact: bla@thera.beOrgassist includes an external MIT-licensed module "orgnode" by Albin Stjerna,Takafumi Arakaki, and Charles Cave (https://github.com/albins/orgnode.git).Edited by myself to cleanup API and fix some problems.