Google日历简易版 2.0

作者: 阮一峰

日期: 2012年10月 7日

珠峰培训

长假期间,我写了一个小程序,现在正式发布。

大家用不用Google日历

它可以用来规划日程、记录事项、甚至写日记,既安全(数据保存在Google的机房)又方便(各种平台都能访问),甚至还很贴心地提供手机同步免费短信提醒

相信很多人与我一样,非常需要这个产品。但是,又不喜欢它的界面:拥挤丑陋,辨识困难,操作麻烦。于是,2008年,我写了一个"Google日历简易版"。

今年四月份,Google启用新版本API,我的那个程序彻底无法使用了。考虑到还有需求,利用这几天,我索性就重写了一遍。

现在就让我,正式推出"Google日历简易版 2.0"

  * 操作简便,只需鼠标一点,就可以看到近期事件;

  * 界面清爽,放大了字体,易于阅读;

  * 快速安全,直接与Google交互,全程https加密通信。

欢迎大家试用,看看有没有bug。网址是:

  http://calendar.ruanyifeng.com

两点使用说明:

  1)支持各大浏览器的最新版本,IE6、7、8、9除外(因为它们不支持ajax跨域)。

  2)这个程序对Javascipt的要求比较高,移动终端方面,我的Android平板可以使用,但是Android手机不行。有ios设备的朋友,帮忙看看,ipad/iphone能不能用。

======================================

(关于发布软件的内容到此为止,接下来是插播时间,我实在忍不住,想谈谈Google。)

这个程序全靠Google的API,但是Google是怎么开放API的?用户是不知道,开发者看了,心都凉了。

今年四月生效的API第三版,比第二版少了很多功能。其中有两个,影响尤其巨大。

  1. 只提供所有事件(按日期)升序排列,不提供(按日期)降序排列。

  2. 不提供某个时间段内的事件总数。

少了这两个基本功能,还怎么玩呀?!你写了一个日历程序,可是连用户的最新事件都取不到......(我现在的解决方法是,一个时间段内限定取回30个事件。如果超出这个数量,只有用户自行缩短时间段了。)

此外,Google还规定,日历API每天请求上限是10000次。你没有看错,真的只有四个零。我数了好几遍,都不敢相信自己的眼睛。

这就是说,你的用户总数,每天最多只能有几百人,Google不允许你发展更多的用户。(相比之下,Google的短网址API,每天请求上限是100万次!)所以,基于这个API的任何程序,大概只能是写写玩玩,不可能考虑运营与发展。

我认为,Google这样地封闭平台,无非就是为了防止外部开发者与其竞争,尽量把用户留在自家网站上。这种鼠目寸光、画地为牢的行为,哪来还有半点理想主义的色彩?

Google,枉费我还为你呐喊过!

========================================

不管怎么说,这个"Google日历简易版",我还是会维护下去的(毕竟眼前找不到更好的在线日历)。

下一次大版本的更新,我打算实现下面两个功能:

  1. 颜色标签,不同事件采用不同的背景色;

  2. 所有事件都用LocalStorage储存在本地(要不是想到得太晚,这一次我就应该实现这个功能)。

顺便提一下,这一次我是用Bootstrap框架开发的,感觉它方便好用,效果也不错。但是下一次,大概不会用它了,因为觉得不够灵活,很多地方都被它限制住了。Foundation框架对我有可能是一个更好的选择。

(完)

一灯学堂

留言(66条)

貌似不大好使,在iPad上登的,说该时段是空的,没有返回到事件,但其实是有的……
还是感谢分享,回头到电脑上试试看…

mac上的fx,登录后,没有刷出任何日历项目。

为什么会觉得twitter bootstrap 有限制,是不是它的风格太twitter化了?

正打算学学bootstrap 很强大的样子 限制性怎么讲

我的IE和世界之窗浏览器都不行。可以推荐一个浏览器给我吗?

有个错别字。
无法就是为了防止外部开发者与其竞争
应该是
无非就是为了防止外部开发者与其竞争

mac下chrome23可以使用,谢谢

感谢!!

不知道为什么,我的总是刷新不出来,PC上用Chrome,FF都一样

我也刷不出来哟 chrome 浏览器

引用abel的发言:

我的IE和世界之窗浏览器都不行。可以推荐一个浏览器给我吗?

当然是chrome了!

win7下firefox,刷不出来。是不是因为使用量超标了?

阮老师能否公开源代码?

1. Windows 7/firefox中,Web UI的刷新Button无反应,要用firefox的Refresh才行
2. 开始和结束日期默认从1970开始。

非常非常喜欢您的简易版。想问一下,我在您的简易版中记录的事情,是保存在google后台吧?不会在您网站后台有备份吧?

支持原创免费应用,付费10元以示感谢。

Win 7 下 Chrome Stable 22 无法刷新出事件

引用亭子的发言:

想问一下,我在您的简易版中记录的事情,是保存在google后台吧?不会在您网站后台有备份吧?

我当然不会截取数据。如果你看一下网络通信,就会发现是直接与Google联系的,不经过我的服务器。

另外,上面各位反映无法读取数据的朋友,我暂时无法复制出你们的错误,我这里一切正常。如果你能打开console,请把里面的报错信息告诉我。

非常实用 多谢!

iphone的[chrome, Safari]浏览器测试报告:
1.日期控件点开后不能关闭
2."添加新事件"按钮无反应

可以做成不弹窗的!

效果的确不错,暂时没有发现BUG,不过我已经用惯了google原版。

刷不出日历

Uncaught TypeError: Cannot read property '1' of null main.min.js:1

Uncaught TypeError: Cannot read property '1' of null main.min.js:1
g.parseDateTime main.min.js:1
g.showEventsList main.min.js:1
a.refreshEventsList main.min.js:1
(anonymous function) main.min.js:1
k code.jquery.com/jquery-latest.min.js:2
l.fireWith code.jquery.com/jquery-latest.min.js:2
p.extend.ready code.jquery.com/jquery-latest.min.js:2
D code.jquery.com/jquery-latest.min.js:2

請問阮哥有出繁體的嗎?

无法保存

不错,我在十一也写程序,python搞了一个blog
www.meadidea.com

引用Elegant Tsai的发言:

請問阮哥有出繁體的嗎?

没问题,这几天就做了一个台湾版。

引用QinBX的发言:

刷不出日历

Uncaught TypeError: Cannot read property '1' of null main.min.js:1

那些js文件都压缩过了,也不知道哪里出问题了。

估计是日期加载没有成功,暂时无法判断出原因

我用NEXUS7可正常使用,但是WIN XP中G OOLE浏览器无法使用

代码第 11 行,<script src="http://code.jquery.com/jquery-latest.min.js"></script>,这个域名在我这被墙,楼主最好还是自己搞一份 jquery min 的 js 吧。。

@ZRJ:

谢谢告知,已经改用微软的jQuery CDN了。

我用的系统是Win7,浏览器Chrome21。日历事件排列顺序是乱的,而且我选的时间段是2012.10.01到2012.10.30,然后显示的时候会有1月和9月的时间。

对循环日志支持的不够人性化哟,显示的时候设置时的时间,让人看着觉得怪怪的。建议提示一下,是循环日历

api个数难道只是限制中国?或者免费用户?想要更多可以买吗?如果Google只是想要把用户留在自己的产品上赚钱,那可以对商业开发者进行收费嘛...

出错了! The specified time range is empty.

网页错误详细信息

用户代理: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
时间戳: Tue, 9 Oct 2012 02:54:40 UTC


消息: 缺少对象
行: 6
字符: 14
代码: 0
URI: http://calendar.ruanyifeng.com/js/bootstrap.min.js


消息: 缺少对象
行: 1
字符: 1
代码: 0
URI: http://calendar.ruanyifeng.com/js/main.min.js

风格确实很简洁很清爽, 访问的很良好, win7 + chrome 22。
确实有你说的问题, 是按升序排列的, 第一眼看到的就是一对已经过期了的事件。其实是比较关注最近一周和未来的事件。

bootstrap做出来的真漂亮啊

Chrome Stable。。不支持跨域请求。

不怎么用在线日历,可能是习惯还没养成把。不过Google的抠门是有目共睹的,比如地图API,还有搜索API等等,但数据安全还是比较放心的。

添加新事件后,只显示添加后的事件。
如果想要看所有添加的事件就要刷新,但是一刷新就又要登录,有点麻烦。

我也遇到同样的问题。我是在google doc 里面写google script 脚本,来处理我的spreedsheet表格,函数调用不能超过30秒钟,超过他就喀嚓了调用。一天的计算资源不能超过一个上限,超过就喀嚓了。免费帐户各种限制啊,强迫升级商业版许可。google掉到钱眼里面去了。

文章看到了最后面都被拉到很下面了,但是却没有一个回到顶部的功能。呵呵

用不了。刷新不出来。。

楼主是否有方法能给Google 日历添加农历循环?很多中国人过的农历生日,要是有方法添加,那该多好!

为什么要简易版呢,原版才好用。

有个不能接受的设定……在新建或编辑事件时,如果点击编辑框以外的范围(非焦点区域?),整个编辑都不会保存,相当于直接取消或关闭了。

这样一来,我以后就不敢直接在编辑框里打东西了啊,因为很可能不是一次写完,比如中间看个QQ消息再点击切换回浏览器时,很可能不是点在编辑框内,这样写的东西就全部付诸东流了……泪目。

能不能其他范围不允许点击,或者能点击并自动保存。

引用axp的发言:

有个不能接受的设定……在新建或编辑事件时,如果点击编辑框以外的范围(非焦点区域?),整个编辑都不会保存,相当于直接取消或关闭了。

我忘了当时是怎么想的,好像因为每次打开编辑窗口时,日期栏都会重置,所以我索性就把事件栏也重置了。

这个应该不难解决,我想本周内就可以改好。

很感谢你使用这个产品,请继续反馈意见。

引用axp的发言:

能不能其他范围不允许点击,或者能点击并自动保存。

刚才查了文档,发现很容易解决,现在窗口外点击,窗口已经不会退出了。请试用。

不好意思,这样的小问题根本不应该出现了,我早就应该想到的。

引用阮一峰的发言:

刚才查了文档,发现很容易解决,现在窗口外点击,窗口已经不会退出了。请试用。

不好意思,这样的小问题根本不应该出现了,我早就应该想到的。

阮先生太客气啦,试用OK。能这么快修改好真的出乎意料,开发足够敏捷呢^_^ 界面简约速度也很快,用着很顺手,让我能够专注于纯粹的记事和设置提醒,平日使用足够了,Good Job!

不过现在又发现刷新后,事件也不是完全按日期升序排列的啊。我这个月5个事件,刷新后的排序分别是:
10号08:00的、10号14:50的、9号的、11号的、12号的。
有点看不懂@_@。莫非10号的那两个可能我修改过了,所以日期有变化?(但也不可能变到9号之前吧…)

引用axp的发言:

不过现在又发现刷新后,事件也不是完全按日期升序排列的啊。

看了一下代码,google是按“更新时间”排序的。

现在已经改过了,应该按照事件“开始时间”排序了。

我的google对你的应用授权,时间是2012年10月8日,但,我是从授权链接进去 你网站才第一次看到你的应用,这是咋回事?

引用阮一峰的发言:

看了一下代码,google是按“更新时间”排序的。

现在已经改过了,应该按照事件“开始时间”排序了。



好的,现在一切正常了,用起来非常顺手。感谢开发这么好的产品

话说Google原来的那个挺好用的啊,反而是这个简易版不是很看得明白。。。

似乎很简单的感觉

引用abel的发言:

我的IE和世界之窗浏览器都不行。可以推荐一个浏览器给我吗?

Chrome浏览器,Firefox貌似有点小问题

Jorte日历用了不错,有在线的。

不支持ajax跨域的是非 IE 浏览器吧?我可是职业做前端的艾……

引用atpking的发言:
我也刷不出来哟 chrome 浏览器

我也是,一直在100%那里转

Linux+chrome用起来很舒服,但是不知道能用多久???????????

引用penguin的发言:

我也是,一直在100%那里转

应该是你那里Google被屏蔽了,用代理吧。

@阮一峰 为什么会有莫名其妙的新事件出现在里面啊?我记得第一次刚开通的时候里面就有了一个事件,后来过几天又发现一个新的事件:“什么ipad mini你喜欢哪个(大意如此)”,第二天发现又没了这个事件。。。。这是怎么回事啊????

引用真的爱你的发言:

为什么会有莫名其妙的新事件出现在里面啊?

可能是你设置了日历共享,你去google的原版查一下,该日历是否包含了其他成员。

引用阮一峰的发言:

可能是你设置了日历共享,你去google的原版查一下,该日历是否包含了其他成员。

真的没有设置日历共享哦

谷歌日历目前还没有用过,其他如搜索引擎,各种seo工具却如数家珍,很多外贸网站的查询推广,如维库网,都会借助它,希望多多交流

你这个首页进来怎么只看到10月的这一篇,看不到最新的帖子。怪哉。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接