Medication Reminder & Log Using NFC?


I’m trying to find a solution that reminds me to take my daily medication and also logs that it’s been done with a timestamp.
I have three medications.
One I take twice daily and the other two I take at night.

I’d like to incorporate reminders, shortcuts and ToolBox Pro using NFC.

  • Have recurring reminder for each medication at their prescribed time(s)
  • With NFC tags on each bottle, and when tapped logs date/time
  • If I can’t remember if I took it, a tap on the bottle will present me with a notification, some like, ‘Dosage Taken: Today 8:00 pm.’

I’m really new to Shortcuts, but fascinated by the possibilities it can provide for me.
I’ve created some small shortcut automations, but this one is beyond my knowledge level.

I was recently diagnosed with ADHD, so I’m trying to develope some more efficient and productive habits for dealing with it.

I’ve looked through some of the medication shortcuts out there, and I haven’t found one that incorporates NFC, or is just too much for what I need.
Mainly, logging doses and referencing the last dose are what I need.

Any help on how to go about this would be greatly appreciated.

Thank you!


NFC tags are just triggers. You can associate an NFC tag with the running of a shortcut, so let’s put that to one side … for now.

For recurring reminders, you don’t need to use Shortcuts at all. Once they are set, they occur. That’s the whole point. One thing I might suggest is that you look at the app Due. Many people who need a nag for something, often times that being medications, use Due. This is because it can be configured to give more persistent and insistent reminders than the standard Reminders app. From your description of your current situation and goals, I would strongly recommend that you at least take a look at the app on the App Store and see if it would deliver enough benefit for you to consider using.

So that’s the reminder and the trigger. Now we need to dig into a couple of questions on the shortcuts … before I come back to the NFC tags :wink:

You note that you want to be able to log some information about taking the medication based around which medication (possibly including the actual dose?), and when. Where do you want to store this information, and do you just want to store the last entry (you note “referencing the last dose” is what you need - but is that what you want ideally or is what you would accept?), or do you want to have ongoing logs? There are many options about where and how, and given that this is related to your own personal medication, you might want to give that some thought if you haven’t already.

And, back to NFC tags. While they are relatively inexpensive, they are often single use when you stick them onto something unless you get creative with velcro or the like. They are also usually a few centimetres in diameter and to be stuck flat. But not every medication bottle is the right size or has a suitable surface. In fact in the UK, at least half of prescription medication comes in blister packs and not bottles. In either case, the packaging tends to be disposed of (landfill/recycling) … potentially taking an NFC tag with it.

I’m obviously guessing a bit here, but I have a concern that if you are sticking NFC tags (I’m assuming you intend to use standard stickers rather than stick a key fob style tag to a bottle :wink: ) to medication packaging that you might have the most reusable approach. Many people stick the tags to a card that they then stick on the inside of a bathroom cabinet, or to the exterior or a large pill separator box. In fact many people who have diagnoses of ADHD or the like prefer the pill separator box as they then get the physical isolation of the pills and the ability to physically see that the medications have been taken rather than relying on the more ephemeral logging. My point is simply that you might want to give some consideration as to where the NFC tags will go - they need to be stuck to something flat, big enough to separate them out for all the medications you will take so that you don’t get false/duplicate scans, and it should also be non-metallic unless you get the special shielded NFC tags.

Final point. You note that you want to tap a tag and it logs taking the medication. You also mention that when you tap a tag you want it to tell you when you last took it. Either you are going to need two tags per medication, or to select from a menu of two options each time that you tap a single medication tag. Or you could always do both, which doesn’t sound ideal for your scenario. If you haven’t already thought about how this might work, I would suggest doing so. This is medication, so you want to be very clear how you need your process to work so that you can trust it.

I hope that all makes sense.

Hey, thanks for the detailed reply!

Yes, I’ve been thinking what is the easiest way for me, to remember to take the medication and if I can remember, to effectively reference the last dose.

I would like to be able to keep a log of all doses taken and of course the last dose.
I was thinking Data Jar might be a good solution here.

As for NFC use, I would just reuse the medication bottles, each with their own sticker tag referencing that bottle medication name. I bought both the stickers and the coin-style tags. I’d see which one was the most effective at being read and go from there.
I figure that way I don’t need to refill a pill separator box on a weekly basis.
I’m trying make it as simple as I can, as far as, taking and logging. (Take, Tap, Log, Repeat)

I’ve heard of Due and will look into it. Do you know if it has Shortcuts automations built in?
As for Reminders, I guess what I’m really looking for there is when I tap the bottle it would complete the task in Reminders for that day. I know Reminders can do sub-tasks, but I don’t know if I could set it up for example, (Task–>Medication 1–>Sub-Task–1st Dose–>Sub-Task–2nd Dose–>Completion–Repeat)
I could set up a Reminders for each Medication that way, if it’s doable.

On your final point, couldn’t the Shortcut reference whether I already took the medication, based on a timestamp, and return either a Log Dosage prompt or Dose already taken [timestamp] Cancel
Maybe, that’s beyond the ability of Shortcuts.

I did find the MedLog shortcut, which is quite robust. Unfortunately, the “twice daily” action is time base. If I’m taken a medication twice-a-day, not earlier than four hours apart, this shortcut is flexible for that need.

I think for simplicity sake, a reminder alerts me to take my medication–>tap cap(starts a count-up timer, and at four-hours fires another alert to take second dose–>tap (resets count-up timer).
I found many countdown shortcut timers, but not a count-up one.

I’ll keep fleshing out my needs here.
Thanks again, I really appreciate the reply and thoughts on this!


Data Jar is a good, easy access option for storing data. There would be numerous ways to approach this, and certainly some sort of list of timestamps for each medication is probably quite a good way to log the dose history. However, to make things quick and easy for the daily checks, I’d be tempted to also have a second variable to store just the last time the medication was taken so you can do a date check against it without having to go through and figure out if a timestamp for today appears in the list or matches the last line added or whatever. As a general rule, due largely to many hours sat on database design courses, I don’t like to go for duplication of data, but sometimes efficiency comes from doing just that.

Yes it does have some support for Shortcuts.

I can see how if you have multiple doses per day and you take a first dose at a random time, and the other doses must be spaced out after that, that being able to programmatically set the reminders would be useful, but then this does not match up with your approach of checking the last taken date for recording the medication for anything after the first dose.

I’m honesty a little confused. :man_shrugging:t2:

Yes it could, but it does mean that you would have to take the dose immediately. I know that sort of approach would not work for everyone who has ADHD (I have family with ADHD), but the question was intentionally a leading one to see what sort of way you’re inclined.

Yes, that would be my approach as part of my routine when getting ready for work in the morning.
While giving it more thought, I was thinking on tap after taking the first dose, trigger a four-hour countdown timer could be triggered, maybe using an app like Timery or just the iOS Timer app.

I’m all for quick and easy and not to try and overthink this process too much. It just needs to be reliable. I like the second variable idea just checking for the last time the medication was taken.
I need to look into using Data Jar and how I would go about laying out a database.

I do the the simplicity of this shortcut, Last Dose

However, it only works with one dose at a time. I imagine it would get complicated to have multiple doses applied.

I’m going to have to work on breaking my needs down into manageable chunks and go from there.
Thanks again, for your input!

How about an NFC tag for each medication, tapping it will be your way of running a shortcut which logs the date/time for that medication for you and stores it in DataJar. I would keep it simple and just do a dictionary for each Rx and is composed of just a list of dates. Use the same name for the name of the NFC and dictionary and your NFC automation should write itself.

In a separate spot, (maybe your fridge, I have all my meds in a drawer right next to my fridge), you have a single NFC tag which runs a short cut and queries datajar for the meds you have taken today and displays the status.

This way you separate the logging shortcut from your check status shortcut.

If you combine DataJar with Scriptable, you could probably easily create a visual widget of your Rx status on your home screen which is always visible, thus negating the need for the status NFC tag since it would always be easily visible on your widgets.

The last piece would probably be just a simple shortcut that runs at different times of the day and notifies you the names of the Rx you haven’t taken today (depending on your Rx frequency)?

Yes, that sounds like a good option.
How would I set up Data Jar to run this query?
Thanks! I appreciate your ideas.

Just use a regular dictionary or list for a single Rx, start with that and a single NFC tag to get one working with a shortcut.

Just gotta stuff a date into that data jar object so when you are querying, you just query for the date you are looking for, if it exists, you know you’ve done the NFC dance on that date, if it doesn’t exist, you know you didn’t take the Rx on that date.

Great, thanks for the advice! Much appreciated!