Exporting events to ics file possible?


(Jeremy Harrison) #1

Hi all,

I’m new here and have questions :slight_smile:

But first some background:

Expectation setting:

Not a programmer but can fiddle with scripts.

High level(ish) of what I think I want and why I want it:

Every time I record some chunk of data that gets thrown at me from life, I often find that it contains information that needs to be stored in different applications.

For example: Recent visit to the Eye Hospital with my daughter results in stuff like referral letter, results of examination, date of next appointment at the clinic and a task to make an appointment with the local eye doctor.

So, I ask myself, do I try and store this in Devonthink, Omnifocus, or Mac OS Calendar?

  • Devonthink I love for the referral letter, and results letter and can tag them appropriately

  • Omnifocus can take the task to make the new appointment

  • The next Eye Hospital appointment can be entered into Calendar

Now a couple of things that I’m not happy with. I don’t find the calendar app 100% safe for important appointments because the calendar is shared and it isn’t easy to track who has changed what, especially if it is inadvertent. So I would always like to have the important appointments stored somewhere as a master copy.

Also, and perhaps most importantly, I don’t get a visual picture of how all the bits of information are connected.

Hence Tinderbox :slight_smile:

I have been playing around with Tinderbox, watched some of the excellent videos and looked through the forum. This has helped me begin to connect my information visually with the map view. Have used task and event prototypes, used agents to scan and report appointments which is all lovely. Nothing is finished yet (is it ever) but I’m making progress.

Here is a work in progress version the map which helps me see the big picture of my daughter’s treatment:

A few notes/observations:

Results letters are stored in Devonthink but are linked to in the relevant Tinderbox note which is great.

Tasks I can make do with copying manually to Omnifocus where necessary or working directly out of Tinderbox (I’ve read the thread about using Tinderbox with external task planners).

The appointments though are the weak point. I have to make sure I manually duplicate (aargh!) them in Calendar (see safety concern above) to remind me when they are due and to help plan out the more short term stuff that never makes it into Tinderbox.

I don’t have Tinderbox with me all the time but the Calendar and Omnifocus I do.

Now, what, after all that preamble am I asking? :slight_smile:

I was wondering if anyone has managed to, say, have an agent running that collects all the events in a tbx file and somehow exports them to an ics file that can be subscribed to in Calendar apps?

This way, I would have one place to enter the important stuff and I can even lock the event in Tinderbox which makes me feel all warm and cosy.

Any ideas? Any comments on the idea, however critical would be appreciated.

Thanks in advance,

Jeremy


(Mark Anderson) #2

Is there a built-in template for this? No?

Could user template(s) generate a text ‘.ics’ file? almost certainly, based on looking at the spec: https://icalendar.org/RFC-Specifications/iCalendar-RFC-5545/

I’m pushing a deadline so can’t investigate further, but it looks doable. An agent could find all (current?) future events. he child aliases could then be exported as ICS files. You might need some post processing as there is no method for (HTML) export to export only a selection of notes; you either export the whole doc or one selected note at a time. If the ICS is the only (HTML) export needed, then you just configure the doc so only the alias children of the agent are exported, each as a ‘.ics’ file. Or export all the event data as one text file and then post-process with a script environment of your choice into discrete iCS files. I’m making an assumption (no time for deep reading) that an ics file contains only one event. If it can hold multiples, then the process is easier - just export the agent as a single file using appropriate templates to process all the child aliases into the single ICS payload.

Sorry I’ve not time to dig further on this but I hope it helps you (and others here) to get traction on the project.


(Paul Walters) #3

Writing an .ics exporter is doable – I’ve done it a few times out of curiosity – as @mwra says it’s just a text file. However you cannot “subscribe” to an .ics file in Calendar. It is for data transport from application A to application B. Once the .ics is imported to Calendar (or other app) it is not monitored by Calendar for changes. You have to reexport the events and then import them again (deleting the old event to clean up the calendar).

BUT if the real issue is you don’t trust whoever you share your calendar with, why write software to protect yourself? I don’t mean this critically, but it’s really not the highest use of Tinderbox, in my opinion.

Either (a) don’t share the calendar, (b) take your calendars out of iCloud and make them all local, or © create a Google account just for yourself and use the calendar there for your private appointments? (You can also sync a Google calendar to Calendar, but if you don’t trust whoever is looking at your Calendar, that’s problem not a good thing.)


(Jeremy Harrison) #4

Thanks Mark and Paul for taking the time to read my longish post.

Seems nobody has done this so that’s already a result in the sense it’s better knowing where one stands than not :slight_smile:

Regarding ics files, I believe they can contain more than one event but don’t have to. I need to research this further.

I read a short post here ( https://stackoverflow.com/questions/1156140/how-to-create-an-icalendar-feed-that-people-can-subscribe-to ) that seemed to suggest it is fairly simple to host an ics file on a web server and then get Calendar to subscribe to it. Again, having never done this, I’m still researching. It may well turn out that the technical solution is beyond my capabilitiy anyway :slight_smile:

And as Paul points out, I have to ask myself: is there value in doing it?

In an ideal world (for me), I would have a Calendar that if I clicked on a date, I would then be one click away from switching to map view in Tinderbox with the cursor on the linked note.

As a stepping stone, I still like the idea that Tinderbox would be the definitive repository for important dates and everything that is connected with that date. If I can at least semi automate the data transfer to the Calendar it would be good.

Regarding trusting people I share the calendar with, maybe I gave the wrong impression in my original post. What I was trying to say was that electronic calendars can be a bit fragile when shared with multiple devices. I’ve had sync problems in the past that deleted events and the trouble is, there is no easy undo button that I’m aware of. Pity that each change to a calendar isn’t like a commit to git or the like so you could easily see the change trail :slight_smile:

I’ll look a bit deeper and see what I come up with and post back if I have some success.


(Mark Anderson) #5

In which case, you’d want to embed a Tinderbox URL into the event data, though note the latter feature is itself still slightly a work-in-progress - see the link for more info.


(Paul Walters) #6

Why not forget calendars, rolling your own ICS exports, etc., then and just use Tinderbox for all your plans and notes?


(Jeremy Harrison) #7

Portability mainly. I have a phone (sometimes an iPad) with me when I’m out and about. It’s also important that the family can see the family calendar and they only have phones.

I see Tinderbox as mostly being used at home with a big screen. Make sense?


(Paul Walters) #8

Of course it makes sense. :smile:

If your experiments with ICS and your personal calendar management see light of day I’m sure folks here will like to see the results.