+ Add Question

Clunky workaround for pushing tasks to google calendar

SV

OK - this is embarrassing, but it works.

Perhaps someone who is smart can be more elegant.

I need my google calendar to reflect updates in my todo's immediately - not once every 24 hours, which is how often Google will poll the ical feed from Todoist.

Here is an old java program that is meant to sync a local calendar and google calendar:

http://gcaldaemon.sourceforge.net

So, I set it up to sync a local ICS file to a google calendar I set up just for Todoist.

Then I wrote a python script to download my ICS file from todoist.

There was one problem - the ICS file from todoist does not have any event IDs (UIDs), which chokes gcaldaemon. So in my script, I have it add in a random UID for each event and save the new ICS file.

Then I set the whole thing up to run as a cron job every few minutes.

So now any changes I make in Todoist are reflected quickly in my google calendar. Note that you could make changes in the calendar, but that these will not be reflected back in your todoist (obviously). There needs to be 2-way sync for this.

If anyone wants more details, let me know. I don't want to post anything, since this is such an ugly solution. Hopefully something more elegant is forthcoming, but this works for now.

All responses

David Trey staff
Replied on Jan 17, 2013 - 18:10 UTC

Hello Sam,

Thank you very much for this information, it's very interesting and we will actually consider such solution for our iCal feed.


Best regards,
David

SV
Sam Volchenboum
Replied on Jan 23, 2013 - 15:08 UTC

I just wanted to update on this workaround.

My wife is also a new Todoist user. The calendar integration is a must for her, so she would not try it until I told her I had a partial workaround.

To recap, on one computer, I have the gcaldaemon sync script set up to (1) download my ICS calendar from Todoist, (2) add in fake UIDs to each event so google calendar doesn't choke, and (3) push the fixed ICS to google calendar. I have all this wrapped in a python script that runs as a launchd process every minute. So far, it has been working perfectly. New Todoist items with due dates +/- times are added to the calendar almost instantly (within a minute). Having mine and my wife's calendar synchronizing from two different google accounts and two different Todoist accounts was no problem with GCALDaemon.

Cons
1. Any changes made to the google calendar will be wiped clean with the next sync. There is NO bidirectional syncing here.

2. I suppose that Todoist might not want me pulling my ICS every 60 seconds.

3. I'm also a bit concerned that google doesn't want me pushing a calendar every 60 seconds.

I could always decrease the polling interval to 5 or 10 minutes, but then I would lost the illusion of the instant sync.

In any case, this is only a temporary and only partially sufficient workaround. The URL calendar with google is not a solution, since google only polls once a day. For continuous synchronization, there has to be actual integration, which will be great with it finally arrives.

David Trey staff
Replied on Jan 23, 2013 - 18:24 UTC

Sam,

Thank you for this info, I've passed it to the developers and hopefully we'll find a solution/workaround like this.

Regarding your concerns about pulling our feed every 60 seconds - don't worry, our iCal feed can be pulled even more often and it actually is if someone uses it with any other calendar software than Google Calendar as all other calendars will refresh it in very short intervals or on demand. I'm not sure if Google likes to get it pushed every minute, though.

Again, thank you very much for this workaround, we appreciate it.


Best regards,
David

SV
Sam Volchenboum
Replied on Jan 24, 2013 - 14:13 UTC

I modified the script to only update my google calendar if there has been a change in my Todoist. That makes a lot more sense.

PC
Peter Colsell premium
Replied on Jan 28, 2013 - 02:50 UTC

@ David,
Please advise what time frame the developers would be expecting to have this fix working.

PETER COLSELL

David Trey staff
Replied on Jan 28, 2013 - 12:26 UTC

Hello Peter,

Unfortunately, I can't give you any timeframe on this. We're considering this solution and we'll be certain if we can implement it after some testing, but we don't know when it may be implemented.


Best regards,
David

CP
Christy Pierce
Replied on Apr 27, 2013 - 14:55 UTC

The reason I bought this app was because I thought I could enter events into my Google calendar in my Android, and have them reflect in my Todoist... I am VERY disappointed!!

A
Art
Replied on Jun 20, 2013 - 01:42 UTC

So, to chime in on this question... I just got Todoist and really like it. As I play around with the push to Google feature - I can live without the 2 way sync to Google Calendar but it is difficult to rely on updates not happening for 24 hours or so. Is this a Google issue in which case we are pretty much hosed? Or is there a more simple solution other than implementing script which is a bit beyond my pay grade.

Thanks,

David Trey staff
Replied on Jun 20, 2013 - 11:47 UTC

Hello Art,

We're sorry for the inconvenience, the "1 sync a day" is unfortunately a limitation on Google's side. We will see if there are alternative ways to force a sync on our end, but at this point we have no influence on Google's decision.


Best regards,
David

A
arpad.andrassy premium
Replied on Jun 24, 2013 - 20:08 UTC

Hi David,

There should be workarounds, updates of GQueues(another 3rd party app) are instant with google calendar.

It would be very helpful if Todoist did the same magic.

Thanks.

NM
Narayanan Mangalath premium
Replied on Jan 15, 2014 - 04:28 UTC

Hi Sam,

I am in the same boat, looking for a solution to integrate todoist with Googe calendar
I wonder if there is any way of getting your Python script.
I am keen to implement your solution in the interim

Thanks

Belodalin premium
Replied on May 25, 2014 - 07:03 UTC

Hi Sam,

Can your script be downloaded from somewhere, or is it possible to get it from you in a private message?
It would be very helpful, until the todoist guys come up with a permanent solution.

Thanks