Your browser is no longer supported! Please upgrade your web browser now.
Posts by Pez Cuckow:

View Your Forecast Schedule Right in Your Calendar

Many businesses consider Forecast to be their single source of truth: it tells who should be doing what and when. We’re happy to announce that as of today, that truth is easier for all your teammates to access. Now you can view your Forecast schedule right inside your calendar!

Previously, making sure your team was up to date with the latest schedule could be tough. Team members needed to have access to your Forecast account, then remember to sign in each week to view the schedule. It was easy to miss changes that might happen mid-week. And that meant teammates could misunderstand the latest schedule, get out of sync with the team, and maybe even be unsure what to work on.

Forecast Comes to Calendars

That miscommunication doesn’t have to happen anymore! Now your teammates can view their Forecast schedule right inside of their calendar. All they have to do is subscribe to Forecast’s calendar feed. Then they’ll see all of their assignments and relevant milestones, right inside a program they’re more familiar with and more likely to look at every day. They can stay up to date and in sync without even needing to go to Forecast at all!

Google Calendar with Forecast Schedule

How to Subscribe to the Calendar Feed

Forecast’s calendar feed is available for all applications that can import an ICS feed, like Google Calendar, Microsoft Outlook, Apple Calendar, and more.

To subscribe to your own calendar feed, simply click your name in the top right of Forecast, click My Calendar Feed and follow the instructions.

My Calendar Feed in the Profile Menu

You might want to help teammates subscribe to their feeds so they don’t have to do it on their own (especially if they don’t have access to Forecast). In this case, just use the new Calendar Feed option in any teammate’s Actions menu.

Choosing Calendar Feed from a Team Mates Actions Menu

Keeping Everyone on the Same Page

A little protip: If your calendar supports custom refresh rates, check out this guide to control how soon changes in Forecast will show up in your calendar. You can also see these help docs for more detailed info about set-up.

With everyone subscribed to their Forecast calendar feeds, it’ll be easier for both you and your teammates to feel confident that everyone knows what to work on, when. We hope this helps keep your whole team on the same page and working in sync!

Great Scott! Faster Time Traveling in Forecast

When planning in Harvest Forecast, it’s common to need to look at the past or the future, whether to double-check something from last month, or plan an upcoming project three months from now.

Previously, this was only possible by clicking “Previous Week” or “Next Week”. These actions only move one week at a time, which feels particularly slow when you want to jump further into the past or future. They make navigating the schedule feel somewhat tedious.

Today, we’re introducing a new “Jump to Week” action. This opens a calendar to select the week you’d like to view, allowing you to travel through time much more quickly.

Animation showing use of the jump to week button

Behind the New Invoices Overview

Ever wonder about the inner-workings that make Harvest tick? There are a lot of continual updates to our codebase that our users never see. In the lull before our next update to Invoices Overview, we thought it a good chance to give you a sneak peek into the behind-the-scenes work our developers do to make Harvest run better and faster. In this post, our developer Pez gives you a first-hand glimpse into his work to improve the code for Invoices Overview.


Here at Harvest, we like to ship new features, but also take great care to continually improve existing functionality.

We launched Harvest back in 2005, before Rails had hit version 1.0 and Ruby was still at version 1.8. That means we have our fair share of legacy code. Recently some of the legacy code had started to become a blocker to our aim of continual improvement.

When we decided to update the Invoices Overview screen, we had a choice: develop new functionality on top of the existing code, potentially making the problem worse, or rewrite our code.

We decided to take a step back and re-architect this section of Harvest. This meant we could bring the area up to modern standards with feature parity, and then start implementing a few new features to make the section even more useful.

What’s the Problem with Old Code?

Why is legacy code such a bad thing? If it isn’t broken don’t fix it, right?

While it’s true that features written in legacy code will work, legacy code can eventually become a barrier for improving existing functionality for a few reasons:

  • It often has less test coverage, meaning it’s easy to break things without realizing.
  • It’s usually harder to understand, having drifted from the originally engineered design.
  • The additional complexity makes it harder to debug and more complex to add functionality to.

But why does “legacy code” exist in the first place?  Continue reading…