ActiveCollab is a great web based, open source collaboration and project management tool with some stellar features. One of these features is the ability to export your milestones as an iCal file. Syncing this automatically to Google has been hard to do, until now!
There are three ways to make it happen. The first will allow you to sync your active milestones (by project) to a Google Calendar. The second will allow you to sync all of your milestones (regardless of project) to a Google Calendar. The third is a core “hack” which will allow you to sync all active milestones to a Google Calendar.
Active Project Method (non-core modifying):
- Log into activeCollab
- Select the project you want to sync.
- Click on the Milestones tab.
- Right click over the iCalendar link and copy the link/shortcut. (it should contain ?c=feed&a=project_ical&id={id}&token={token}).
- Now head to your Google Calendar.
- While viewing the Google Calendar, Click on the Manage calendars link on the left hand side below the listing of calendars.
- Under the “Other Calendars” heading click on the Add calendar button.
- Then you’ll want to click on the fourth tab titled “Public Calendar Address”.
- Now enter your feed address. (remember you copied it so just paste it here.
- Click on the Add button.
Congratulations, you now have your calendar synced with all your active milestones for that project.
Secondly, for those who want all of their active milestones synced.
Active User Method (non-core modifying):
- Log into activeCollab
- Click on the My tasks tab.
- Right click over the iCalendar link and copy the link/shortcut. (it should contain ?c=feed&a=user_ical&id={id}&token={token})
- Now head to your Google Calendar.
- While viewing the Google Calendar, Click on the Manage calendars link on the left hand side below the listing of calendars.
- Under the “Other Calendars” heading click on the Add calendar button.
- Then you’ll want to click on the fourth tab titled “Public Calendar Address”.
- Now enter your feed address. (remember you copied it so just paste it here.
- Click on the Add button.
Yet again, congratulations you now have a synced calendar to all of your active milestones.
Now for the more adventurous or for those who want the sync to include all active milestones, here is your method.
All Active “Core Hack” Method (core editing necessary*):
- Make Backups of the files and the data!
- Open up language/en_us/general.php
- Add the following line:
'active milestones' => 'active milestones', - Open up application/controllers/feedcontroller.class.php
- Add the following code:
/**
* Show calendar for active milestones
*
* @param void
* @return null
*/
function active_ical() {
$this->setLayout('ical');
$user = $this->loginUserByToken();
if(!($user instanceof User)) {
header('HTTP/1.0 404 Not Found');
die();
} // if
$this->renderCalendar($user, lang('active milestones'), ProjectMilestones::getActiveMilestones());
} // active_ical - Log into activeCollab
- Click on the My tasks tab.
- Right click over the iCalendar link and copy the link/shortcut. (it should contain ?c=feed&a=user_ical&id={id}&token={token})
- Now head to your Google Calendar.
- While viewing the Google Calendar, Click on the Manage calendars link on the left hand side below the listing of calendars.
- Under the “Other Calendars” heading click on the Add calendar button.
- Then you’ll want to click on the fourth tab titled “Public Calendar Address”.
- Now enter your feed address. (remember you copied it so just paste it here.
- Replace the text user_ical with active_ical in that copied link before you add it to Google.
- Click on the Add button.
With that method you will now have a calendar that is synced up with ALL active milestones for everyone.
Additional Notes:
- Quote from within activeCollab: “if you change your password the link to the calendar data will also change! You’ll need to resubscribe.”
- Special thanks to TJ Singleton from VantageStreet for the code, hack and technique.
*Edit at your own risk. FocusedTutorials nor this author share in any responsibliliy for losses encountered while using this method.
Be the first to comment on this post!
Leave a Reply