Clunky workaround for pushing tasks to google calendar
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:
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.
Asked by Sam Volchenboum on Jan 14, 2013 - 22:25
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.
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.
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.
Christy Pierce on Apr 27, 2013 - 09:55
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!!