Create a one-time reminder to occur at some amount of minutes, hours, or days
    in the future. This is used like:

        <sduncan> helga in 12h submit timesheet

    This will create a reminder 12 hours from now with the message "submit timesheet".

    Optionally, a specific channel can be specified to receive the reminder message. This
    is useful if creating several reminders via a private message. To use this, specify
    "on <channel>" between the time amount and the message:

        <sduncan> helga in 12h on #bots submit timesheet
        <sduncan> helga in 12h on bots submit timesheet

    Note that the '#' char for specifying the channel is entirely optional.

def in_reminder(client, channel, nick, args):
    """
    Create a one-time reminder to occur at some amount of minutes, hours, or days
    in the future. This is used like:

        <sduncan> helga in 12h submit timesheet

    This will create a reminder 12 hours from now with the message "submit timesheet".

    Optionally, a specific channel can be specified to receive the reminder message. This
    is useful if creating several reminders via a private message. To use this, specify
    "on <channel>" between the time amount and the message:

        <sduncan> helga in 12h on #bots submit timesheet
        <sduncan> helga in 12h on bots submit timesheet

    Note that the '#' char for specifying the channel is entirely optional.
    """
    global _scheduled

    amount, quantity = int(args[0][:-1]), args[0][-1]

    # Handle ability to specify the channel
    if args[1] == 'on':
        target_channel = args[2]
        message = ' '.join(args[3:])

        # Make sure channel is formatted correctly
        if not target_channel.startswith('#'):
            target_channel = '#{0}'.format(target_channel)
    else:
        target_channel = channel
        message = ' '.join(args[1:])

    if quantity not in in_seconds_map:
        return u"Sorry I didn't understand '{0}'. You must specify m,h,d. Ex: 12m".format(args[0])

    seconds = amount * in_seconds_map[quantity]
    utcnow = datetime.datetime.utcnow().replace(tzinfo=pytz.UTC)
    delta = datetime.timedelta(seconds=seconds)

    id = db.reminders.insert({
        'when': utcnow + delta,
        'message': message,
        'channel': target_channel,
        'creator': nick,
    })

    _scheduled.add(id)
    reactor.callLater(seconds, _do_reminder, id, client)
    return u'Reminder set for {0} from now'.format(readable_time_delta(seconds))