Public
Documentation Settings

Reminders API

Create an account at https://reminders-api.com

Reminders API allows you to create simple or complex reminders that will contact your server every time they fire. For example, you can set a reminder to fire every other Thursday, and you will receive a webhook with the reminder object to your server on that day.

Getting started

Authorization

Each API call expects the bearer token created in step 2 as an authorization header, like so:

Authorization: Bearer

Reminder types

You can create a variety of reminder rules using the Reminder object.

Each reminder requires a date and time (if the time is not specified it will fall back to the application default), and can have a recurrence rule following the RFC 5545. You can find practical examples on this page on the official iCalendar website.

For example, you can create a reminder to be notified:

  • Every day
  • Every 2 weeks
  • Every 3 weeks on Wednesday and Firday
  • Every month on the 4th and the 21st
  • Every 4 months on the last Friday
  • Every year in July and December
  • Every 2 years on the first Saturday of March
  • etc.

Here are some examples:

Remind only once

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00"
    [...]
}

Repeat every 3 days / weeks / month / years

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00"
    "rrule": "FREQ=DAILY;INTERVAL=3",
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00
  • 2020-02-04 12:00:00
  • 2020-02-07 12:00:00
  • etc.

json
{
    [...]
    "date_tz": "2020-01-31",
    "time_tz": "12:00"
    "rrule": "FREQ=MONTHLY;INTERVAL=1",
    [...]
}

Will repeat on:

  • 2020-01-31 12:00:00
  • 2020-02-29 12:00:00
  • 2020-03-31 12:00:00
  • 2020-04-30 12:00:00
  • etc.

Every 2 weeks, on Monday, Wednesday, and Friday

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00",
    "rrule": "FREQ=WEEKLY;INTERVAL=2;BYDAY=MO,WE,FR",
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00 (first notification based on date_tz and time_tz)
  • 2020-02-10 12:00:00 (Monday)
  • 2020-02-12 12:00:00 (Wednesday)
  • 2020-02-14 12:00:00 (Friday)
  • 2020-02-24 12:00:00 (Monday)
  • etc.

Every 2 months, on the 4th and the 15th

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00",
    "rrule": "FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=4,15",
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00 (first notification based on date_tz and time_tz)
  • 2020-02-04 12:00:00
  • 2020-02-15 12:00:00
  • 2020-04-04 12:00:00
  • 2020-04-15 12:00:00
  • etc.

Every month on the first Sunday

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00",
    "rrule": "FREQ=MONTHLY;INTERVAL=1;BYDAY=1SU"
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00 (first notification based on date_tz and time_tz)
  • 2020-03-01 12:00:00 (Sunday)
  • 2020-04-05 12:00:00 (Sunday)
  • etc.

Every 2 years, in July and December

json
{
    [...]
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00",
    "rrule": "FREQ=YEARLY;INTERVAL=2;BYMONTH=7,12"
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00 (first notification based on date_tz and time_tz)
  • 2020-07-01 12:00:00
  • 2020-12-01 12:00:00
  • 2022-07-01 12:00:00
  • 2022-12-01 12:00:00
  • etc.

Every 2 years, in July and December on the last Thursday

json
{
    [...] 
    "date_tz": "2020-02-01",
    "time_tz": "12:00:00",
    "rrule": "FREQ=YEARLY;INTERVAL=2;BYMONTH=7,12;BYDAY=-1TH"
    [...]
}

Will repeat on:

  • 2020-02-01 12:00:00 (first notification based on date_tz and time_tz)
  • 2020-07-30 12:00:00
  • 2020-12-31 12:00:00
  • 2022-07-28 12:00:00
  • 2022-12-29 12:00:00
  • etc.

The Webhook

When one or more reminders fire, you will receive a webhook to the webhooks_url specified in your application. The request will send a basic authentication header using the http_basic_auth_username and http_basic_auth_password you specified, and will have the following body:

json
{
    "application": {
      "id": 1,
      "user_id": 1,
      "name": "My Application",
      "default_reminder_time_tz": "09:00:00",
      "webhook_url": "https://your-site-as8df7.com",
      "http_basic_auth_username": "user",
      "http_basic_auth_password": "pass",
      "created_at": "2020-10-07T16:52:47.000000Z",
      "updated_at": "2020-10-07T16:52:47.000000Z"
    },
    "notification_datetime_utc": "2020-10-07 16:59:00",
    "reminders_notified": [
      {
        "id": 1,
        "user_id": 1,
        "application_id": 1,
        "title": "Do something",
        "notes": null,
        "timezone": "Europe/Tallinn",
        "date_tz": "2020-10-07",
        "time_tz": "19:59:00",
        "rrule": null,
        "notify_in_advance": null,
        "next_tz": "2020-10-07 19:59:00",
        "next_utc": "2020-10-07 16:59:00",
        "snoozed": 0,
        "created_at": "2020-10-07T16:53:11.000000Z",
        "updated_at": "2020-10-07T16:59:02.000000Z"
      }
    ]
}
AUTHORIZATIONBearer Token
Token

<token>