diff --git a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
index c9d24318aa54e7c02910b6e29abe187d838efc55..2479e85dceaf8aa7921555f867091fa297be671d 100755
--- a/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
+++ b/src/main/java/no/nibio/vips/logic/messaging/MessagingBean.java
@@ -28,7 +28,9 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.ResourceBundle;
 import javax.ejb.Stateless;
 import javax.persistence.EntityManager;
@@ -51,7 +53,7 @@ import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;
 import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;
 
 /**
- * @copyright 2015 <a href="http://www.nibio.no/">NIBIO</a>
+ * @copyright 2015-2022 <a href="http://www.nibio.no/">NIBIO</a>
  * @author Tor-Einar Skog <tor-einar.skog@nibio.no>
  */
 @Stateless
@@ -59,6 +61,19 @@ public class MessagingBean {
     @PersistenceContext(unitName="VIPSLogic-PU")
     EntityManager em;
     
+    private Map<Integer, UniversalMessageFormat> universalMessageFormats;
+    
+    public UniversalMessageFormat getUniversalMessageFormat(Integer universalMessageFormatId)
+    {
+        if(this.universalMessageFormats == null)
+        {
+            this.universalMessageFormats = new HashMap<>();
+            this.universalMessageFormats.put(UniversalMessageFormat.FORMAT_SMS, em.find(UniversalMessageFormat.class, UniversalMessageFormat.FORMAT_SMS));
+            this.universalMessageFormats.put(UniversalMessageFormat.FORMAT_EMAIL, em.find(UniversalMessageFormat.class, UniversalMessageFormat.FORMAT_EMAIL));
+        }
+        return this.universalMessageFormats.get(universalMessageFormatId);
+    }
+    
     public void sendUniversalMessage(Message message)
     {
         String msgDownloadUrlTpl = "https://www.vips-landbruk.no/messages/" + message.getMessageId() + "/";
@@ -116,13 +131,13 @@ public class MessagingBean {
         {
             try
             {
-                //System.out.println(new ObjectMapper().writeValueAsString(um));
+                System.out.println(new ObjectMapper().writeValueAsString(uMessage));
                 Response r = umClient.sendMessage(new ObjectMapper().writeValueAsString(uMessage));
 
                 // TODO: Handle result
 
                 String result = r.readEntity(String.class);
-                //System.out.println(result);
+                System.out.println(result);
             }
             catch(JsonProcessingException ex)
             {
diff --git a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
index d833d99fdfe15f8f2ac3842db2b37cdacce07971..05f595ffa8ea19269fd2c41fd72f39907691bd49 100644
--- a/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
+++ b/src/main/java/no/nibio/vips/logic/modules/barkbeetle/BarkbeetleBean.java
@@ -63,6 +63,10 @@ import no.nibio.vips.logic.controller.session.UserBean;
 import no.nibio.vips.logic.entity.Organization;
 import no.nibio.vips.logic.entity.VipsLogicRole;
 import no.nibio.vips.logic.entity.VipsLogicUser;
+import no.nibio.vips.logic.messaging.MessageRecipient;
+import no.nibio.vips.logic.messaging.MessagingBean;
+import no.nibio.vips.logic.messaging.UniversalMessage;
+import no.nibio.vips.logic.messaging.UniversalMessageFormat;
 import no.nibio.vips.logic.util.GISEntityUtil;
 import no.nibio.vips.logic.util.Globals;
 import no.nibio.vips.logic.util.SimpleMailSender;
@@ -83,6 +87,9 @@ public class BarkbeetleBean {
     @EJB
     UserBean userBean;
     
+    @EJB
+    MessagingBean messagingBean;
+    
     public static BarkbeetleBean getEJBInstance()
     {
     	try
@@ -775,8 +782,15 @@ public class BarkbeetleBean {
 			List<SeasonTrapsite> allSeasonTrapsites = this.getSeasonTrapsites(cal.get(Calendar.YEAR));
 			for(SeasonTrapsite st:allSeasonTrapsites)
 			{
+                                String heading = "Barkbilleregistrering: Første påminnelse for uke " + (cal.get(Calendar.WEEK_OF_YEAR) + 1);
 				String message = this.getIndividualFirstReminderText(st, cal.get(Calendar.YEAR), cal.get(Calendar.WEEK_OF_YEAR) + 1);
-				String recipientMail = "tor-einar.skog@nibio.no";
+				//VipsLogicUser recipient = st.getUserId();
+                                // TESTING
+                                VipsLogicUser recipient = new VipsLogicUser();
+                                recipient.setEmail("tor-einar.skog@nibio.no");
+                                recipient.setPhone("91303819");
+                                this.sendReminder(List.of(recipient), heading, message);
+                                /*String recipientMail = "tor-einar.skog@nibio.no";
 				//String recipientMail = st.getUserId().getEmail();
 				String registrantPhone = "+4791303819";
 				System.out.println("Phone number would have been " + st.getUserId().getPhoneCountryCode() + st.getUserId().getPhone());
@@ -786,7 +800,7 @@ public class BarkbeetleBean {
 				mailSender.sendMail("noreply-vips@nibio.no", recipientMail, "Barkbilleregistrering: Første påminnelse for uke " + (cal.get(Calendar.WEEK_OF_YEAR) + 1), message);
 				
 				// Alternative 2: Send SMS
-				
+				*/
 				break;
 			}
                         
@@ -904,10 +918,41 @@ public class BarkbeetleBean {
             return retVal;
         }
 	
-	public void sendReminder(VipsLogicUser user, String reminderTxt) {
-		
-		
+        /**
+         * Using the VIPS messaging system
+         * @param recipients
+         * @param heading
+         * @param body 
+         */
+	public void sendReminder(List<VipsLogicUser> users, String heading, String body) {
+            UniversalMessage uMessage = new UniversalMessage();
+            Calendar cal = Calendar.getInstance(BarkbeetleBean.NORGE_MITT_NORGE);
+            cal.setTime(new Date());
+            cal.add(Calendar.DATE, 2);
+            uMessage.setExpiresAt(cal.getTime());
+            uMessage.addMessageLocalVersion("nb", heading, "", body, "");
+            List<MessageRecipient> recipients = users.stream().map(user->{
+                MessageRecipient recipient = new MessageRecipient();
+                UniversalMessageFormat umf = messagingBean.getUniversalMessageFormat(
+                        user.isApprovesSmsBilling() && !user.getPhone().trim().isBlank() ? 
+                                UniversalMessageFormat.FORMAT_SMS
+                                : UniversalMessageFormat.FORMAT_EMAIL
+                );
+                recipient.setType(umf.getFormatName());
+                recipient.setMsgDeliveryAddress(
+                        umf.getUniversalMessageFormatId().equals(UniversalMessageFormat.FORMAT_SMS) ?
+                                user.getPhone()
+                                : user.getEmail()
+                );
+                recipient.setFreeSms(user.isFreeSms());
+                return recipient;
+            })
+            .collect(Collectors.toList());
+            uMessage.setDistributionList(recipients);
+            messagingBean.sendUniversalMessage(uMessage);
 	}
+        
+        
 	
 	/*
 	public List<SeasonTrapsite> getSeasonTrapsitesForCounty2012(Integer season, String county2012)