Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sync between org tasks and iOS calendar #2

Open
rkrug opened this issue Jan 26, 2017 · 15 comments
Open

Add sync between org tasks and iOS calendar #2

rkrug opened this issue Jan 26, 2017 · 15 comments

Comments

@rkrug
Copy link

rkrug commented Jan 26, 2017

I don't know if this is possible due to sandboxing et al, but would it be possible to add a sync between org tasks and the iOS calendar? This would be really great.

@guivho
Copy link

guivho commented Jan 26, 2017

That would be supercalifragilisticexpialidocious :)

@mgmart
Copy link
Member

mgmart commented Jan 26, 2017

Answer to that is: yes, it's possible. Sandboxing is no issue. User has to allow MobileOrg access to Calendar at that's it.

But I assume there will be no one taking over the task to describe the requirement in detail -- not to talk about implementation -- because of it's complexity(*).

Maybe we could step back and try to describe the requirement in a finer grained form. Something like:

  • I would like to access Org tasks in a iOS Reminder list
  • Scheduled Org items should be accessible in one iOS calendar

Those requirements could be implemented in a way or another. We could foresee them in the software architecture. But I'm not sure if that would be something you need or would use.

(*) Some thoughts on the complexity:

  • User could have more than one calendar
  • Many people could have access to the calendar
  • A calendar is nowadays almost always on a server
  • How to handle sync conflicts
  • What is a task and what is a calendar entry?
  • ...

@rkrug
Copy link
Author

rkrug commented Jan 26, 2017

True - OK.

iOS Reminder list would be a really good start, especially for me as I not scheduling events in org but rather reminders - so a good idea!

Also, it would be perfectly fine if there would be one org calendar in iOS as, as you say, Users usually have more than one calendar.

User could have more than one calendar

In org, a property could be used to specify the calendar, e.g. SYNC_NAME, which could be used for reminders as the name of the list, for calendar entries as the calendar name, ...

How to handle sync conflicts

Could one use timestamps of the items? Or use some default action, as different workflows would require different sync strategies. If I do my scheduling in org, I probably always want to overwrite the iOS item? Or vice versa? OR Always Ask? These could be different default actions.

What is a task and what is a calendar entry?

Could also be handled by a property, e.g. SYNC_TYPE

No comments on the other thoughts

@d12frosted
Copy link
Member

d12frosted commented Jan 26, 2017

Having Calendar support would be very useful. Obviously 😸

This topic was raised in Incubator on Dropbox Paper but we didn't agree on anything yet.

I see two approaches of adding Calendar support. First one is implementing full synchronisation. Which means that we modify user files and we modify calendar. In my opinion, this is not the task for MobileOrg, because having synchronisation happening only on your mobile phone achieves nothing. We are not working on our phones / tablets (some people may disagree but I suspect they don't use org-mode). Ideally such synchronisation must be implemented as a service outside of the MobileOrg scope. For me this task looks like a very hard one. And I don't see much advantage over next solution.

Second solution is much simpler (at least how I see it). MobileOrg just shows information from Calendar. For example, in the design document someone (I suspect it was Mario) shared very nice mockup of MobileOrg agenda (not related to user defined agendas in org-mode) which contains timeline. This is a place where we can show information from calendar. I am not sure about technical details of this task, but I suspect that we can ask Calendar for a list of all items (using predicates search for a date range). And that's everything I need to be happy 😸

@d12frosted
Copy link
Member

BTW, this is exactly how OmniFocus uses calendar - it just shows you the list of items from your calendar. You can't edit them, you just see them. And you can even enable notifications for them if you wish.

As per synchronisation of calendars - I tried using sync packages for calendars and it is always leads to sync problems. I don't know about your workflow, so I just describe mine - in most cases I don't own events in my calendar. Someone (my boss, my PM, my wife(!)) just creates an event and then can update it. I receive email. But I never can rely on the info in my calendar sync files, because something goes wrong so often (especially if use use more than one calendar - work and personal at least) that you find yourself in a situation when you just ignore what org-mode says about your calendar events and you just check in your calendar (desktop app or web app).

@mgmart
Copy link
Member

mgmart commented Jan 27, 2017

@d12frosted

This is a place where we can show information from calendar.

This could be a requirement on it's own. But as long as it is hidden in the discussion it would not make it into the document. Why not make it a discussion on it's own? In the discussion we could refine the wording until it's ready to be integrated as a requirement in the specification.

@rkrug

iOS Reminder list would be a really good start, ...

Implementation steps would follow after we have managed the requirements 😉. Or would you see that as a requirement on it's own?

What I understood so far is:

  • MobileOrg should synchronise
    • Reminders (tasks)
    • Calendar entries (scheduled items)
  • Synch-Configuration should be done in Org mode on a per item basis
    • which calendar / list to use, or
    • to determine between calendar entry an reminder list entry
  • There should be a conflict resolution in MobileOrg if user does not want to configure a default winner.

@d12frosted
Copy link
Member

@mgmart to be honest, I don't understand what you mean 😸

@mgmart
Copy link
Member

mgmart commented Jan 27, 2017

I want you to take the effort to describe a new requirement 😄

"MobileOrg should display information from iOS Calendar and iOS Reminders"

@d12frosted
Copy link
Member

👍 will do!

@rkrug
Copy link
Author

rkrug commented Jan 27, 2017

@mgmart Yes - that sounds good.

MobileOrg should synchronise

  • Reminders (tasks)
  • Calendar entries (scheduled items)

Yes.

Both in PROPERTY defined calendars / reminder lists

Synch-Configuration should be done in Org mode on a per item basis

  • which calendar / list to use, or
  • to determine between calendar entry an reminder list entry

Yes. But to make things easier, it would be sufficient for the beginning to sync only items created in org / mobileOrg - i.e. give the calendar entries when they come from org a tag (entry in comment?) so that only the calendar entries with the tag / comment are considered for syncing. This would be similar to have one (several?) dedicated calendars for orgMobile sync.

There should be a conflict resolution in MobileOrg if user does not want to configure a default winner.

Exactly.

@mgmart
Copy link
Member

mgmart commented Jan 31, 2017

@rkrug, one final thought before I start to incorporate that into the requirements

There is already a bunch of cal-sync possibilities available for org-mode. Which leads to two questions:

  • What will be the advantage of doing the sync on iOS instead of the desktop machine?
  • How should MobileOrg handle a potential established sync on the desktop machine?

@rkrug
Copy link
Author

rkrug commented Jan 31, 2017

There might be options to sync an org calendar to a Calendar.app calendar - but I don't think there are any fore reminders / tasks.

The advantage would be simplicity. Synching via MobileOrg would require no additional setup and just by selecting an option in MobileOrg would be so much easier. (by the way - one option to enable task / reminder sync an a second one to enable calendar sync would be perfect - see existing desktop calendar sync below).

potential established sync on desktop: I guess the only way of detecting these (where they would matter) would be by a large number of conflicts? I guess a warning in the tenor of "It seems that you have enabled some kind of =calendar sync on your desktop machine. This WILL lead to conflicts and unforeseeable problems. Please disable either the desktop sync or the MobileOrg calendar sync." with an option of "Do not show again". Otherwise, It is the users responsibility to only run one sync process - whatever you are synching.

@mgmart
Copy link
Member

mgmart commented Jan 31, 2017

Ok. Will incorporate the requirement with a focus on reminders. This might take a while. But as long as this issue is open it will not be forgotten 😄

@rkrug
Copy link
Author

rkrug commented Jan 31, 2017

Thanks!

@vonj
Copy link

vonj commented Mar 1, 2018

I am on a quest to to GTD-ify and my first try is going to be to it with orgmode, since I use emacs so much anyway. However the rest of the world is not ready for orgmode so syncing iCloud and/or iCalendar on private servers calendars with my own phone and those of family members', that would be swell. Ping me if I can help somehow - I once wrote a program which pulled calendar entries from Outlook (C) and put them in an iCal file (Python).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants