NostrCal for Android is on Zapstore!
I just published the first version of nostrcal for android to Zapstore. This version doesn't yet include private events but does let you see your public calendar events on the calendar + search for public events you may want to RSVP to.
It's nothing special yet but hope to continue to build from here! Thank you @franzap for making this possible with #purplestack. There's no way I could have built this myself without your tooling!
Login to reply
Replies (24)
This is nice!! 

NostrCal for Android is on Zapstore!
I just published the first version of nostrcal for android to Zapstore. This version doesn't yet include private events but does let you see your public calendar events on the calendar + search for public events you may want to RSVP to.
It's nothing special yet but hope to continue to build from here! Thank you @franzap for making this possible with #purplestack. There's no way I could have built this myself without your tooling!
View quoted note →
Make sure to add the outbox model early or you are going to suffer later on.
I've been working on integrating outbox into the web version already but right now the android version just uses a set group of relays. This version is pre-alpha though and will definitely be something I work towards getting fixed with time.
👀

Outbox belongs in the purplebase library, which #purplestack uses. I'll eventually get to that.
It could be done in the app, but in that case, it will become a huge mess - the LLM will certainly get lost.
Is this Nip 52?
Never mind, checking out the web app now. Fantastic stuff brother!
It is indeed! Web app will primarily save NIP-52 as gift wraps to ensure privacy but those same features will eventually make it to mobile as well.
Sweet! Is it on GitHub? Nice to see it get some privacy features, I know this wasn’t part of the original NIP
The main site's repo is
and the android version is https://github.com/patrickulrich/nostrcal-android. It's still the same NIP-52 events, even for private events, they're just being wrapped via NIP-59 gift wraps.
The project originated as a calendar booking service, like Calendly, and by necessity morphed into a wider calendar project. Since it's original method was around booking I handle the gift wraps very similar to NIP-17 DM messages. I've also used kind 31926 and 31927 to address availability. 31926 let's you set your availability template for calendar booking while 31927 is to allow you to publish a "busy" time. This is primarily intended to serve as ways of blocking time against gift wrapped 31923s but can be used just to indicate busy blocks. 
GitHub
GitHub - patrickulrich/nostrcal
Contribute to patrickulrich/nostrcal development by creating an account on GitHub.
GitHub
nips/52.md at master · patrickulrich/nips
Nostr Implementation Possibilities. Contribute to patrickulrich/nips development by creating an account on GitHub.
Yes, the calendar event models are based on NIP-52
Need a widget for this app, thank you! 👏🏼👏🏼👏🏼
Yes very cool. Can you tell me more about purple stack? I’ve been using Claude with vs code and just referencing different Nostr repos/projects but would love to try something more integrated
It's a very opinionated stack, built on a nostr library I designed (purplebase) and models, which exposes nostr NIPs as domain models. I am using it to build Zapstore and other apps and improving it as I go along.
Are you taking bribes on what models you work on? 😁
Lol the stack is prepared to create and registered new models from new kinds. Should work.
I actually started work on integrating my custom 31926 and 31927 already but then shied away when I was having issues getting 59 events to decrypt. I need to dig back in again!
What are these custom events? If it's improving NIP-52 in models, I'd gladly take a PR
Can I try it?
On my todo is to create a PR to 52 for these. 926 is to create availability lists to show when you want to accept booking requests and 927 is just a public busy time that I create when users create gift wrapped 393 so that the booking can still see the user as busy without knowing why.
I will definitely send a PR when I have them working well. I slid away from the android side for a few days and started putting some focus on another project but will definitely get it over.
Ugh I got lost already 😅 sure man. Welcome
It's on stacks or just clone
I'd be interested in your feedback
GitHub
GitHub - purplebase/purplestack
Contribute to purplebase/purplestack development by creating an account on GitHub.
I’ll check it out for sure. My project is next js and using NDK but I have something else I wanted to build in the near future. Thanks!