diff --git a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
index b6553a330107a34e6044e20f79c61881e5aa0b4d..2a0a276ba349b9c1a9aa4c14875f8b1897368948 100755
--- a/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
+++ b/src/main/java/no/nibio/vips/logic/controller/session/ForecastBean.java
@@ -344,6 +344,29 @@ public class ForecastBean {
         }
     }
     
+    public List<ForecastConfiguration> getForecastConfigurations(List<Integer> organizationIds, Date from, Date to)
+    {
+        List<VipsLogicUser> organizationUsers = em
+                .createNamedQuery("VipsLogicUser.findByOrganizationIds")
+                .setParameter("organizationIds", organizationIds)
+                .getResultList();
+        
+        
+        if(!organizationUsers.isEmpty())
+        {
+            return em
+                    .createNamedQuery("ForecastConfiguration.findByVipsLogicUserIdsAndDate")
+                    .setParameter("vipsLogicUserIds", organizationUsers)
+                    .setParameter("from", from)
+                    .setParameter("to", to)
+                    .getResultList();
+        }
+        else
+        {
+            return new ArrayList<>();
+        }
+    }
+    
     public List<ForecastConfiguration> getForecastConfigurationsByWeatherStation(PointOfInterestWeatherStation weatherStation)
     {
         return em
@@ -938,11 +961,18 @@ public class ForecastBean {
             summaryForForecast.add(s);
             mappedSummaries.put(s.getForecastSummaryPK().getForecastConfigurationId(), summaryForForecast);
         });
-        List<ForecastConfiguration> configurations = em.createNamedQuery("ForecastConfiguration.findByForecastConfigurationIds").setParameter("forecastConfigurationIds", mappedSummaries.keySet()).getResultList();
-        configurations.forEach((conf) -> {
-            conf.setForecastSummaries(mappedSummaries.get(conf.getForecastConfigurationId()));
-        });
-        return configurations;
+        if(mappedSummaries.size() > 0)
+        {
+            List<ForecastConfiguration> configurations = em.createNamedQuery("ForecastConfiguration.findByForecastConfigurationIds").setParameter("forecastConfigurationIds", mappedSummaries.keySet()).getResultList();
+            configurations.forEach((conf) -> {
+                conf.setForecastSummaries(mappedSummaries.get(conf.getForecastConfigurationId()));
+            });
+            return configurations;
+        }
+        else
+        {
+            return new ArrayList<>();
+        }
     }
 
     /**
diff --git a/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java b/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
index de0e904122e95c3a264c86ab3a6ee1595fd14270..730f6a7cd6fb7462ed2f1ad4f564589c06fbab15 100755
--- a/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
+++ b/src/main/java/no/nibio/vips/logic/entity/ForecastConfiguration.java
@@ -81,7 +81,9 @@ import org.hibernate.annotations.TypeDefs;
     @NamedQuery(name = "ForecastConfiguration.findPrivateByVipsLogicUserIdAndCropOrganismIdsAndDate", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId = :vipsLogicUserId AND f.cropOrganismId.organismId IN (:cropOrganismIds) AND f.dateStart <= :to AND f.dateEnd >= :from AND f.isPrivate = TRUE"),
     @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIds", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.isPrivate = FALSE"),
     @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIds", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds) AND f.isPrivate = FALSE"),
-    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIdsAndDate", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds) AND f.dateStart <= :to AND f.dateEnd >= :from AND f.isPrivate = FALSE")})
+    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndModelIdsAndDate", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.modelId IN (:modelIds) AND f.dateStart <= :to AND f.dateEnd >= :from AND f.isPrivate = FALSE"),
+    @NamedQuery(name = "ForecastConfiguration.findByVipsLogicUserIdsAndDate", query = "SELECT f FROM ForecastConfiguration f WHERE f.vipsLogicUserId IN (:vipsLogicUserIds) AND f.dateStart <= :to AND f.dateEnd >= :from AND f.isPrivate = FALSE")
+})
 public class ForecastConfiguration implements Serializable, Comparable {
     @OneToMany(cascade = CascadeType.ALL, mappedBy = "forecastConfiguration", fetch = FetchType.EAGER)
     private Set<ForecastModelConfiguration> forecastModelConfigurationSet;
diff --git a/src/main/java/no/nibio/vips/logic/service/LogicService.java b/src/main/java/no/nibio/vips/logic/service/LogicService.java
index 83acad10e4c102b622ebf29bad989bd769d03888..43dadd4e78c198c72363d26e79fa08dd9ed5085d 100755
--- a/src/main/java/no/nibio/vips/logic/service/LogicService.java
+++ b/src/main/java/no/nibio/vips/logic/service/LogicService.java
@@ -232,10 +232,28 @@ public class LogicService {
     @Facet("restricted")
     public Response getForecastSummaries(
             @PathParam("organizationId") Integer organizationId,
-            @QueryParam("cropOrganismId") List<Integer> cropOrganismIds
+            @QueryParam("cropOrganismId") List<Integer> cropOrganismIds,
+            @QueryParam("includeOrganizationIds") String includeOrganizationIds
     )
     {
         List<ForecastConfiguration> summaries = SessionControllerGetter.getForecastBean().getForecastConfigurationSummaries(organizationId);
+        if(includeOrganizationIds != null)
+        {
+            String[] includeOrgIdStrs = includeOrganizationIds.split(",");
+            for(String orgId:includeOrgIdStrs)
+            {
+                try
+                {
+                    Integer includeOrgId = Integer.valueOf(orgId);
+                    if(includeOrgId.equals(organizationId))
+                    {
+                        continue;
+                    }
+                    summaries.addAll(SessionControllerGetter.getForecastBean().getForecastConfigurationSummaries(includeOrgId));
+                }
+                catch(NumberFormatException ex){}
+            }
+        }
         return Response.ok().entity(summaries).build();
     }
     
@@ -321,6 +339,46 @@ public class LogicService {
         
     }
     
+    @GET
+    @Path("forecastconfigurationsincludeorgs/{organizationId}")
+    @GZIP
+    @Produces("application/json;charset=UTF-8")
+    public Response getActiveForecastConfigurationsWithIncludeOrganizations(
+            @PathParam("organizationId") Integer organizationId,
+            @QueryParam("includeOrganizationIds") String includeOrganizationIds
+    )
+    {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(SystemTime.getSystemTime());
+        cal.set(cal.get(Calendar.YEAR), Calendar.JANUARY, 1, 0, 0, 0);
+        Date from = cal.getTime();
+        cal.set(cal.get(Calendar.YEAR), Calendar.DECEMBER, 31, 23, 0, 0);
+        Date to = cal.getTime();
+        
+        
+        List<Integer> orgIds = new ArrayList<>();
+        orgIds.add(organizationId);
+        if(includeOrganizationIds != null)
+        {
+            String[] includeOrgIdStrs = includeOrganizationIds.split(",");
+            for(String orgIdStr:includeOrgIdStrs)
+            {
+                try
+                {
+                    Integer includeOrgId = Integer.valueOf(orgIdStr.trim());
+                    if(includeOrgId.equals(organizationId))
+                    {
+                        continue;
+                    }
+                    orgIds.add(includeOrgId);
+                }
+                catch(NumberFormatException ex){}
+            }
+        }
+        List<ForecastConfiguration> forecastConfigs = SessionControllerGetter.getForecastBean().getForecastConfigurations(orgIds, from, to);
+        return Response.ok().entity(forecastConfigs).build();
+    }
+    
     /**
      * Returns a list of forecasts for given organization
      * @param organizationId