this post was submitted on 01 Sep 2023
41 points (100.0% liked)

Selfhosted

40347 readers
403 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 1 year ago
MODERATORS
 

I'm looking for a google calendar replacement that isn't nextcloud, has a descent mobile app with widgets, and authentication built in. I've seen plenty of recommendations via search but i'd like to hear what you personally use and what you like about it.

you are viewing a single comment's thread
view the rest of the comments
[–] Anafroj 1 points 1 year ago* (last edited 1 year ago)

I organize my crontab by having group of tasks (the programs, the holidays, the housecleaning, etc). And of those groups, the events (the non recurring tasks) come last. So I just list the crontab (crontab -l) and the list of things to come print to the screen, that block being at the end of the file. It's hard to do better than a text file to list things. :)

I don't know if there is a program that lists like "what is coming this month" if you really want to filter out the rest, but it should be easy enough to write, given the format of cron rules:

crontab -l | grep '*' | awk '{print $4 "," $3 "," $2 "," $1 " " $0 }' | sort -n | grep -E "^$(date '+%-m')"
  • crontab -l : list the crontab
  • grep '*' : keeps only rules (removing blank lines and comments)
  • awk […] : print the whole line ($0), prepend by the 4th field (the month), the 3rd (the day), the 2nd (the hour) and the 1st (the minutes)
  • sort -n : sort everything numerically, so that all tasks are now in their execution date order (I made awk seperate the fields with a , character so it keeps sorting numerically past the first number)
  • date '+%-m : prints the current month, not zero padded (thanks to the '-')
  • grep -E '^date' : keep only lines which starts with the current month number

You put that in a script (like ~/bin/upcoming_events) and you're done. And then, you can call it from cron every monday get what's coming next mailed to you. :)

This could but refined further to display dates in a more friendly format. But as usual, Unix is your friend. :)