[{"data":1,"prerenderedAt":249},["ShallowReactive",2],{"project-26620738":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":40,"post_text":41,"what":42,"said":70,"maker_in_thread":130,"shape":142,"grid":147,"attempts":211,"same_week":212,"maker_shows":144,"maker_hidden":241,"reader_version":242,"card":243},"26620738","Nettu Scheduler","A self-hosted calendar and scheduler server","title","Show HN: Nettu Scheduler – A self-hosted calendar and scheduler server","https:\u002F\u002Fgithub.com\u002Ffmeringdal\u002Fnettu-scheduler","github.com","fmeringdal",1617022074,2021,129,26,394,2533,16,"notable","infrastructure","self-hosted scheduling server","api",[24,25,26,27,28],"self-hosted scheduler","calendar api","booking api","free busy","open source scheduling","curious",0.159,{"positive":32,"neutral":33,"mixed":34,"critical":35},3,5,0,1,9,{"execution":38,"idea":39},{"positive":34,"critical":35},{"positive":32,"critical":34},[35,34,34,34,33,34,34,32,34,33,34,34,34,34,32,34,33,34,32,34,34,32,34,34,32,34],null,{"problem":43,"audience":50,"pricing":41,"motivation":54,"time_to_build":41,"stack":58,"openness":67,"stage":68,"team_size":69},{"value":44,"source":45,"evidence":46},"Scheduling and calendar logic is repeated in every booking app","maker",[47],{"id":48,"by":11,"text":49},"26621431","Thanks! Essentially I had two separate booking projects that I was working, and instead of duplicating the scheduling and calendar logic in both of them, I decided to create a…",{"value":51,"source":45,"evidence":52},"Developers building booking or appointment apps",[53],{"id":48,"by":11,"text":49},{"value":55,"source":45,"evidence":56},"Avoid duplicating scheduling logic across two booking projects and avoid Calendly's assumptions",[57],{"id":48,"by":11,"text":49},[59],{"value":60,"source":61,"evidence":62},"Rust","inferred",[63],{"id":64,"by":65,"text":66},"26622298","de6u99er","From my experience it is a common mistake to do overlap comparisons of intervals this way.…","open_source","launched","unknown",{"praise":71,"objections":72,"requests":84,"questions":103,"alternatives":118},[],[73,79],{"value":74,"source":45,"evidence":75},"No CalDav support yet",[76],{"id":77,"by":11,"text":78},"26625347","It does not support CalDav right now. The reason being that I didnt need CalDav when i developed the project. That being said, a lot of people have asked for CalDav support after…",{"value":80,"source":81,"evidence":82},"Overlap comparison in event instance code may be wrong at interval boundaries","commenter",[83],{"id":64,"by":65,"text":66},[85,93],{"value":86,"source":81,"evidence":87},"CalDav support",[88,92],{"id":89,"by":90,"text":91},"26624866","encryptluks2","Does this support CalDav? I'd be more interested in a self-hosted calendar with CalDav integration. Then for appointments\u002Fscheduling, utilizing a separate calendar designated to…",{"id":77,"by":11,"text":78},{"value":94,"source":81,"evidence":95},"Combine calendars into a shareable free\u002Fbusy view",[96,100],{"id":97,"by":98,"text":99},"26627297","dsalzman","This is great. It almost handles a use case I’ve been looking for which is a slimmed down version of Calendly. Basically merge multiple personal\u002Fwork calendars into a single…",{"id":101,"by":98,"text":102},"26730410","Yeah. I want to combine multiple cals into a single cal with only free\u002Fbusy that i can then publicly share\u002F give out to my friends\u002Ffamily",[104,111],{"value":105,"source":81,"evidence":106},"How recurring events are handled when checking overlaps",[107],{"id":108,"by":109,"text":110},"26626249","arez","I implemented a similar thing myself at my current job. How did you deal with events that happen once a week and someone creating an event in 2020 and one for 2024 every monday…",{"value":112,"source":81,"evidence":113},"Whether payments can be handled for selling bookings",[114],{"id":115,"by":116,"text":117},"26622151","dukeofdoom","Do you know of a service that would handle user payments of selling booking\u002Ftickets?",[119,126],{"value":120,"source":81,"evidence":121},"Timekit",[122],{"id":123,"by":124,"text":125},"26621616","klinskyc","Very cool, and nice to see more options here (especially open source ones). I remember looking five years ago, and being very surprised that there was no Stripe-equivalent for…",{"value":127,"source":81,"evidence":128},"Spurwing",[129],{"id":123,"by":124,"text":125},{"comments":131,"answered":33,"key":132},11,[133,136,139],{"id":134,"text":135},"26626850","Thanks for your feedback! I will look into it :)",{"id":137,"text":138},"26629144","Haha! I must admit that I also did two if statements the first time I implemented overlaps ;)",{"id":140,"text":141},"26622065","Your project looks awesome, thanks for sharing! And yeah, hopefully new booking apps will have a lot of better options now than implementing the scheduling stuff themselves.",{"commenters":143,"max_depth":144,"maker_replies":131,"first_comment_mins":145,"lifespan_hours":146},13,4,41,223,[148,150,152,155,156,158,162,164,167,169,172,175,178,181,184,186,189,191,193,194,198,200,202,205,207,210],[64,34,35,149,65,34],"project\u002Fcritical\u002Fexecution",[134,34,34,151,11,35],"maker\u002Fneutral\u002Fexecution",[153,34,34,154,65,34],"26629095","commenter\u002Fneutral\u002Fexecution",[137,34,34,154,11,35],[123,35,33,157,124,34],"project\u002Fpositive\u002Fidea",[159,35,34,160,161,34],"26621752","other\u002Fneutral\u002Fnone","Arcanum-XIII",[140,35,34,163,11,35],"maker\u002Fpositive\u002Fnone",[89,165,32,166,90,34],2,"project\u002Fneutral\u002Fidea",[77,165,34,168,11,35],"maker\u002Fneutral\u002Fidea",[170,32,33,157,171,34],"26626871","rodolphoarruda",[173,32,34,174,11,35],"26628876","maker\u002Fpositive\u002Fidea",[176,144,34,160,177,34],"26628319","manofsky",[179,144,34,160,180,34],"26628485","e12e",[182,144,34,183,11,35],"26628851","maker\u002Fpositive\u002Fexecution",[108,33,32,185,109,34],"project\u002Fneutral\u002Fexecution",[187,33,34,188,11,35],"26626910","maker\u002Fneutral\u002Fnone",[97,190,33,157,98,34],6,[192,190,34,151,11,35],"26627705",[101,190,32,166,98,34],[195,196,34,160,197,34],"26630459",7,"barhum",[199,196,34,151,11,35],"26632012",[201,196,32,185,197,34],"26639769",[115,203,34,204,116,34],8,"other\u002Fneutral\u002Fpricing",[206,203,34,204,11,35],"26626867",[208,36,32,168,209,34],"26621202","jarym",[48,36,34,168,11,35],[],[213,218,222,226,231,236],{"id":214,"name":215,"points":216,"category":217},"26579936","VS Code Theme Studio",375,"dev_tools",{"id":219,"name":220,"points":221,"category":20},"26624341","Coolify",345,{"id":223,"name":224,"points":225,"category":217},"26622548","frangipanni",333,{"id":227,"name":228,"points":229,"category":230},"26609397","Selfstudyclassics",278,"learning_science",{"id":232,"name":233,"points":234,"category":235},"26647424","Roleplayful",133,"consumer_social",{"id":237,"name":238,"points":239,"category":240},"26646110","Three Things Daily",121,"productivity",false,"v2",{"id":244,"name":5,"line":6,"ai":241,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":245,"top":18,"kw":246,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":247,"url":9,"mix":248,"praise":-1,"objection":74,"sub":21},26620738,0.16,[24,25,26,27,28],"10005003050000305030030030",[32,33,34,35],1793991025937]