The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   iCal Sync (http://forums.omnigroup.com/forumdisplay.php?f=54)
-   -   sync to iCal as events for due dates? (http://forums.omnigroup.com/showthread.php?t=11331)

tah 2009-02-15 02:24 AM

sync to iCal as events for due dates?
 
I tried the iCal syncing, and was totally baffled that it seems to only sync with the task list. I don't get it, why would I want to sync with the task list, when its task listing is inferior to Omnifocus task list?

What I really need (desperately) is for iCal to provide what OF doesn't: to look at a "big picture" timeline/calender view of the tasks with due dates, so I can plan for critical due dates and get alarms to go with them. How could this fundamental issue be missing?

OF is good for organizing tasks without time limits, but without real links to iCal or omniplan I'm very frustrated with how to translate tasks into planning my time, organizing my week based on task due dates, or figuring out when I can tell someone I can fit-in to my schedule of tasks, their project or tasks.

Greg Jones 2009-02-15 02:59 AM

This has been discussed at great length among the users and with input from Omni in [url=http://forums.omnigroup.com/showthread.php?t=2533&page=1]this[/url] thread. In particular, Brian's post #49 may be of interest. If you must create events in iCal from actions synced from OmniFocus, you can drag them from iCal's task list into the calendar.

tah 2009-02-15 10:40 AM

Yes I read lots of threads that were requesting this capability, but no real solution yet, and no commitment to change things either.

Omnifocus still seems like it is geared towards the corporate employee with limited responsibility, and a few home to-dos. Those of us who do consulting work for lots of clients (for example), must have some way to visualize the tasks in a time view, to be able to even tell someone when you can get their work done.

While most of the time (85%), i want to work in a list view - but that 15% of seeing a time view is critical. Dragging tasks from the huge unorganized list of 300 tasks that omnifocus creates in iCal, isn't a solution.

Greg Jones 2009-02-15 04:43 PM

[QUOTE=tah;55222]Omnifocus still seems like it is geared towards the corporate employee with limited responsibility, and a few home to-dos.[/QUOTE]

OmniFocus is geared to those who, more or less, follow the GTD methodology of task management. If I understand your needs correctly, what you are wanting to do is more of a time management approach, which is a pretty big departure from the GTD approach to task management.

As a side note, there are plenty of people using OmniFocus that have very demanding schedules, including consulting work, are very happy organizing their tasks with OmniFocus. Personally, I'd be hopelessly lost if I had to go back to compartmentalizing my tasks into time buckets for days, weeks, or months in advance.

figman 2009-02-16 06:40 AM

I don't agree...I use GTD, but have a need to see tasks on the calendar as events as well. There are many people who prefer this...all we want is the option not for it to be a "standard". In the meantime...I am waiting anxiously for this program [url]http://www.busymac.com/busycal.html[/url] I do think this and Omni may be the best bet for getting "this" done.

Lucas 2009-02-16 07:15 AM

If you had a way that you imagined visualizing your tasks you might put together a dashboard widget that does it, like Kurt did with his "where should I focus" widget.

I imagine that a widget that gives a kind of time investment visualization is not going to end up looking like a calendar with tasks fit into the boxes, for the reason that had been pointed out on the other thread - there is an indeterminacy about where you put any individual task. I was thinking that a way that it could be visualized is to show a graph of the rate of adding and closing tasks over the past and near future; a chart of the rate that tasks would have to be completed to meet all future deadlines; something like that.

Greg Jones 2009-02-16 07:30 AM

@figman, I respectfully disagree that you are following GTD if you are putting all your tasks on a calendar that do not need to be done at a specific time. Allen is pretty clear on what he feels should appear on action lists and what should appear on a calendar. If all actions are going on a calendar, then all that is left is a series of big daily to-do lists and the beauty of contexts and everything GTD is gone. Now clearly there are some tasks that are strictly time-specific as to when they need to be completed, but how can syncing possibly handle this for all possible situations?

I've also seen many people request the feature to sync action items to a calendar, but I've yet to see anyone describe just how it would/could work. If I have an action that I estimate will take 3 hours to complete, I can start it today at 8:00 and it is due no later than Friday at 5:00, how would that look on my calendar? With an alarm at 4:45 on Friday that it is due in 15 minutes and I haven't started it yet? At 2:00 on Friday (3 hours in advance) when I may not have the context available to work on it? Or will my calendar be blocked out from 8 today until 5 on Friday? Now when I am looking at my daily/weekly review, I can make an informed choice on when I should block out the time(s) necessary this week to work on the task. But I cannot imagine how OmniFocus, or any software program, can sync this task along with all my other tasks and make that choice for me.

tah 2009-02-16 11:36 AM

Its obvious that this software was written by developers who work at a small company, who have the luxury of a "we will sell no wine before its time" mentality. They can task list until they get their software done, rather than have to meet a specific deadline.

@Greg
David allen, tries to get people off of dead-lining every task, he doesn't make-believe that projects or task groups don't have calenderable dead-lines.

There are already start/end dates and durations, as well as sequential and parallel settings for task groups. It has most of the interface for gantt charting already.

How it works:
1. For projects/groups/tasks that have end or start dates add as normal. On sync with iCal these dates become a events, with alarms if set
2. For all other tasks add durations
3. set sequential/parallel
4. Press gantt chart button, and omnifocus visualizes the timeline based on start or end dates and the task durations set.
5. You can now see that given the current projects you have a break in 3 weeks long enough to fit in your new client and actually tell them a real timeline that is realistic (instead off pissing off all of your customers because although you have this cool Omnifocus software, you have no idea when you'll have time to do someones project or when you'll finish).

Greg Jones 2009-02-16 04:55 PM

[QUOTE=tah;55251]
How it works:
1. For projects/groups/tasks that have end or start dates add as normal. On sync with iCal these dates become a events, with alarms if set.[/QUOTE]

I gave you a specific example of a task example, yet you failed to give the example of how this would be synced to iCal. I assume that since my task has a start date and a due date, based on what you did say, that my task would block out my entire calendar from 8:00 AM Monday to 5:00 PM on Friday?

whpalmer4 2009-02-16 07:20 PM

[QUOTE=tah;55222]Yes I read lots of threads that were requesting this capability, but no real solution yet, and no commitment to change things either.
[/quote]
Not only no commitment to change, but a considered decision not to change.
[quote]
Omnifocus still seems like it is geared towards the corporate employee with limited responsibility, and a few home to-dos.
[/quote]
You mean people like Omni's CEO, who regularly describes his intensive use of the program?

[quote]
Its obvious that this software was written by developers who work at a small company, who have the luxury of a "we will sell no wine before its time" mentality.
[/QUOTE]
You say that like it is a bad thing, when in fact it is precisely why so many of us use Omni products! And just because Omni [b]may[/b] allow themselves more flexibility with the schedule than a larger company more intent on hitting a publicly announced ship date, I wouldn't assume that they don't end up driving themselves just as hard if not harder.

Greg has asked the question, Ken (Omni CEO) has asked the question, I've asked the question, others have asked the question, but no one seems to have a useful answer to describe how OmniFocus actions should be mapped into calendar events, in general. Some might regard that as a hint that perhaps it isn't a fantastic idea...

tah 2009-02-16 07:36 PM

[QUOTE=whpalmer4;55270]
You say that like it is a bad thing, when in fact it is precisely why so many of us use Omni products!
[/QUOTE]
No I state that, because products reflect their developers. I used to do R&D, and task lists were sufficient. Now I do consulting. Task lists that can't integrate with time scheduling aren't very useful. I hate it when people who peg everybody into their circumstance, rather than seeing the broader need.

[QUOTE=whpalmer4;55270]
Greg has asked the question, Ken (Omni CEO) has asked the question, I've asked the question, others have asked the question, but no one seems to have a useful answer to describe how OmniFocus actions should be mapped into calendar events, in general. [/QUOTE]

I think I gave a pretty clear explanation for mapping to a gantt chart. Calender events are simpler. This isn't that difficult. If its due on a date, put an event on the calender on that day. If it has a duration put it on the calender for that duration, if it doesn't use a default duration (15 min).

The important thing is that you can bring up a calender, and see what MUST be done today, this week, etc.

whpalmer4 2009-02-16 09:59 PM

[QUOTE=tah;55273]No I state that, because products reflect their developers. I used to do R&D, and task lists were sufficient. Now I do consulting. Task lists that can't integrate with time scheduling aren't very useful. I hate it when people who peg everybody into their circumstance, rather than seeing the broader need.
[/quote]
Do you see yourself as a GTD practitioner, or something else?

Perhaps you need a different tool, built to suit your needs. The OmniFocus developers seem to have a pretty clear vision of what they want to provide, and it doesn't appear to include what you are asking. You did read the recent thread where they gave their reasoning, right?

[quote]
I think I gave a pretty clear explanation for mapping to a gantt chart. Calender events are simpler. This isn't that difficult. If its due on a date, put an event on the calender on that day. If it has a duration put it on the calender for that duration, if it doesn't use a default duration (15 min).
[/quote]

Again, this doesn't adequately address Greg's question. I'll repeat it:

[quote="Greg"]
I've also seen many people request the feature to sync action items to a calendar, but I've yet to see anyone describe just how it would/could work. If I have an action that I estimate will take 3 hours to complete, I can start it today at 8:00 and it is due no later than Friday at 5:00, how would that look on my calendar? With an alarm at 4:45 on Friday that it is due in 15 minutes and I haven't started it yet? At 2:00 on Friday (3 hours in advance) when I may not have the context available to work on it? Or will my calendar be blocked out from 8 today until 5 on Friday? [/quote]

[quote]

The important thing is that you can bring up a calender, and see what MUST be done today, this week, etc.[/QUOTE]

Bring up a context mode view, grouped by due, sorted by due, remaining actions. There's your list.

Neither this approach nor a calendar-based approach will be completely accurate with items that repeat within the scope of the view, however, as the future events don't appear in the database until the current one is completed.

tah 2009-02-16 11:21 PM

[QUOTE=whpalmer4;55285]Do you see yourself as a GTD practitioner, or something else?
[/QUOTE]
Really not sure what you getting at, sounds like a religious question. There is no conflict in needing to meet deadlines and GTD. And no I don't mean meetings, those are easily put into iCal directly. I'm talking about tasks with start or end dates.

I re-read the posts by the omni-folks and you are right: They are not planning on fixing omnifocus to provide time perspectives on the tasks or even the most basic syncing with iCal. It seems omnifocus will remain a half solution. It is not reasonable to separately enter due dates into iCal and omnifocus, and then deal with changing it in both places when they change. Ridiculous.

Omnifocus is personal project management, without the overhead of a program like omniplan. Maybe they can make omniplan lite, that works like omnifocus but can actually help PLAN things.

... going to look at other software with a complete solution

Brian 2009-02-17 01:46 AM

[QUOTE=tah;55287]It is not reasonable to separately enter due dates into iCal and omnifocus, and then deal with changing it in both places when they change.
[/QUOTE]

We would agree that it's not reasonable to enter the information into both places, and that's not what we recommend. Double-entry is just needless duplication. In our opinion, you should enter an action on your calendar [B]or[/B] in OmniFocus; not both. Each tool can help you organize a certain type of task better than the other.

Hard landscape items go on the calendar, with the fuzzier, less-well-defined stuff sitting in OmniFocus to pull from as you're able. Check your calendar, and if it doesn't have anything for you, check OmniFocus. Splitting the info is counter-intuitive, but it really is more effective.

On a typical day, OmniFocus tells that I have anywhere from 10-20 actions due today. I really, really don't want those on my calendar. If they were, they would be piled up so deep that I'd never see which meetings or other events I needed to be at.

I sympathize to a degree with the folks that have a desire for all their information in one place; it's comforting, like chocolate and peanut butter. However, the reality - and we've looked at it a lot - is more of a floor-wax-and-dessert-topping kind of situation. You can do it, but it doesn't work out as well as you'd hope.

Greg Jones 2009-02-17 05:22 AM

[quote]Really not sure what you getting at, sounds like a religious question.[/quote]

I wouldn't view it as a religious question, but rather as a means to identify what your perspective is with regard to task management. Some people come to GTD-inspired applications with no prior experience, or buy-in, of the GTD methodology and are often frustrated when they encounter what they perceive to be limitations of the particular application. That doesn't necessarily indicate that the user is wrong about their methodology, but it also doesn't necessarily indicate that the tool is flawed. What it does often mean is that either the user's methodology will need to be re-evaluated or the chosen tool will need to be re-evaluated.

[quote]Omnifocus is personal project management, without the overhead of a program like omniplan. Maybe they can make omniplan lite, that works like omnifocus but can actually help PLAN things.[/quote]

and

[quote]I think I gave a pretty clear explanation for mapping to a gantt chart. Calender events are simpler. This isn't that difficult. If its due on a date, put an event on the calender on that day. If it has a duration put it on the calender for that duration, if it doesn't use a default duration (15 min). [/quote]

In Getting Things Done the topic of formal planning and informal planning is specifically addressed. Allen stresses that the biggest potential for improvement using GTD "does not consist of techniques for the highly elaborate and complex types of project organizing that professional project managers sometimes use (like GANNT charts). Most of the people who need those already have them... The real need is to capture and utilize more of the creative, proactive thinking we do--or could do." (p. 211)

So while Allen (and I expect most of us that implement GTD) recognize that there is a need for formal planning planning with very specific timeline-specific actions, there is also the recognition that the value of GTD lies primarily with thought processes and actions that do not necessarily translate neatly into GANNT charts or time-bound slots on a calendar.

Speaking personally, when I was first exposed to GTD in 2002, I also equipped our somewhat small design department with FastTrack Schedule to manage our design projects. At the time, my lack of experience with both GTD and formal PM quickly revealed itself as I tried to force one tool to address both needs. It wasn't long before I learned to let the PM software help me execute the project while using GTD to inform my thinking about what I should be planning as well as the project-related loose ends that didn't necessarily fit neatly in the PM.

My responsibilities today do not require me to use a full-featured PM, but I still don't try and force one tool (OmniFocus) to manage all aspects of what I need to do to get thing done. Technology-related, I use OmniOutliner to plan much of the specifics of my projects. I use DEVONthink to capture project reference material. I use MailTags and Mail-Act-On to assist in getting email communications into OmniFocus and DEVONthink. I use iCal for all hard landscape related aspects of what I need to do, for all events (appointments and time-specific tasks) and I do not sync anything to iCal from OmniFocus. If I ever again need a heavyweight PM functionality, I'd probably take a look at OmniPlan.

So in the end, perhaps OmniFocus is not the right tool for what you want to accomplish. Or perhaps it could be one tool in your productivity toolbox should you decide to explore the GTD methodology further. If not, then at least recognize that just because the tool doesn't fit your needs does not mean that the tool is flawed or that the people that do find value with the tool must not have busy schedules and/or time-constrained tasks that need to get done.

JKT 2009-02-17 06:52 AM

[QUOTE=Brian;55291]Hard landscape items go on the calendar, with the fuzzier, less-well-defined stuff sitting in OmniFocus to pull from as you're able. Check your calendar, and if it doesn't have anything for you, check OmniFocus. Splitting the info is counter-intuitive, but it really is more effective.

On a typical day, OmniFocus tells that I have anywhere from 10-20 actions due today. I really, really don't want those on my calendar. If they were, they would be piled up so deep that I'd never see which meetings or other events I needed to be at.[/QUOTE]
Given that this is now the official position for OmniFocus, couldn't you at least make it easier for us by adding an UI means of converting actions into iCal entries from within OF? E.g. a toolbar icon to remove and convert the action into an iCal event which allows you to input start and end times, whether it is an all day event and to add alarms. It is truly a pita to enter something in OF, realise at a later time that it should be in iCal and then have to do this manually (enter event in iCal then delete action in OF). It's pointless duplication of effort and needless switching between apps.

tah 2009-02-17 07:37 AM

[QUOTE=Brian;55291]In our opinion, you should enter an action on your calendar [B]or[/B] in OmniFocus; not both. Each tool can help you organize a certain type of task better than the other.

Hard landscape items go on the calendar, with the fuzzier, less-well-defined stuff sitting in OmniFocus to pull from as you're able. Check your calendar, and if it doesn't have anything for you, check OmniFocus. Splitting the info is counter-intuitive, but it really is more effective.
[/QUOTE]

I agree for things that are by their nature different, like meetings, this is true. But for projects, with milestones or finish dates it is bizarre to try to manage the task and the event in two different pieces of software. I understand the ideal you are shooting for, because calenders don't capture well the nature of mosts tasks - but it is overly idealistic, and tries to wish away the reality of a third type of task: the task that is time associative.

I have 6 months of tasks in omnifocus, having something to do to use my time wisely is not the problem, knowing when to do it is.

How about this: you can leave omnifocus as-is for those who's brains would explode if they had spatial/time/gantt visualization of tasks. And for the rest of us who actually need to run our businesses and be responsive to clients rather than philosophize about the true nature of GTD: upgrade omniplan to have the more efficient omnifocus interface for entering tasks, contexts, ctl-option-space entry, and preferences for better (less hand-tweaking) automatic generation of the gantt timeline.

Brian 2009-02-17 08:00 AM

[QUOTE=tah;55297]upgrade omniplan to have the more efficient omnifocus interface for entering tasks, contexts, ctl-option-space entry, and preferences for better (less hand-tweaking) automatic generation of the gantt timeline.[/QUOTE]

I know that more integration with OmniFocus is one of the things the OmniPlan team is looking to add in version 2 - if you send the things you'd like to see added to them at [EMAIL="omniplan@omnigroup.com"]omniplan@omnigroup.com[/EMAIL], they can take your feedback into account.

(Specifically, OP doesn't have any sense of contexts at the moment, so if you could let them know what you'd like to see added in that respect, I'm sure that would help them out.)

Brian 2009-02-17 08:05 AM

[QUOTE=JKT;55295]ouldn't you at least make it easier for us by adding an UI means of converting actions into iCal entries from within OF?[/QUOTE]

This seems like it might be susceptible to an AppleScripted solution - I'll see if I can hack something together in the next couple of days. (Hooray for the ability to add an AppleScript to the toolbar, eh?)

I'd also encourage you to submit this as formal feedback from the help menu - I don't think we have any feature requests on file that come at the issue from this angle; so it would be useful to get into the development database 'for real'.

Brian 2009-02-17 08:19 AM

Heh, it turns out that a couple of folks already went the AppleScript route with this.

The relevant scripts are in [URL="http://forums.omnigroup.com/showthread.php?t=5089"]this thread[/URL]; check the end of the thread for the leopard-compatible revisions of the script. One script takes any actions you have selected and adds them to iCal when you run the script; the other moves any actions you have flagged over.

If you'd like to add the scripts to your OmniFocus toolbar, RobTrew helpfully wrote up some installation instructions in [URL="http://forums.omnigroup.com/showthread.php?t=7453"]this one[/URL].

There's also a script in [URL="http://forums.omnigroup.com/showthread.php?t=11003"]this thread[/URL] which will scan OmniFocus periodically, adding all actions in a particular context to iCal as events.

JKT 2009-02-17 09:06 AM

Thanks Brian, but those scripts create a To Do in iCal and not an Event (at least as far as I can tell, especially the first one) and they also don't provide any feedback as to whether they have worked or not. I'd much prefer an elegant UI that is built into OmniFocus for this.

I'm trying to e-mail OmniGroup a formal feedback for this, but my server is apparently down at the moment. It should hopefully arrive in the inbox at some point today.

* To Do's are worthless on the iPhone so this is not really helpful.

Brian 2009-02-17 11:51 AM

1 Attachment(s)
Okay, it was pretty trivial to modify the script to create an event for each action instead of a To Do. Just like the other script, if you have one or more actions selected, they get added to iCal. If you have no actions selected, it adds all flagged items.

Creates an event that matches the start and end dates if both exist, otherwise makes a 15-minute event at whichever of the two does. If one of the events has no start or end date, it stops and tells you there's a problem.

Just like the other script, you need to open it up in Script Editor once to make a couple of settings - whether there's an alarm, how long before the event the alarm fires, etc.

Thanks, of course to uku, snarke, and yeary, who wrote the 99% of the code I just ended up copy-and-pasting. :-)

Brian 2009-02-17 12:11 PM

Just remembered that the original request was for a script that moved the action over to iCal; mine doesn't do that. I can see one place I could add that, but it would be too early in the process; if the script didn't complete for some reason, you could end up with the action gone from OF but not in iCal.

I'm gonna leave that one to the folks who have more AppleScript smarts than I do...

tdehnke 2009-02-22 09:52 PM

Thanks Brian.. I'm surprised this function isn't in OF... some things have to be done at a certain time sometimes :)

Is there a way to get it to ask what date and time we want it to happen at? Or for it to read it from the "Todo" we made?

Brian 2009-02-23 07:07 AM

The script is going to use the contents of the start and due fields in OmniFocus to create the corresponding event in iCal. You can show the start and due fields in OmniFocus by selecting
View -> Columns -> Start/Due Date

That help?

LizPf 2009-02-23 03:42 PM

[QUOTE=tah;55222]
Omnifocus still seems like it is geared towards the corporate employee with limited responsibility, and a few home to-dos. [/QUOTE]

I disagree, quite strongly.

OF is the best productivity app I have used. I have tons of home to-dos, and responsibilities in quite a few different areas.

I am a housewife and mom, full time. I haven't sat in a cubicle in 15 years.

Couple OF with my Google calendars (one per family member, one for whole-family events, the school calendar, and several others), and Consistency for my "regularly irregular" tasks, and I have a system that works.

tah 2009-02-26 12:17 PM

[QUOTE=LizPf;55626]I disagree, quite strongly.
I am a housewife and mom, full time. I haven't sat in a cubicle in 15 years.
[/QUOTE]

Can see how it works well for this too. Home activities are nicely listable. Generally all of the house projects can wait until its the next task on the list. If you don't get to cleaning the gutters til next week, its not a big deal. Equally time scheduled appointments (pick the kids up at hockey, meet with neighborhood committee, etc) work well to be placed directly in iCal.

My problem is that of a small business and consulting firm. I have 24 projects tasked out for this year. But I have no idea how to organize the task timelines for the projects, when I can fit a new client in, when I can realistically tell someone all the tasks will be done for their project, or how to audit projects for how much time I actually did spend, etc.

I could use Omniplan, but it is designed more general purpose and takes too much time to enter project, it doesn't have quick entry, or most importantly ANY of the features of omnifocus. Putting my tasks in 3 places Omnifocus, OmniPlan, and iCal is ridiculous. Easier to just use a piece of paper or spreadsheet at that point.

Lucas 2009-02-26 01:37 PM

[QUOTE=tah;55818]
My problem is that of a small business and consulting firm. I have 24 projects tasked out for this year. But I have no idea how to organize the task timelines for the projects, when I can fit a new client in, when I can realistically tell someone all the tasks will be done for their project, or how to audit projects for how much time I actually did spend, etc.
[/QUOTE]

I agree; I don't think that OF is really designed for predicting when a particular project will be done or schedule out when projects will be completed. It is also obviously unsuited for time auditing.

On the first issue, people's personalities about this may differ, but my personal view is that building up timelines far into the future ends up hurting projects, because some things take too long and now you are behind on all of your deadlines. Obviously, you have committed to certain completion times with your clients. Nonetheless, in my view, if you have 24 projects, at least one of them is going to take longer than expected. At which point having allocated time to all of your projects while assuming that they would complete on time, to me, seems like it went out the window.

In contrast, I used a of-like system as a law clerk, which requires adhering to strict deadlines on multiple ongoing projects from lots of different clients, which seems quite like your situation of having to juggle clients. I think that the benefit of the OF system system is that, when things take longer than expected (but you haven't yet missed a deadline), your entire plan isn't now overdue. Rather, the system tells you what your upcoming obligations are at that point in time, for you to figure out a way to manage them. Said another way, for me, when I planned out time on everything in a task list, before long everything on the list is overdue.

Having said that, some method of visualizing the volume of upcoming obligations--for dashboard, in my view--I think would be valuable.

On the time auditing issue, I think you just need to get time auditing software. I can't imagine that OF is ever going to be appropriate for that very specialized task.

tah 2009-03-02 08:00 AM

By audit, I don't mean anything sophisticated. Just that I can look back and see my gantt chart in the past.

<allegory>
Way OF works is kind of like those money management methods where you put your money in little envelopes at the beginning of the month. At the end of the month, you stayed within budget, but you don't really know what you did with your money, just that you stayed within budget.

I like to use a credit card. Harder to budget, but at the end of the month I can download detailed records of where I spent every penny into quicken
</allegory>

gabrielito 2009-04-16 05:13 AM

[QUOTE=Brian;55309]
Creates an event that matches the start and end dates if both exist, otherwise makes a 15-minute event at whichever of the two does. [/QUOTE]

Hi Brian,

Thanks a lot for giving us this script, seems to work very well for me. I have 2 questions:

1. I very frequently put a due date for my tasks, but no start date. So in this case the script creates a 15 minutes event in iCal. What do I have to change in the script to get events of more than 15 minutes? They look a bit too small in my agenda and I would prefer, let's say, 1 hour long events.

2. The link to the omnifocus task in the iCal event doesn't work for me. When I click it, it doesn't bring Omnifocus to front and doesn't open the task that should be highlighted... Do I have to change something in the script?

Thank you for helping!

Gabriel

Brian 2009-04-16 02:21 PM

I'll try to make it back around to this script and make these modifications when I get a chance. In case someone gets ambitious and wants to take a stab at it before that happens...

It looks like iCal just defaults to 15-minute events when presented with one that has a start date or an end date but not both. The workaround would be to do some math in the script to manufacture whichever value is missing, then set both start and end date values according to whatever duration was wanted.

As for the links, it looks like the iCal export code is doing some extra work behind the scenes to get those links to work. The script would need to duplicate that work. Currently it does a good job of making links that look like the ones that OF makes during the export, but they aren't actually the same thing.

To get this fixed, I would need to get one of the developers to explain how this code works and then hack something together that does the same thing in Applescript. (This change is somewhat less likely to happen, in other words.)

amg 2009-04-16 03:59 PM

[QUOTE=tah;56030]By audit, I don't mean anything sophisticated. Just that I can look back and see my gantt chart in the past.
[/QUOTE]

Just remind me of TimeOffice ([url]http://www.macupdate.com/info.php/id/16795/officetime[/url]) ... sounds like a great solution for what we all end up doing : spending our time and (at least in my case) not being quite sure how it went ... hope it helps ...

By the way, 100% agree with Greg and his comments ... sometimes trying to put too many things in one tool usually leads to waste of time. Re-reading GTD is always necessary, and productive !


Saludos

AM

deftklb 2009-04-22 10:31 AM

Please also see [URL="http://forums.omnigroup.com/showthread.php?t=2533"]this thread[/URL].

I was inspired to write a bit of a problem/solution brainstorm. I’ve got some feature requests for OF (been using for about 6 months), and I wanted to check Forums first. I’ve read all posts to the two big threads on “time visualization” but by no means have I read every thread, so pardon me please if I’m wasting your time. Also: truly sorry for the length, tried to edit down!

The “problem” here is that we’re all looking for ways to simplify the process of productivity (or completion, or “doing”), whatever that means to each one of us. However we live really complicated, busy, integrated lives, and we’ve all access to an overabundance of “info/choices/projects/tasks” (see!?). IMO when we say simplify we mean “easy and elegant”, because what I’m looking for is a way to manage the way my ideas integrate with so many other parts of my life. Excel is brilliant if all I wanted was to have lists of things (to-do, to-see, to-read, to-think-about, etc); box.net means I can keep them in one place and access them anywhere (a Google Docs solution without the Big Brother!); but that just doesn’t close the book on the issue at all, because I want more.

To address this problem, for me it’s useful to think about how I’d go about being productive if all I had was a pad and a calendar. Let’s say (for example) you have a list of projects; a list of one-off tasks; some life goals (“someday” in GTD); a list of things you’re waiting on; maybe some other “single-action” lists (e.g. movies you’d like to see, restaurants to try, upgrades to your company website); maybe some repetitive actions which you’d like to be reminded of, some of which are time-specific.

That list of projects needs to be broken down – how do I get the project done, when can/should I take time to work on the project? One-off tasks are typically some sort of errand or phone call or reminder, usually with a due date, but not in need of scheduling. Life goals are projects waiting for the greenlight. Single-action lists like “The Movie List” or “Topics to Research” or “Website Ideas” are another form of reminder, typically without time sensitivity until the point when you decide to focus on them. Repetitive actions can carry a hard date (clean apartment), or maybe a hard interval (change filter after 3 months of use).

For projects, Gantting is so useful because it’s about mapping out task durations. Maybe there’s a deadline, but otherwise Gantting is agnostic of dates. You’re not planning out your day-to-day, but rather estimating the timing of tasks given the processes involved vs. what your day-to-day schedule will throw at you in terms of meetings, errands, leisure, etc.

Following along with the situation I posed above, you’re in essence doing 3 interrelated but mutually exclusive things. You’re certainly listing out all the projects and tasks you need to complete. You’re mapping out (on a pad, or maybe some graph paper) the duration of tasks so you can manage the projects from a timing perspective. You’re also scheduling out date-specific tasks and meetings (on your [I]House, MD[/I] wall calendar), which of course gives you the ability to see when you’ll have free time to work on your projects and other things from your lists. Integrated!

OmniFocus lets me list tasks, projects, “single-action” lists, etc. OmniPlan lets me map out my projects. iCal lets me schedule. Each has features and ways that overlap with the others. For me, the simplest solution (also: the only one I can think of that doesn’t run into all of the problems discussed, particularly by Greg Jones) is linking. In the same way that you might have reports/query tables in a database that pull up information in other tables (e.g. a movie title in a movie database will pull up every account that rented that movie, thereby linking to/outputting account information), so would I want to see OF operate.

Given my thesis that tasking, project management and scheduling are distinct-yet-interrelated, and using the example I hypothesized above, it would seem there is a certain amount of information in place in a well-managed OF database that doesn’t need to be recreated in OP or iCal, [U]but there is some information that is missing and needs input[/U]. OF has start and due dates, it’s got durations. But that doesn’t translate to an iCal entry, because you’re not blocking out an entire week for a task with a start-date/end-date delta of one week. Similarly, setting durations in OF can be quite unscientific if you’re trying to map out a complex, multi-step project. The thing we believe in, the reason we’re all on this forum, is that OF is the center, or the “glue,” of this process. If you accept this, then maybe you’re really looking for a way to make this easy and elegant rather than trying to fit it all into one program.

OF is awesome because it’s first and foremost the best task-list. In one place you’ve got everything you want or need to do, sort-able and group-able any which way. And for those tasks you might want to either manage in OP or schedule in iCal, here’s my solution: Have a way to link OF tasks to entries in OP or iCal, such that the info is then reported back in OF.

For example, if I have a task in OF with start and due dates (“scan hard copies of housing data” – something that might take hours and hours over multiple sessions, but doesn’t need to have separate/multiple OF tasks), I might schedule in 90 minutes on Tuesday, two hour-long sessions on Wednesday, and another 2 hours on Friday. OF will tell me that I’ve scheduled in 5-and-a-half hours in iCal when the duration I estimated in OF is 3 hours or 7 hours. It will tell me that Friday is after my OF due date (Thursday). It will physically list out the three iCal times you’ve linked up to the single OF task (in a [day], [date], [starttime]-[endtime] format, e.g.). For the sake of elegance and ease, I can see there being two buttons in the Inspector box of each OF action which will send you to either OP or iCal. Alerts are set in iCal, managing is done in OP, and all you’ve really done is an API data dump in OF.

Another example: I’ve got a project/tasks in OF that are linked to an OP file. Pushing around and tweaking the project in OP will change the “linked” output in OF, alerting me to conflicts. I understand that Omni is looking into OF/OP integration, so making changes in OP might negate actually having to resolve those conflicts manually in OF.

Other examples: You can opportunistically link items from your “single-action” lists; for instance, you’re finally going to see that movie or you’ve finally gotten a reservation at that restaurant. Likewise, repetitive tasks will benefit from having duration (in the form of a calendar entry rather than a to-do item) as well as an iCal alarm.

What is this “linking” besides not having to retype a task/project/context name? Well, it’s the peace of mind (and automatic error checking) that we’re looking for in a system, especially when we’re learning to trust that system. We know that we have to schedule or Gantt manually, but personally I’d be more content if it were linked rather than in many disparate places (sticky note on my computer monitor at home), and I could see that link when I pull up an OF task. Of course I’m surely missing some sort of optimization or some place where data re-entry is unnecessary. Please critique and run with this if useful!

marshallj 2009-04-30 12:24 PM

Help with Script?
 
Hi, I've been trying to figure out a way to give myself reminders of tasks that are easy to forget. I often forget to check my iphone at opportune times and I rely on iCal reminders. I was trying to get this script to work and it creates a task in iCal but it creates the start and finish time based on when I last modified the task in OF, or maybe it's when ran the script. Also, there is no alarm and I made sure it is set to TRUE in the Script editor. What am I doing wrong?

Thanks...

[QUOTE=Brian;55309]Okay, it was pretty trivial to modify the script to create an event for each action instead of a To Do. Just like the other script, if you have one or more actions selected, they get added to iCal. If you have no actions selected, it adds all flagged items.

Creates an event that matches the start and end dates if both exist, otherwise makes a 15-minute event at whichever of the two does. If one of the events has no start or end date, it stops and tells you there's a problem.

Just like the other script, you need to open it up in Script Editor once to make a couple of settings - whether there's an alarm, how long before the event the alarm fires, etc.

Thanks, of course to uku, snarke, and yeary, who wrote the 99% of the code I just ended up copy-and-pasting. :-)[/QUOTE]

Brian 2009-04-30 03:30 PM

[QUOTE=marshallj;59270]I was trying to get this script to work and it creates a task in iCal but it creates the start and finish time based on when I last modified the task in OF, or maybe it's when ran the script. Also, there is no alarm and I made sure it is set to TRUE in the Script editor. What am I doing wrong?
[/QUOTE]

If you've changed anything in the script, you may want to try re-compiling it, saving it, and running it again. It's possible that saving a script forces a recompile, but I wouldn't take it for granted.

I wrote the script on a 10.5.6 machine, and everything seems to be fine when I re-run it on a different 10.5.6 one; if you're running a different version of the OS, that *may* be why you're seeing something different.

The script defaults to having an alarm 24 hours before the events you're creating, so that shouldn't require any modifications.

If you delete the script, download again, and reinstall without changing anything, what happens?

dmcg 2009-07-10 09:07 AM

Sorry to jump on this thread late, but I've had the following script running every hour for while now and it does a good job of giving me iCal events for OF tasks with due dates, and hence iPhone reminders. It differs from the others that I've seen by putting [B]all[/B] tasks with a due date into a dedicated calendar (OF-Reminders, which you'll have to create before you run the script).

Script follows:


-- Creates iCal events for OmniFocus tasks
-- Events are created for 3 categories of task

-- 1 All tasks in the context named by morningContextName will have an event created the next day at morningContextTime
-- 2 Any task with a due date _and_ time will have an event created at that date and time
-- 3 Any task with a due date but no due time will have an all day event created

-- All events are created in the calendar named by targetCalendar, and with the alarm named by eventSoundName
-- The targetCalendar is cleared every run

-- If you synch targetCalendar with your iPhone over MobileMe this will give you iPhone notifications of due tasks


set morningContextName to "for work"
set morningContextTime to 7 * 3600
set eventSoundName to "Submarine"
tell application "iCal"
set targetCalendar to calendar "OF-Reminders"
tell targetCalendar
delete every event
end tell
end tell

tell application "OmniFocus"
my onTasks(inbox tasks of default document)
my onFolders(default document)
end tell

on onFolders(folderList)
using terms from application "OmniFocus"
repeat with eachFolder in folderList
onProjects(projects of eachFolder)
onFolders(folders of eachFolder)
end repeat
end using terms from
end onFolders

on onProjects(projectList)
using terms from application "OmniFocus"
repeat with eachProject in projectList
name of eachProject
onTasks(tasks of eachProject)
end repeat
end using terms from
end onProjects

on onTasks(aTaskList)
using terms from application "OmniFocus"
repeat with eachTask in aTaskList
onTask(eachTask)
onTasks(tasks of eachTask)
end repeat
end using terms from
end onTasks

on onTask(aTask)
using terms from application "OmniFocus"
if aTask is completed then
return
end if
set theContext to context of aTask
if theContext is not missing value then
set contextName to name of theContext
else
set contextName to missing value
end if
set taskDue to due date of aTask
set eventName to eventNameFor(aTask)
if taskDue is not missing value then
createEvent(eventName, id of aTask, taskDue)
else
if contextName is equal to my morningContextName then
set alarmTime to nextAlarmTime(my morningContextTime)
createEvent(eventName, id of aTask, alarmTime)
end if
end if
end using terms from
end onTask

on eventNameFor(aTask)
using terms from application "OmniFocus"
if containing project of aTask is missing value then
set projectName to "InBox"
else
set projectName to name of containing project of aTask
end if
if context of aTask is missing value then
set contextName to ""
else
set contextName to name of context of aTask
end if
return name of aTask & "(" & contextName & ":" & projectName & ")"
end using terms from
end eventNameFor

on createEvent(aSummary, anID, aDate)
tell application "iCal"
tell my targetCalendar
-- if (time of aDate) is equal to 0 then
-- return
-- end if
set existingEvents to every event whose (summary is equal to aSummary) and (start date is equal to aDate)
if existingEvents is not {} then return
if time of aDate is equal to 0 then
set newEvent to make new event at end with properties {summary:aSummary, start date:aDate, allday event:yes}
else
set newEvent to make new event at end with properties {summary:aSummary, start date:aDate, end date:aDate}
end if
if time of aDate is not equal to 0 then
tell newEvent
make new sound alarm at end with properties {trigger interval:0, sound name:my eventSoundName}
end tell
end if
end tell
end tell
end createEvent

on nextAlarmTime(timeSecs)
set now to current date
set alarmDay to now
if time of now is greater than my morningContextTime then
set day of alarmDay to (day of alarmDay) + 1
end if
set time of alarmDay to timeSecs
return alarmDay
end nextAlarmTime


-- Left for reference
on onContexts(contextList)
repeat with aContext in contextList
my onContext(aContext)
end repeat
end onContexts

on onContext(aContext)
using terms from application "OmniFocus"
onContexts(contexts of aContext)
onTasks(tasks of aContext)
end using terms from
end onContext

dancingbrook 2009-07-16 04:38 PM

[QUOTE=Brian;55309]Okay, it was pretty trivial to modify the script to create an event for each action instead of a To Do. Just like the other script, [/QUOTE]

OK, it is the other script I'm looking for, the one that moves To Dos.

Brian 2009-07-17 01:40 PM

Don't know if I'm understanding what you're looking for. The original script was one that moved an action from OmniFocus to iCal, but did so as a ToDo. (The scripts mine was based on are in [URL="http://forums.omnigroup.com/showthread.php?t=5089"]this thread[/URL].)

It sounds like you want a script that converts a ToDo to an event in iCal. Google search turned up a couple of hits, but drag-and-drop seems easiest.

dancingbrook 2009-07-17 06:29 PM

[QUOTE=Brian;62880]Don't know if I'm understanding what you're looking for. The original script was one that moved an action from OmniFocus to iCal, but did so as a ToDo. (The scripts mine was based on are in [URL="http://forums.omnigroup.com/showthread.php?t=5089"]this thread[/URL].)

It sounds like you want a script that converts a ToDo to an event in iCal. Google search turned up a couple of hits, but drag-and-drop seems easiest.[/QUOTE]

Thanks Brian,

Actually I've been convinced the better workflow for now would be to move selected (Flagged, I hope) items to iCal To Do and then I can drag them to Events as I'm ready, that assuming I don't go with OF's built in iCal syncing, which I haven't tried yet (trying to get everything else organized first).

So the one you've linked will work better for me I hope. Maybe someday I'll be ready to move directly into Events, but one step at a times works for me.

polyjesters 2009-11-16 06:42 PM

dmcg ... you did it! ... I think this is pretty much what everyone has been looking for .. works great on this end .. thanks a bunch.

ccgfour 2009-11-29 07:12 PM

Thanks, dmcg -- your script seems to do the trick! Because I don't care about due [I]times[/I] on my actions, I just removed the -if- statements about time and set all actions to all-day events. The new calendar in iCal gives me a quick way to see when my due actions are stacking up. Thanks again!

cameronconner 2009-12-07 12:46 AM

[QUOTE=dmcg;62469]Sorry to jump on this thread late, but I've had the following script running every hour for while now and it does a good job of giving me iCal events for OF tasks with due dates, and hence iPhone reminders. It differs from the others that I've seen by putting [B]all[/B] tasks with a due date into a dedicated calendar (OF-Reminders, which you'll have to create before you run the script).
[/QUOTE]

Brilliant! The only change I made was to make the events allDay regardless.

I tried the other script but it kept giving me errors (one about contexts, another about unable to convert to utf)

Thanks much dmcg!

Judli 2010-04-01 03:17 PM

not a code person
 
I have not gotten into code. Thats why I have to buy my software. But I would like it if OF was a bit more communcative with Ical. It would help.

Björn 2010-04-02 11:06 AM

Hello dmcg,

thanks for your script. It works very fine. I have only one question. What do I have to do for viewing the events in ical with start and end/due time.

Tanks
Björn

dmcg 2010-04-07 12:11 AM

Sorry, I don't understand the question.

jasondm007 2012-07-19 04:02 AM

Context Specific Modification??
 
Brian - Is it possible to modify this script to pull any tasks from Omnifocus with a particular context (say iCal) and add them as events in iCal?

For example, it would be great to retain the existing code (e.g., if highlighted), remove the function that resorts to flagged items (if nothing is highlighted) with one that instead searches for a particular context (e.g., iCal), and then adds them to iCal.

I'm not particularly good with this stuff, so any advice you may have would be most appreciated! Thanks for your help!!

Jason

[QUOTE=Brian;55309]Okay, it was pretty trivial to modify the script to create an event for each action instead of a To Do. Just like the other script, if you have one or more actions selected, they get added to iCal. If you have no actions selected, it adds all flagged items.

Creates an event that matches the start and end dates if both exist, otherwise makes a 15-minute event at whichever of the two does. If one of the events has no start or end date, it stops and tells you there's a problem.

Just like the other script, you need to open it up in Script Editor once to make a couple of settings - whether there's an alarm, how long before the event the alarm fires, etc.

Thanks, of course to uku, snarke, and yeary, who wrote the 99% of the code I just ended up copy-and-pasting. :-)[/QUOTE]

whpalmer4 2012-07-19 08:10 AM

Jason, here's a modification of part of Brian's script that should grab the items in your specified context if nothing is selected, instead of grabbing the flagged items. You'll need to replace the matching section of the original; I've put in a line or two of the original on each end.

[code]

property defaultTriggerInterval : -1440 -- interval between alarm and due date in minutes ("minus 1440" is 24 hours before due date)
property contextIfNoSelection : "Office" -- use tasks from this context if launched with nothing selected

set collectedTaskInfo to {}

--Step 1: collect highlighted items from OmniFocus, or flagged items if nothing is highlighted

tell application "OmniFocus"
-- "window 1" is usually the frontmost window
set theDoc to document window 1 of default document
-- collect all the highlighted tasks in that window
set TaskList to the value of the selected tree of the content of theDoc
if (count of TaskList) is 0 then -- no items are selected, so let's get all the flagged ones
tell default document
set contextMatches to complete contextIfNoSelection as context maximum matches 1
if ((count of contextMatches) > 0) then
set contextId to id of first item of contextMatches
set currentContext to context id contextId
set TaskList to TaskList & (tasks of currentContext where blocked is false and flagged is true and completed is false)
else
display alert "Nothing selected and could not match context " & contextIfNoSelection
return -- give up
end if
end tell
end if

repeat with theSelectedTask in TaskList
[/code]

I'm skeptical about the ultimate value of this modification, as it's going to complain (and quit) if you have any actions in that context which don't have at least one date assigned. Putting dates on everything isn't a great practice, in my opinion, but if it works for you...

jasondm007 2012-07-19 10:49 AM

Brian,

Thanks a ton for the quick reply and for the code above.

I inserted the snippet of code above, but didn't have any luck. I probably didn't explain myself very well.

To be honest, I'm not sure if this method really follows the GTD core. I really just like coming in during the morning and taking a quick look at my calendar for specific meetings or presentations that I have to attend, before I get running with my day. In other words, I really don't rely on it throughout the day, it's just helpful when planning things out (w/ Omnifocus, etc). That's why I don't like Omnifocus's default (adding them as tasks).

I've created a context actually called "iCal" for these types of events that I would just like pushed to my calendar as events (while remaining in Omnifocus).

I was hoping to use the existing script - which first looks to see if anything is highlighted and adds it as an event - to replace the second part of the script - which uses flagged items, if nothing is highlighted - to use anything with a context set to iCal (or whatever context other users prefer). Am I making any sense? Sorry, I'm not very good with this stuff.

As always, thanks a ton for your help! I really appreciate it.

Best Wishes, Jason

whpalmer4 2012-07-19 09:35 PM

Oops, I see that I forgot to elide a clause from the conditional that assembles the list of tasks!

[code]

set TaskList to TaskList & (tasks of currentContext where blocked is false and flagged is true and completed is false)

[/code]

should instead be:

[code]

set TaskList to TaskList & (tasks of currentContext where blocked is false and completed is false)
[/code]

Otherwise, you'd only get tasks in the desired context which happened to be flagged. As it turns out, for the context I used as my test case, they were...

Don't forget that you have to edit the property contextIfNoSelection to have the name of your desired context (sounds like "iCal" is the right value).

jasondm007 2012-07-19 10:28 PM

Brian - the script works perfectly now! I can't thank you enough!!

For those that are interested, I have posted the script here:
[url]http://cl.ly/3J0f3p1z470c[/url]

jasondm007 2012-07-19 11:30 PM

Brian - I forgot to ask. Is there a quick way to add more than one context to the script? For example, could the script pull from say iCal1 & iCal2 (if they were separate contexts in Omnifocus)?

I assume some modification is needed to the "property contextIfNoSelection" portion of the script?

Thanks again,
J


All times are GMT -8. The time now is 11:37 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.