user26887: I am able to set up one hz interrupts using millis and other timers, but would like to do it instead using the RTC I have attached (DS3231)
I am not sure how I can do that.  Can someone point me to a reference for this?  
EDIT/UPDATE
I tried to use the square wave to trigger a call back/interrupt, but it's not working for me.  I followed what I thought was the wiring diagram here and 
here and here
I also added a led in the circuit to see if I could figure out something that way, but no dice.  
Here is some simple code for a sketch that I think should trigger a 1 second interrupt and call my function:
#include <DS3232RTC.h>    //http://github.com/JChristensen/DS3232RTC
#include <Time.h>         //http://www.arduino.cc/playground/Code/Time  
#include <Wire.h>         //http://arduino.cc/en/Reference/Wire (included with Arduino IDE)

const int rtcTimerIntPin = 2;
bool flag = false;

void setup(void)
{
    Serial.begin(9600);
    setSyncProvider(gRTC.get);   // the function to get the time from the RTC
    if (timeStatus() != timeSet)
        Serial.println("Unable to sync with the RTC");
    else
        Serial.println("RTC has set the system time");

    bool stopped = gRTC.oscStopped();
    if (stopped)
    {
        Serial.println("Detected clock power loss - resetting RTC date");
        time_t newTime = cvt_date(__DATE__, __TIME__);
        adjustTime(newTime);
        setTime(newTime);
    }
    else {
        Serial.println("Clock did not lose power");
    }

    pinMode(13, OUTPUT);    // onboard LED
    pinMode(rtcTimerIntPin, INPUT);
    attachInterrupt(rtcTimerIntPin, rtc_interrupt, RISING);
    gRTC.squareWave(SQWAVE_1_HZ);

    digitalClockDisplay();
}

void rtc_interrupt(void)
{
    flag = true;
}

void loop(void)
{
    //digitalClockDisplay();

    if (flag) {
        digitalWrite(LED_BUILTIN, HIGH);    // flash the led
        digitalClockDisplay();              // this just prints time to serial port 
        delay(500);                         // wait a little bit
        digitalWrite(LED_BUILTIN, LOW);     // turn off led
        flag =  false;                      // clear the flag until timer sets it again
    }
}

void digitalClockDisplay()
{
// do something
}


user27157: Try the following code. It pretty much detects a change in time and when a change has been detected, it will do something. In this case, it will print "do something".    
#include <DS3231.h>
DS3231 rtc(SDA, SCL);
String t; //time as a string
String s;    //second
String Ps;   //previous second

void setup() {
  Serial.begin(115200);
  rtc.begin();
}

void loop() {
  t = rtc.getTimeStr();             //finding time
  s = t.substring(6, 8);            //finding seconds

  if(s != Ps)                       //if the time has changed
  {
    Serial.println("do something"); //put whatever you want here
    Ps = t.substring(6, 8);         //redeclaring the previous second because it has advanced
  }
}


user2881: Use this DS3231 library. It has a method to set the squarewave RTC.squareWave(SQWAVE_1_HZ)

user10794: 
I tried to use the square wave to trigger a call back/interrupt, but it's not working for me.


 bool flag = false;
 ...
 void rtc_interrupt(void)
 {
     flag = true;
 }


Flags set in interrupts should be declared volatile otherwise the compiler may optimize away the comparison to the flag. That is:
volatile bool flag = false;


If you are using the Adafruit library (from the page you linked to) then it should have a couple of functions that can be used to detect when the second has changed, for example:
DateTime now = rtc.now();
int second = now.second();
unsigned long unixtime = now.unixtime();

In either case you just have to check if either one has changed in loop. For example:
void loop(void)
{
  static unsigned long previousTime = 0;
  DateTime now = rtc.now();
  unsigned long timeNow = now.unixtime();

  if (timeNow != previousTime) {
      digitalWrite(LED_BUILTIN, HIGH);    // flash the led
      digitalClockDisplay();              // this just prints time to serial port 
      delay(500);                         // wait a little bit
      digitalWrite(LED_BUILTIN, LOW);     // turn off led
      previousTime = timeNow;             // remember previous time
    }
}


user10794: This answer addresses the original question of why the interrupts didn't work. I happened to have a DS3231 lying around so I made up a test.

Interrupt vs pin number
First, this is wrong in your code:

attachInterrupt(rtcTimerIntPin, rtc_interrupt, RISING);


You need an interrupt number, not a pin number. This is correct:
  attachInterrupt (digitalPinToInterrupt (rtcTimerIntPin), rtc_interrupt, CHANGE);

I also made it a CHANGE interrupt so you get both the rising and falling pulse.

Pull-up resistor
Next, the 1 Hz output needs a pull-up resistor, so you should add that or make it INPUT_PULLUP like this:
  pinMode (rtcTimerIntPin, INPUT_PULLUP);


Testing
I used this library from Adafruit.
Adapting one of their examples, and putting in your interrupt code (with my modifications), it worked!
#include <Wire.h>
#include "RTClib.h"

RTC_DS3231 rtc;

const byte rtcTimerIntPin = 2;

volatile byte flag = false;

void rtc_interrupt ()
{
  flag = true;
}  // end of rtc_interrupt

void setup () {

  Serial.begin(115200);

  while (!Serial); // for Leonardo/Micro/Zero

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // enable the 1 Hz output
  rtc.writeSqwPinMode (DS3231_SquareWave1Hz);

  // set up to handle interrupt from 1 Hz pin
  pinMode (LED_BUILTIN, OUTPUT);
  pinMode (rtcTimerIntPin, INPUT_PULLUP);
  attachInterrupt (digitalPinToInterrupt (rtcTimerIntPin), rtc_interrupt, CHANGE);
}

void loop () {
  if (flag) {
    digitalWrite(LED_BUILTIN, HIGH);    // flash the led
    delay(100);                         // wait a little bit
    digitalWrite(LED_BUILTIN, LOW);     // turn off led
    flag =  false;                      // clear the flag until timer sets it again
  }
}


26887: <p>I am able to set up one hz interrupts using millis and other timers, but would like to do it instead using the RTC I have attached (<a href="https://learn.adafruit.com/adafruit-ds3231-precision-rtc-breakout/overview" rel="nofollow">DS3231</a>)</p>

<p>I am not sure how I can do that.  Can someone point me to a reference for this?  </p>

<p><strong>EDIT/UPDATE</strong></p>

<p>I tried to use the square wave to trigger a call back/interrupt, but it's not working for me.  I followed what I thought was the wiring diagram <a href="https://learn.adafruit.com/adafruit-ds3231-precision-rtc-breakout/wiring-and-test" rel="nofollow">here</a> and 
<a href="https://learn.adafruit.com/ds3231-precision-rtc-featherwing/pinouts" rel="nofollow">here</a> and <a href="https://learn.adafruit.com/ds3231-precision-rtc-featherwing/downloads" rel="nofollow">here</a></p>

<p>I also added a led in the circuit to see if I could figure out something that way, but no dice.  </p>

<p>Here is some simple code for a sketch that I think should trigger a 1 second interrupt and call my function:</p>

<pre><code>#include &lt;DS3232RTC.h&gt;    //http://github.com/JChristensen/DS3232RTC
#include &lt;Time.h&gt;         //http://www.arduino.cc/playground/Code/Time  
#include &lt;Wire.h&gt;         //http://arduino.cc/en/Reference/Wire (included with Arduino IDE)

const int rtcTimerIntPin = 2;
bool flag = false;

void setup(void)
{
    Serial.begin(9600);
    setSyncProvider(gRTC.get);   // the function to get the time from the RTC
    if (timeStatus() != timeSet)
        Serial.println("Unable to sync with the RTC");
    else
        Serial.println("RTC has set the system time");

    bool stopped = gRTC.oscStopped();
    if (stopped)
    {
        Serial.println("Detected clock power loss - resetting RTC date");
        time_t newTime = cvt_date(__DATE__, __TIME__);
        adjustTime(newTime);
        setTime(newTime);
    }
    else {
        Serial.println("Clock did not lose power");
    }

    pinMode(13, OUTPUT);    // onboard LED
    pinMode(rtcTimerIntPin, INPUT);
    attachInterrupt(rtcTimerIntPin, rtc_interrupt, RISING);
    gRTC.squareWave(SQWAVE_1_HZ);

    digitalClockDisplay();
}

void rtc_interrupt(void)
{
    flag = true;
}

void loop(void)
{
    //digitalClockDisplay();

    if (flag) {
        digitalWrite(LED_BUILTIN, HIGH);    // flash the led
        digitalClockDisplay();              // this just prints time to serial port 
        delay(500);                         // wait a little bit
        digitalWrite(LED_BUILTIN, LOW);     // turn off led
        flag =  false;                      // clear the flag until timer sets it again
    }
}

void digitalClockDisplay()
{
// do something
}
</code></pre>
 27157: <p>Try the following code. It pretty much detects a change in time and when a change has been detected, it will do something. In this case, it will print "do something".    </p>

<pre><code>#include &lt;DS3231.h&gt;
DS3231 rtc(SDA, SCL);
String t; //time as a string
String s;    //second
String Ps;   //previous second

void setup() {
  Serial.begin(115200);
  rtc.begin();
}

void loop() {
  t = rtc.getTimeStr();             //finding time
  s = t.substring(6, 8);            //finding seconds

  if(s != Ps)                       //if the time has changed
  {
    Serial.println("do something"); //put whatever you want here
    Ps = t.substring(6, 8);         //redeclaring the previous second because it has advanced
  }
}
</code></pre>
 2881: <p>Use <a href="https://github.com/JChristensen/DS3232RTC" rel="nofollow">this DS3231 library</a>. It has a method to set the squarewave <code>RTC.squareWave(SQWAVE_1_HZ)</code></p>
 10794: <blockquote>
  <p>I tried to use the square wave to trigger a call back/interrupt, but it's not working for me.</p>
</blockquote>

<blockquote>
<pre><code> bool flag = false;
 ...
 void rtc_interrupt(void)
 {
     flag = true;
 }
</code></pre>
</blockquote>

<p>Flags set in interrupts should be declared <code>volatile</code> otherwise the compiler may optimize away the comparison to the flag. That is:</p>

<pre><code>volatile bool flag = false;
</code></pre>

<hr>

<p>If you are using the Adafruit library (from the page you linked to) then it should have a couple of functions that can be used to detect when the second has changed, for example:</p>

<pre class="lang-c++ prettyprint-override"><code>DateTime now = rtc.now();
int second = now.second();
unsigned long unixtime = now.unixtime();
</code></pre>

<p>In either case you just have to check if either one has changed in <code>loop</code>. For example:</p>

<pre class="lang-c++ prettyprint-override"><code>void loop(void)
{
  static unsigned long previousTime = 0;
  DateTime now = rtc.now();
  unsigned long timeNow = now.unixtime();

  if (timeNow != previousTime) {
      digitalWrite(LED_BUILTIN, HIGH);    // flash the led
      digitalClockDisplay();              // this just prints time to serial port 
      delay(500);                         // wait a little bit
      digitalWrite(LED_BUILTIN, LOW);     // turn off led
      previousTime = timeNow;             // remember previous time
    }
}
</code></pre>
 10794: <p>This answer addresses the original question of why the interrupts didn't work. I happened to have a DS3231 lying around so I made up a test.</p>

<hr>

<h2>Interrupt vs pin number</h2>

<p>First, this is wrong in your code:</p>

<blockquote>
<pre><code>attachInterrupt(rtcTimerIntPin, rtc_interrupt, RISING);
</code></pre>
</blockquote>

<p>You need an interrupt number, not a pin number. This is correct:</p>

<pre class="lang-c++ prettyprint-override"><code>  attachInterrupt (digitalPinToInterrupt (rtcTimerIntPin), rtc_interrupt, CHANGE);
</code></pre>

<p>I also made it a CHANGE interrupt so you get both the rising and falling pulse.</p>

<hr>

<h2>Pull-up resistor</h2>

<p>Next, the 1 Hz output needs a pull-up resistor, so you should add that or make it INPUT_PULLUP like this:</p>

<pre class="lang-c++ prettyprint-override"><code>  pinMode (rtcTimerIntPin, INPUT_PULLUP);
</code></pre>

<hr>

<h2>Testing</h2>

<p>I used <a href="https://github.com/adafruit/RTClib/archive/master.zip" rel="nofollow">this library</a> from Adafruit.</p>

<p>Adapting one of their examples, and putting in your interrupt code (with my modifications), it worked!</p>

<pre class="lang-c++ prettyprint-override"><code>#include &lt;Wire.h&gt;
#include "RTClib.h"

RTC_DS3231 rtc;

const byte rtcTimerIntPin = 2;

volatile byte flag = false;

void rtc_interrupt ()
{
  flag = true;
}  // end of rtc_interrupt

void setup () {

  Serial.begin(115200);

  while (!Serial); // for Leonardo/Micro/Zero

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date &amp; time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  // enable the 1 Hz output
  rtc.writeSqwPinMode (DS3231_SquareWave1Hz);

  // set up to handle interrupt from 1 Hz pin
  pinMode (LED_BUILTIN, OUTPUT);
  pinMode (rtcTimerIntPin, INPUT_PULLUP);
  attachInterrupt (digitalPinToInterrupt (rtcTimerIntPin), rtc_interrupt, CHANGE);
}

void loop () {
  if (flag) {
    digitalWrite(LED_BUILTIN, HIGH);    // flash the led
    delay(100);                         // wait a little bit
    digitalWrite(LED_BUILTIN, LOW);     // turn off led
    flag =  false;                      // clear the flag until timer sets it again
  }
}
</code></pre>
