user32508: I am trying to create a code which prints to the LCD a message once a certain time is passed.
#include <Time.h>
#include <TimeLib.h>
#include <Adafruit_RGBLCDShield.h>
#include <utility/Adafruit_MCP23017.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  lcd.begin(16, 2);
  setTime(02, 10,00, 14, 03, 2016); 

  //pinMode(13, OUTPUT);
  pinMode(2, INPUT);
  digitalWrite(2, LOW);
  attachInterrupt(0, blink, CHANGE);
}

void loop() {
  lcd.setCursor(0, 1);
  char time_out[16];
  sprintf(time_out, "%02u:%02u:%02u",hour(),minute(),second());//use %x to get hex 
  lcd.print(time_out);  

  int totalSeconds = (hour() * 3600) + (minute() * 60) + second();  
  lcd.print(totalSeconds);
  if(totalSeconds > 7806) {
    digitalWrite(2, HIGH);
  }
}

void blink() {
  lcd.print("time passed");
}

The setup uses the Time lib to set a date. It also  sets pin 2 as an INPUT and sets it it LOW. The attachInterrupt checks if pin 2 (0), changes, then function blink should execute.
In the loop, I am creating a string that prints out the time and displaying it to the LCD. I am also converting the time to seconds, so that I can easily compare two times. After 6 seconds (the timer starts at 7800), I am changing the value of pin 2 to HIGH. 
This should indicate a change in its state and should and trigger blink, but it does not. Can anyone spot the mistake I made? Thanks in advance.

user32463: Since I don't have enough reputations to comment on your question I am going to drop my two cents here.
Since your question is a little bit vague, I am going to suppose that you don't want any external interrupts thus, you don't need to use the attachInterrupt function. I am going to suppose that there is no need to use timers' interrupts as well.
Have a look at the following code:
#include <Time.h>
#include <TimeLib.h>
#include <Adafruit_RGBLCDShield.h>
#include <utility/Adafruit_MCP23017.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  lcd.begin(16, 2);
  setTime(02, 10,00, 14, 03, 2016); 
}

void loop() {
  char time_out[16];
  lcd.setCursor(0, 1);
  sprintf(time_out, "%02u:%02u:%02u",hour(),minute(),second());//use %x to get hex 
  lcd.print(time_out);  

  int totalSeconds = (hour() * 3600) + (minute() * 60) + second();  
  lcd.print(totalSeconds);
  if(totalSeconds > 7806) {
    blink();
  }
}

void blink() {
  lcd.print("time passed");
}

You should know the following:
Commands inside void loop() is going to be executed for ever again and again. Especially lcd.print(time_out);. You had better refresh the LCD every 1 second.
After 6 seconds blink() is going to be executed many times (maybe forever) since it is inside the loop and if(totalSeconds > 7806) is going to be always true.
If you have any question let me know in the comment section.

32508: <p>I am trying to create a code which prints to the LCD a message once a certain time is passed.</p>

<pre><code>#include &lt;Time.h&gt;
#include &lt;TimeLib.h&gt;
#include &lt;Adafruit_RGBLCDShield.h&gt;
#include &lt;utility/Adafruit_MCP23017.h&gt;
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  lcd.begin(16, 2);
  setTime(02, 10,00, 14, 03, 2016); 

  //pinMode(13, OUTPUT);
  pinMode(2, INPUT);
  digitalWrite(2, LOW);
  attachInterrupt(0, blink, CHANGE);
}

void loop() {
  lcd.setCursor(0, 1);
  char time_out[16];
  sprintf(time_out, "%02u:%02u:%02u",hour(),minute(),second());//use %x to get hex 
  lcd.print(time_out);  

  int totalSeconds = (hour() * 3600) + (minute() * 60) + second();  
  lcd.print(totalSeconds);
  if(totalSeconds &gt; 7806) {
    digitalWrite(2, HIGH);
  }
}

void blink() {
  lcd.print("time passed");
}
</code></pre>

<p>The <code>setup</code> uses the Time lib to set a date. It also  sets <code>pin 2</code> as an <code>INPUT</code> and sets it it <code>LOW</code>. The <code>attachInterrupt</code> checks if <code>pin 2 (0)</code>, changes, then function <code>blink</code> should execute.</p>

<p>In the loop, I am creating a string that prints out the time and displaying it to the LCD. I am also converting the time to seconds, so that I can easily compare two times. After 6 seconds (the timer starts at 7800), I am changing the value of <code>pin 2</code> to <code>HIGH</code>. </p>

<p>This should indicate a change in its state and should and trigger <code>blink</code>, but it does not. Can anyone spot the mistake I made? Thanks in advance.</p>
 32463: <p>Since I don't have enough reputations to comment on your question I am going to drop my two cents here.</p>

<p>Since your question is a little bit vague, I am going to suppose that you don't want any external interrupts thus, you don't need to use the <code>attachInterrupt</code> function. I am going to suppose that there is no need to use timers' interrupts as well.</p>

<p>Have a look at the following code:</p>

<pre><code>#include &lt;Time.h&gt;
#include &lt;TimeLib.h&gt;
#include &lt;Adafruit_RGBLCDShield.h&gt;
#include &lt;utility/Adafruit_MCP23017.h&gt;
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();

void setup() {
  lcd.begin(16, 2);
  setTime(02, 10,00, 14, 03, 2016); 
}

void loop() {
  char time_out[16];
  lcd.setCursor(0, 1);
  sprintf(time_out, "%02u:%02u:%02u",hour(),minute(),second());//use %x to get hex 
  lcd.print(time_out);  

  int totalSeconds = (hour() * 3600) + (minute() * 60) + second();  
  lcd.print(totalSeconds);
  if(totalSeconds &gt; 7806) {
    blink();
  }
}

void blink() {
  lcd.print("time passed");
}
</code></pre>

<p>You should know the following:</p>

<p>Commands inside <code>void loop()</code> is going to be executed for ever again and again. Especially <code>lcd.print(time_out);</code>. You had better refresh the LCD every 1 second.</p>

<p>After 6 seconds <code>blink()</code> is going to be executed many times (maybe forever) since it is inside the loop and <code>if(totalSeconds &gt; 7806)</code> is going to be always true.</p>

<p>If you have any question let me know in the comment section.</p>
