[{"data":1,"prerenderedAt":427},["ShallowReactive",2],{"project-38838946":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":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":43,"post_text":45,"what":46,"said":75,"maker_in_thread":207,"shape":216,"grid":220,"attempts":389,"same_week":390,"maker_shows":38,"maker_hidden":419,"reader_version":420,"card":421},"38838946","Schedule-X","An open source web calendar inspired by the Google calendar","title","Show HN: I built an open source web calendar inspired by the Google calendar","https:\u002F\u002Fschedule-x.dev\u002Fdemos\u002Fcalendar","schedule-x.dev","tomosterlund",1704178718,2024,232,69,321,3515,10,"notable","productivity","calendar","library",[24,25,26,27],"web calendar","open source calendar","react calendar","calendar component","curious",0.138,{"positive":31,"neutral":32,"mixed":33,"critical":34},9,19,0,4,32,{"design":37,"execution":40,"idea":41},{"positive":38,"critical":39},1,3,{"positive":39,"critical":38},{"positive":42,"critical":33},2,[39,39,39,33,39,39,39,39,44,39,33,39,33,38,33,39,44,44,33,38,44,39,33,33,39,44,33,33,44,44,38,33,33,44,33,38,44,39,39,33],5,"I love the looks and UX of the Google calendar. But I wanted to have a version I could use more freely in my own projects, still looking similar to the one from Google.",{"problem":47,"audience":53,"pricing":61,"motivation":62,"time_to_build":61,"stack":66,"openness":73,"stage":74,"team_size":74},{"value":48,"source":49,"evidence":50},"Wanted a Google Calendar-like web calendar usable freely in own projects","maker",[51],{"id":52},"post",{"value":54,"source":55,"evidence":56},"Developers building calendar features into their own projects","inferred",[57,58],{"id":52},{"id":59,"by":11,"text":60},"38841839","I've looked into this one a bit too. The one main thing I'm missing there, is the ability to extend it with custom views. One thing Schedule-X does, which isn't documented yet,…",null,{"value":63,"source":49,"evidence":64},"Wanted a calendar like Google's to use in own projects",[65],{"id":52},[67],{"value":68,"source":49,"evidence":69},"React",[70],{"id":71,"by":11,"text":72},"38842017","Hi. Thanks a lot :) There is a dedicated React component for this: https:\u002F\u002Fschedule-x.dev\u002Fdocs\u002Fcalendar\u002Freact","open_source","unknown",{"praise":76,"objections":103,"requests":136,"questions":161,"alternatives":175},[77,93],{"value":78,"source":79,"evidence":80},"Clean look and smooth animations","commenter",[81,85,89],{"id":82,"by":83,"text":84},"38844459","cybereporter","Nice work! Animation on the event reveal is smooth and responsive. Does it integrate into existing calendar to make it more seamless to leverage the web calendar?",{"id":86,"by":87,"text":88},"38841944","alfonsodev","looks great! could this someone be rendered as a component in a react app ?",{"id":90,"by":91,"text":92},"38844321","pimlottc","Nice work, looks very clean. Small suggestion for the date picker: I appreciate that you can click on the month+year to navigate between years much more quickly than using the…",{"value":94,"source":79,"evidence":95},"Impressive engineering of overlapping events",[96,100],{"id":97,"by":98,"text":99},"38841556","pandatigox","Woo I have a question! I have attempted something similar but my biggest issue was fixing the layout of overlapping events. Online solutions attempt to divide the column width by…",{"id":101,"by":11,"text":102},"38841720","Ah, never even thought of having a kind of overlap tolerance. I might look into if this would make sense for Schedule-X too. Solving overlapping events was definitely one of the…",[104,119,129],{"value":105,"source":79,"evidence":106},"No way to add, edit or resize events in the demo",[107,111,115],{"id":108,"by":109,"text":110},"38842001","freetonik","Looks nice! I assumed the demo is editable, because I can drag events around, but there is no way to add new events?",{"id":112,"by":113,"text":114},"38846091","GrumpyNl","How do you create a new event, click or double click on the empty squares does nothing for me.",{"id":116,"by":117,"text":118},"38844738","jessems","Awesome! Well done. What about resizing?",{"value":120,"source":79,"evidence":121},"Month view gap between events is unclear",[122,126],{"id":123,"by":124,"text":125},"38841861","adrianmsmith","I have a question about the design. On the screenshot on the homepage https:\u002F\u002Fschedule-x.dev\u002F the events are touching the left border of the box for the day, but there's a gap…",{"id":127,"by":11,"text":128},"38842082","This is a good point. The Google calendar actually has a gap in the week view too. I just didn't understand why. Do you think it would look better if the gap exists in the week…",{"value":130,"source":79,"evidence":131},"Month navigation uses separate pages instead of continuous scroll",[132],{"id":133,"by":134,"text":135},"38842193","IshKebab","Why do you have months on separate pages that scroll left to right, instead of a continuous vertical scrolling view? It's so weird, I don't know why almost all calendars have…",[137,144,154],{"value":138,"source":79,"evidence":139},"Recurring events support",[140],{"id":141,"by":142,"text":143},"38844585","nestes","Very cool! Having written a couple of web calendars myself, I found that most of the hair-tearing logical complexity was due to recurring events. I didn't see any reference to…",{"value":145,"source":79,"evidence":146},"Click-to-create space in week and day views",[147,151],{"id":148,"by":149,"text":150},"38842065","JaumeGreen","On Google Calendar clicking on an event you see the information of that event, clicking on a white space let's you create a new event at that time. Having some white space that…",{"id":152,"by":11,"text":153},"38845305","Correct! In the week- and day views there is still no gap, only in the month view. The discussions here today though convinced me I should also allow for a gap in the week\u002Fday…",{"value":155,"source":79,"evidence":156},"Weekend-only condensed view",[157],{"id":158,"by":159,"text":160},"38843964","chimprich","One feature I wish Google calendar had is \"weekend\" view; a condensed view of upcoming weekends, hiding weekdays. You can hide weekends, but in my personal account planning…",[162,167],{"value":163,"source":79,"evidence":164},"How are overlapping events laid out and how is recurrence handled",[165,166],{"id":97,"by":98,"text":99},{"id":141,"by":142,"text":143},{"value":168,"source":79,"evidence":169},"Can it use an existing calendar as a backend",[170,174],{"id":171,"by":172,"text":173},"38843860","butz","I wonder, what would be cheapest way for backend to store calendar events and share between own devices? We are talking only about ten or so events per month, for one year ahead.…",{"id":82,"by":83,"text":84},[176,186,193,200],{"value":177,"source":79,"evidence":178},"FullCalendar",[179,183],{"id":180,"by":181,"text":182},"38844753","safouen","I think this looks exactly like https:\u002F\u002Ffullcalendar.io\u002Fdemos",{"id":184,"by":11,"text":185},"38844779","I respect your opinion, but I strongly disagree :) Fullcalendar is a great calendar, but it is not material design.",{"value":187,"source":79,"evidence":188},"tui.calendar",[189],{"id":190,"by":191,"text":192},"38841754","uallo","There is a similar but established library already: https:\u002F\u002Fgithub.com\u002Fnhn\u002Ftui.calendar. Did you take a look at that one before starting your own? If yes, what were you missing?",{"value":194,"source":79,"evidence":195},"Hey Calendar",[196],{"id":197,"by":198,"text":199},"38842695","raybb","Have you seen the Hey Calendar that was demo'd yesterday? https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=SztU4232u_o I know you're following Google Calendar but I think Hey has some great ideas…",{"value":201,"source":79,"evidence":202},"Remind",[203],{"id":204,"by":205,"text":206},"38846892","jrm4","\"Remind\" calendar has been a daily driver for me for the better part of a decade, you might find some inspiration there? I could see these two things working well together?…",{"comments":208,"answered":209,"key":210},25,13,[211,212,215],{"id":127,"text":128},{"id":213,"text":214},"38842005","This is a good question, which baffled me a bit too when studying the Google calendar. Took me a while to figure it out, but when I first built the month grid without subtracting…",{"id":152,"text":153},{"commenters":217,"max_depth":44,"maker_replies":208,"first_comment_mins":218,"lifespan_hours":219},38,412,71,[221,223,225,227,230,233,234,236,237,240,242,243,245,248,250,253,256,258,261,262,264,265,267,270,272,274,276,277,281,283,285,287,290,292,294,298,300,301,304,305,307,310,312,314,318,320,323,326,328,331,335,340,342,346,348,352,354,357,359,362,365,367,370,374,376,378,380,382,384],[123,33,39,222,124,33],"project\u002Fneutral\u002Fdesign",[224,33,39,222,109,33],"38841993",[127,33,33,226,11,38],"maker\u002Fneutral\u002Fdesign",[228,33,39,222,229,33],"38843595","mcny",[231,33,39,222,232,33],"38841999","tanishqkanc",[213,33,33,226,11,38],[235,33,39,222,91,33],"38844344",[152,33,33,226,11,38],[238,33,39,222,239,33],"38842014","ashenke",[241,33,39,222,124,33],"38842047",[148,33,39,222,149,33],[244,33,33,226,11,38],"38842483",[246,33,39,222,247,33],"38842270","satvikpendem",[141,38,44,249,142,33],"project\u002Fpositive\u002Fexecution",[251,38,33,252,11,38],"38844834","maker\u002Fneutral\u002Fidea",[254,38,39,252,255,33],"38846171","Terretta",[257,38,39,252,142,33],"38846746",[259,38,33,260,11,38],"38850440","maker\u002Fpositive\u002Fnone",[204,38,39,252,205,33],[97,42,39,263,98,33],"project\u002Fneutral\u002Fexecution",[101,42,33,263,11,38],[197,39,33,266,198,33],"other\u002Fneutral\u002Fnone",[268,39,33,269,11,38],"38843031","maker\u002Fneutral\u002Fnone",[133,34,38,271,134,33],"project\u002Fcritical\u002Fdesign",[273,34,33,226,11,38],"38842257",[190,44,39,275,191,33],"project\u002Fneutral\u002Fidea",[59,44,33,275,11,38],[278,44,44,279,280,33],"38842063","project\u002Fpositive\u002Fidea","tegiddrone",[282,44,33,252,11,38],"38842120",[284,44,44,260,280,33],"38845430",[90,286,39,222,91,33],6,[288,286,33,289,11,38],"38844850","maker\u002Fpositive\u002Fdesign",[180,291,38,271,181,33],7,[184,291,33,293,11,38],"commenter\u002Fneutral\u002Fdesign",[295,296,44,279,297,33],"38859494",8,"rpowers",[299,296,33,260,11,38],"38876190",[108,31,39,263,109,33],[302,31,33,303,11,38],"38842052","maker\u002Fneutral\u002Fexecution",[171,18,33,266,172,33],[306,18,33,275,11,38],"38843941",[308,18,33,266,309,33],"38843973","samstave",[158,311,39,275,159,33],11,[313,311,33,252,11,38],"38844109",[315,316,44,249,317,33],"38843710",12,"codelikeawolf",[319,316,33,269,11,38],"38843981",[321,209,33,266,322,33],"38843749","amelius",[324,209,33,266,325,33],"38843767","wombat-man",[327,209,33,266,322,33],"38846205",[329,209,33,266,330,33],"38843864","sicromoft",[332,333,44,249,334,33],"38847007",14,"rareitem",[336,337,44,338,339,33],"38843988",15,"project\u002Fpositive\u002Fnone","bratsche",[341,337,33,269,11,38],"38844070",[343,344,38,271,345,33],"38851274",16,"kszyh",[347,344,33,226,11,38],"38870251",[349,350,33,266,351,33],"38843750",17,"alberth",[353,350,33,269,11,38],"38844036",[82,355,44,356,83,33],18,"project\u002Fpositive\u002Fdesign",[358,355,33,275,11,38],"38844884",[360,32,33,266,361,33],"38845208","funnystories",[363,32,33,266,364,33],"38845320","pdxandi",[366,32,33,266,361,33],"38845449",[112,368,38,369,113,33],20,"project\u002Fcritical\u002Fexecution",[371,372,44,260,373,33],"38860380",21,"hammyhavoc",[375,372,33,260,11,38],"38870237",[116,377,39,263,117,33],22,[379,377,33,263,11,38],"38844860",[86,381,39,275,87,33],23,[71,381,33,383,11,38],"project\u002Fpositive\u002Fdocs",[385,386,33,387,388,33],"38865788",24,"other\u002Fpositive\u002Fnone","acidpanda",[],[391,396,401,406,411,415],{"id":392,"name":393,"points":394,"category":395},"38847613","Dillo",599,"dev_tools",{"id":397,"name":398,"points":399,"category":400},"38855337","FrameOS",474,"hardware",{"id":402,"name":403,"points":404,"category":405},"38856999","Ambiphone",357,"creative",{"id":407,"name":408,"points":409,"category":410},"38827876","Cassette",231,"languages",{"id":412,"name":413,"points":414,"category":20},"38794733","Anytype",184,{"id":416,"name":417,"points":418,"category":20},"38809770","Inbox Zero",167,false,"v2",{"id":422,"name":5,"line":6,"ai":419,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":423,"top":18,"kw":424,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":425,"url":9,"mix":426,"praise":78,"objection":105,"sub":21},38838946,0.14,[24,25,26,27],"3330333353030103550153003500551005015330",[31,32,33,34],1793991081162]